; LLVM IR from corentinartaud/graphics :: ThirdParty/FreeImage-3170/Source/LibJPEG (transupp)

; 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.jpeg_transform_info = type { i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.jpeg_decompress_struct = type { ptr, ptr, ptr, ptr, i8, i32, ptr, i32, i32, i32, i32, i32, i32, i32, double, i8, i8, i32, i8, i8, i8, i32, i8, i32, i8, i8, i8, i32, i32, i32, i32, i32, i32, ptr, i32, i32, i32, i32, i32, ptr, [4 x ptr], [4 x ptr], [4 x ptr], i32, ptr, i8, i8, i8, [16 x i8], [16 x i8], [16 x i8], i32, i8, i8, i8, i8, i16, i16, i8, i8, i32, i8, ptr, i32, i32, i32, i32, i32, ptr, i32, [4 x ptr], i32, i32, i32, [10 x i32], i32, i32, i32, i32, i32, ptr, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.jpeg_error_mgr = type { ptr, ptr, ptr, ptr, ptr, i32, %union.anon, i32, i64, ptr, i32, ptr, i32, i32 }
%union.anon = type { [8 x i32], [48 x i8] }
%struct.jpeg_memory_mgr = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, i64 }
%struct.jpeg_component_info = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, ptr, ptr }

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

25:                                               ; preds = %2
  %26 = load ptr, ptr %4, align 8, !tbaa !5
  %27 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %26, i32 0, i32 10
  %28 = load i32, ptr %27, align 4, !tbaa !12
  %29 = icmp eq i32 %28, 3
  br i1 %29, label %35, label %30

30:                                               ; preds = %25
  %31 = load ptr, ptr %4, align 8, !tbaa !5
  %32 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %31, i32 0, i32 10
  %33 = load i32, ptr %32, align 4, !tbaa !12
  %34 = icmp eq i32 %33, 7
  br i1 %34, label %35, label %43

35:                                               ; preds = %30, %25
  %36 = load ptr, ptr %4, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %36, i32 0, i32 9
  %38 = load i32, ptr %37, align 8, !tbaa !16
  %39 = icmp eq i32 %38, 3
  br i1 %39, label %40, label %43

40:                                               ; preds = %35
  %41 = load ptr, ptr %5, align 8, !tbaa !5
  %42 = getelementptr inbounds %struct.jpeg_transform_info, ptr %41, i32 0, i32 13
  store i32 1, ptr %42, align 8, !tbaa !17
  br label %49

43:                                               ; preds = %35, %30, %2
  %44 = load ptr, ptr %4, align 8, !tbaa !5
  %45 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %44, i32 0, i32 9
  %46 = load i32, ptr %45, align 8, !tbaa !16
  %47 = load ptr, ptr %5, align 8, !tbaa !5
  %48 = getelementptr inbounds %struct.jpeg_transform_info, ptr %47, i32 0, i32 13
  store i32 %46, ptr %48, align 8, !tbaa !17
  br label %49

49:                                               ; preds = %43, %40
  %50 = load ptr, ptr %4, align 8, !tbaa !5
  call void @jpeg_core_output_dimensions(ptr noundef %50)
  %51 = load ptr, ptr %5, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.jpeg_transform_info, ptr %51, i32 0, i32 1
  %53 = load i8, ptr %52, align 4, !tbaa !18
  %54 = icmp ne i8 %53, 0
  br i1 %54, label %55, label %109

55:                                               ; preds = %49
  %56 = load ptr, ptr %5, align 8, !tbaa !5
  %57 = getelementptr inbounds %struct.jpeg_transform_info, ptr %56, i32 0, i32 13
  %58 = load i32, ptr %57, align 8, !tbaa !17
  %59 = icmp eq i32 %58, 1
  br i1 %59, label %60, label %80

60:                                               ; preds = %55
  %61 = load ptr, ptr %4, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %61, i32 0, i32 27
  %63 = load i32, ptr %62, align 4, !tbaa !19
  %64 = load ptr, ptr %4, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %64, i32 0, i32 28
  %66 = load i32, ptr %65, align 8, !tbaa !20
  %67 = load ptr, ptr %4, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %67, i32 0, i32 65
  %69 = load i32, ptr %68, align 8, !tbaa !21
  %70 = load ptr, ptr %4, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %70, i32 0, i32 66
  %72 = load i32, ptr %71, align 4, !tbaa !22
  %73 = load ptr, ptr %5, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.jpeg_transform_info, ptr %73, i32 0, i32 0
  %75 = load i32, ptr %74, align 8, !tbaa !23
  %76 = call zeroext i8 @jtransform_perfect_transform(i32 noundef %63, i32 noundef %66, i32 noundef %69, i32 noundef %72, i32 noundef %75)
  %77 = icmp ne i8 %76, 0
  br i1 %77, label %79, label %78

78:                                               ; preds = %60
  store i8 0, ptr %3, align 1
  store i32 1, ptr %19, align 4
  br label %886

79:                                               ; preds = %60
  br label %108

80:                                               ; preds = %55
  %81 = load ptr, ptr %4, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %81, i32 0, i32 27
  %83 = load i32, ptr %82, align 4, !tbaa !19
  %84 = load ptr, ptr %4, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %84, i32 0, i32 28
  %86 = load i32, ptr %85, align 8, !tbaa !20
  %87 = load ptr, ptr %4, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %87, i32 0, i32 63
  %89 = load i32, ptr %88, align 8, !tbaa !24
  %90 = load ptr, ptr %4, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %90, i32 0, i32 65
  %92 = load i32, ptr %91, align 8, !tbaa !21
  %93 = mul nsw i32 %89, %92
  %94 = load ptr, ptr %4, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %94, i32 0, i32 64
  %96 = load i32, ptr %95, align 4, !tbaa !25
  %97 = load ptr, ptr %4, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %97, i32 0, i32 66
  %99 = load i32, ptr %98, align 4, !tbaa !22
  %100 = mul nsw i32 %96, %99
  %101 = load ptr, ptr %5, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.jpeg_transform_info, ptr %101, i32 0, i32 0
  %103 = load i32, ptr %102, align 8, !tbaa !23
  %104 = call zeroext i8 @jtransform_perfect_transform(i32 noundef %83, i32 noundef %86, i32 noundef %93, i32 noundef %100, i32 noundef %103)
  %105 = icmp ne i8 %104, 0
  br i1 %105, label %107, label %106

106:                                              ; preds = %80
  store i8 0, ptr %3, align 1
  store i32 1, ptr %19, align 4
  br label %886

107:                                              ; preds = %80
  br label %108

108:                                              ; preds = %107, %79
  br label %109

109:                                              ; preds = %108, %49
  %110 = load ptr, ptr %5, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.jpeg_transform_info, ptr %110, i32 0, i32 0
  %112 = load i32, ptr %111, align 8, !tbaa !23
  switch i32 %112, label %159 [
    i32 3, label %113
    i32 4, label %113
    i32 5, label %113
    i32 7, label %113
  ]

113:                                              ; preds = %109, %109, %109, %109
  %114 = load ptr, ptr %4, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %114, i32 0, i32 28
  %116 = load i32, ptr %115, align 8, !tbaa !20
  %117 = load ptr, ptr %5, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.jpeg_transform_info, ptr %117, i32 0, i32 15
  store i32 %116, ptr %118, align 8, !tbaa !26
  %119 = load ptr, ptr %4, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %119, i32 0, i32 27
  %121 = load i32, ptr %120, align 4, !tbaa !19
  %122 = load ptr, ptr %5, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.jpeg_transform_info, ptr %122, i32 0, i32 16
  store i32 %121, ptr %123, align 4, !tbaa !27
  %124 = load ptr, ptr %5, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.jpeg_transform_info, ptr %124, i32 0, i32 13
  %126 = load i32, ptr %125, align 8, !tbaa !17
  %127 = icmp eq i32 %126, 1
  br i1 %127, label %128, label %139

128:                                              ; preds = %113
  %129 = load ptr, ptr %4, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %129, i32 0, i32 66
  %131 = load i32, ptr %130, align 4, !tbaa !22
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.jpeg_transform_info, ptr %132, i32 0, i32 21
  store i32 %131, ptr %133, align 8, !tbaa !28
  %134 = load ptr, ptr %4, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %134, i32 0, i32 65
  %136 = load i32, ptr %135, align 8, !tbaa !21
  %137 = load ptr, ptr %5, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.jpeg_transform_info, ptr %137, i32 0, i32 22
  store i32 %136, ptr %138, align 4, !tbaa !29
  br label %158

139:                                              ; preds = %113
  %140 = load ptr, ptr %4, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %140, i32 0, i32 64
  %142 = load i32, ptr %141, align 4, !tbaa !25
  %143 = load ptr, ptr %4, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %143, i32 0, i32 66
  %145 = load i32, ptr %144, align 4, !tbaa !22
  %146 = mul nsw i32 %142, %145
  %147 = load ptr, ptr %5, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.jpeg_transform_info, ptr %147, i32 0, i32 21
  store i32 %146, ptr %148, align 8, !tbaa !28
  %149 = load ptr, ptr %4, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %149, i32 0, i32 63
  %151 = load i32, ptr %150, align 8, !tbaa !24
  %152 = load ptr, ptr %4, align 8, !tbaa !5
  %153 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %152, i32 0, i32 65
  %154 = load i32, ptr %153, align 8, !tbaa !21
  %155 = mul nsw i32 %151, %154
  %156 = load ptr, ptr %5, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.jpeg_transform_info, ptr %156, i32 0, i32 22
  store i32 %155, ptr %157, align 4, !tbaa !29
  br label %158

158:                                              ; preds = %139, %128
  br label %205

159:                                              ; preds = %109
  %160 = load ptr, ptr %4, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %160, i32 0, i32 27
  %162 = load i32, ptr %161, align 4, !tbaa !19
  %163 = load ptr, ptr %5, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.jpeg_transform_info, ptr %163, i32 0, i32 15
  store i32 %162, ptr %164, align 8, !tbaa !26
  %165 = load ptr, ptr %4, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %165, i32 0, i32 28
  %167 = load i32, ptr %166, align 8, !tbaa !20
  %168 = load ptr, ptr %5, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.jpeg_transform_info, ptr %168, i32 0, i32 16
  store i32 %167, ptr %169, align 4, !tbaa !27
  %170 = load ptr, ptr %5, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.jpeg_transform_info, ptr %170, i32 0, i32 13
  %172 = load i32, ptr %171, align 8, !tbaa !17
  %173 = icmp eq i32 %172, 1
  br i1 %173, label %174, label %185

174:                                              ; preds = %159
  %175 = load ptr, ptr %4, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %175, i32 0, i32 65
  %177 = load i32, ptr %176, align 8, !tbaa !21
  %178 = load ptr, ptr %5, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.jpeg_transform_info, ptr %178, i32 0, i32 21
  store i32 %177, ptr %179, align 8, !tbaa !28
  %180 = load ptr, ptr %4, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %180, i32 0, i32 66
  %182 = load i32, ptr %181, align 4, !tbaa !22
  %183 = load ptr, ptr %5, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.jpeg_transform_info, ptr %183, i32 0, i32 22
  store i32 %182, ptr %184, align 4, !tbaa !29
  br label %204

185:                                              ; preds = %159
  %186 = load ptr, ptr %4, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %186, i32 0, i32 63
  %188 = load i32, ptr %187, align 8, !tbaa !24
  %189 = load ptr, ptr %4, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %189, i32 0, i32 65
  %191 = load i32, ptr %190, align 8, !tbaa !21
  %192 = mul nsw i32 %188, %191
  %193 = load ptr, ptr %5, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.jpeg_transform_info, ptr %193, i32 0, i32 21
  store i32 %192, ptr %194, align 8, !tbaa !28
  %195 = load ptr, ptr %4, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %195, i32 0, i32 64
  %197 = load i32, ptr %196, align 4, !tbaa !25
  %198 = load ptr, ptr %4, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %198, i32 0, i32 66
  %200 = load i32, ptr %199, align 4, !tbaa !22
  %201 = mul nsw i32 %197, %200
  %202 = load ptr, ptr %5, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.jpeg_transform_info, ptr %202, i32 0, i32 22
  store i32 %201, ptr %203, align 4, !tbaa !29
  br label %204

204:                                              ; preds = %185, %174
  br label %205

205:                                              ; preds = %204, %158
  %206 = load ptr, ptr %5, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.jpeg_transform_info, ptr %206, i32 0, i32 4
  %208 = load i8, ptr %207, align 1, !tbaa !30
  %209 = icmp ne i8 %208, 0
  br i1 %209, label %210, label %664

210:                                              ; preds = %205
  %211 = load ptr, ptr %5, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.jpeg_transform_info, ptr %211, i32 0, i32 10
  %213 = load i32, ptr %212, align 4, !tbaa !31
  %214 = icmp eq i32 %213, 0
  br i1 %214, label %215, label %218

215:                                              ; preds = %210
  %216 = load ptr, ptr %5, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.jpeg_transform_info, ptr %216, i32 0, i32 9
  store i32 0, ptr %217, align 8, !tbaa !32
  br label %218

218:                                              ; preds = %215, %210
  %219 = load ptr, ptr %5, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.jpeg_transform_info, ptr %219, i32 0, i32 12
  %221 = load i32, ptr %220, align 4, !tbaa !33
  %222 = icmp eq i32 %221, 0
  br i1 %222, label %223, label %226

223:                                              ; preds = %218
  %224 = load ptr, ptr %5, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.jpeg_transform_info, ptr %224, i32 0, i32 11
  store i32 0, ptr %225, align 8, !tbaa !34
  br label %226

226:                                              ; preds = %223, %218
  %227 = load ptr, ptr %5, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.jpeg_transform_info, ptr %227, i32 0, i32 6
  %229 = load i32, ptr %228, align 4, !tbaa !35
  %230 = icmp eq i32 %229, 0
  br i1 %230, label %231, label %260

231:                                              ; preds = %226
  %232 = load ptr, ptr %5, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.jpeg_transform_info, ptr %232, i32 0, i32 9
  %234 = load i32, ptr %233, align 8, !tbaa !32
  %235 = load ptr, ptr %5, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.jpeg_transform_info, ptr %235, i32 0, i32 15
  %237 = load i32, ptr %236, align 8, !tbaa !26
  %238 = icmp uge i32 %234, %237
  br i1 %238, label %239, label %250

239:                                              ; preds = %231
  %240 = load ptr, ptr %4, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %240, i32 0, i32 0
  %242 = load ptr, ptr %241, align 8, !tbaa !36
  %243 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %242, i32 0, i32 5
  store i32 5, ptr %243, align 8, !tbaa !37
  %244 = load ptr, ptr %4, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %244, i32 0, i32 0
  %246 = load ptr, ptr %245, align 8, !tbaa !36
  %247 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %246, i32 0, i32 0
  %248 = load ptr, ptr %247, align 8, !tbaa !40
  %249 = load ptr, ptr %4, align 8, !tbaa !5
  call void %248(ptr noundef %249)
  br label %250

250:                                              ; preds = %239, %231
  %251 = load ptr, ptr %5, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.jpeg_transform_info, ptr %251, i32 0, i32 15
  %253 = load i32, ptr %252, align 8, !tbaa !26
  %254 = load ptr, ptr %5, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.jpeg_transform_info, ptr %254, i32 0, i32 9
  %256 = load i32, ptr %255, align 8, !tbaa !32
  %257 = sub i32 %253, %256
  %258 = load ptr, ptr %5, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.jpeg_transform_info, ptr %258, i32 0, i32 5
  store i32 %257, ptr %259, align 8, !tbaa !41
  br label %343

260:                                              ; preds = %226
  %261 = load ptr, ptr %5, align 8, !tbaa !5
  %262 = getelementptr inbounds %struct.jpeg_transform_info, ptr %261, i32 0, i32 5
  %263 = load i32, ptr %262, align 8, !tbaa !41
  %264 = load ptr, ptr %5, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.jpeg_transform_info, ptr %264, i32 0, i32 15
  %266 = load i32, ptr %265, align 8, !tbaa !26
  %267 = icmp ugt i32 %263, %266
  br i1 %267, label %268, label %305

268:                                              ; preds = %260
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.jpeg_transform_info, ptr %269, i32 0, i32 0
  %271 = load i32, ptr %270, align 8, !tbaa !23
  %272 = icmp ne i32 %271, 0
  br i1 %272, label %293, label %273

273:                                              ; preds = %268
  %274 = load ptr, ptr %5, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.jpeg_transform_info, ptr %274, i32 0, i32 9
  %276 = load i32, ptr %275, align 8, !tbaa !32
  %277 = load ptr, ptr %5, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.jpeg_transform_info, ptr %277, i32 0, i32 5
  %279 = load i32, ptr %278, align 8, !tbaa !41
  %280 = icmp uge i32 %276, %279
  br i1 %280, label %293, label %281

281:                                              ; preds = %273
  %282 = load ptr, ptr %5, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.jpeg_transform_info, ptr %282, i32 0, i32 9
  %284 = load i32, ptr %283, align 8, !tbaa !32
  %285 = load ptr, ptr %5, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.jpeg_transform_info, ptr %285, i32 0, i32 5
  %287 = load i32, ptr %286, align 8, !tbaa !41
  %288 = load ptr, ptr %5, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.jpeg_transform_info, ptr %288, i32 0, i32 15
  %290 = load i32, ptr %289, align 8, !tbaa !26
  %291 = sub i32 %287, %290
  %292 = icmp ugt i32 %284, %291
  br i1 %292, label %293, label %304

293:                                              ; preds = %281, %273, %268
  %294 = load ptr, ptr %4, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %294, i32 0, i32 0
  %296 = load ptr, ptr %295, align 8, !tbaa !36
  %297 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %296, i32 0, i32 5
  store i32 5, ptr %297, align 8, !tbaa !37
  %298 = load ptr, ptr %4, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %298, i32 0, i32 0
  %300 = load ptr, ptr %299, align 8, !tbaa !36
  %301 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %300, i32 0, i32 0
  %302 = load ptr, ptr %301, align 8, !tbaa !40
  %303 = load ptr, ptr %4, align 8, !tbaa !5
  call void %302(ptr noundef %303)
  br label %304

304:                                              ; preds = %293, %281
  br label %342

305:                                              ; preds = %260
  %306 = load ptr, ptr %5, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.jpeg_transform_info, ptr %306, i32 0, i32 9
  %308 = load i32, ptr %307, align 8, !tbaa !32
  %309 = load ptr, ptr %5, align 8, !tbaa !5
  %310 = getelementptr inbounds %struct.jpeg_transform_info, ptr %309, i32 0, i32 15
  %311 = load i32, ptr %310, align 8, !tbaa !26
  %312 = icmp uge i32 %308, %311
  br i1 %312, label %330, label %313

313:                                              ; preds = %305
  %314 = load ptr, ptr %5, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.jpeg_transform_info, ptr %314, i32 0, i32 5
  %316 = load i32, ptr %315, align 8, !tbaa !41
  %317 = icmp ule i32 %316, 0
  br i1 %317, label %330, label %318

318:                                              ; preds = %313
  %319 = load ptr, ptr %5, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.jpeg_transform_info, ptr %319, i32 0, i32 9
  %321 = load i32, ptr %320, align 8, !tbaa !32
  %322 = load ptr, ptr %5, align 8, !tbaa !5
  %323 = getelementptr inbounds %struct.jpeg_transform_info, ptr %322, i32 0, i32 15
  %324 = load i32, ptr %323, align 8, !tbaa !26
  %325 = load ptr, ptr %5, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.jpeg_transform_info, ptr %325, i32 0, i32 5
  %327 = load i32, ptr %326, align 8, !tbaa !41
  %328 = sub i32 %324, %327
  %329 = icmp ugt i32 %321, %328
  br i1 %329, label %330, label %341

330:                                              ; preds = %318, %313, %305
  %331 = load ptr, ptr %4, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %331, i32 0, i32 0
  %333 = load ptr, ptr %332, align 8, !tbaa !36
  %334 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %333, i32 0, i32 5
  store i32 5, ptr %334, align 8, !tbaa !37
  %335 = load ptr, ptr %4, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %335, i32 0, i32 0
  %337 = load ptr, ptr %336, align 8, !tbaa !36
  %338 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %337, i32 0, i32 0
  %339 = load ptr, ptr %338, align 8, !tbaa !40
  %340 = load ptr, ptr %4, align 8, !tbaa !5
  call void %339(ptr noundef %340)
  br label %341

341:                                              ; preds = %330, %318
  br label %342

342:                                              ; preds = %341, %304
  br label %343

343:                                              ; preds = %342, %250
  %344 = load ptr, ptr %5, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.jpeg_transform_info, ptr %344, i32 0, i32 8
  %346 = load i32, ptr %345, align 4, !tbaa !42
  %347 = icmp eq i32 %346, 0
  br i1 %347, label %348, label %377

348:                                              ; preds = %343
  %349 = load ptr, ptr %5, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.jpeg_transform_info, ptr %349, i32 0, i32 11
  %351 = load i32, ptr %350, align 8, !tbaa !34
  %352 = load ptr, ptr %5, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.jpeg_transform_info, ptr %352, i32 0, i32 16
  %354 = load i32, ptr %353, align 4, !tbaa !27
  %355 = icmp uge i32 %351, %354
  br i1 %355, label %356, label %367

356:                                              ; preds = %348
  %357 = load ptr, ptr %4, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %357, i32 0, i32 0
  %359 = load ptr, ptr %358, align 8, !tbaa !36
  %360 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %359, i32 0, i32 5
  store i32 5, ptr %360, align 8, !tbaa !37
  %361 = load ptr, ptr %4, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %361, i32 0, i32 0
  %363 = load ptr, ptr %362, align 8, !tbaa !36
  %364 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %363, i32 0, i32 0
  %365 = load ptr, ptr %364, align 8, !tbaa !40
  %366 = load ptr, ptr %4, align 8, !tbaa !5
  call void %365(ptr noundef %366)
  br label %367

367:                                              ; preds = %356, %348
  %368 = load ptr, ptr %5, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.jpeg_transform_info, ptr %368, i32 0, i32 16
  %370 = load i32, ptr %369, align 4, !tbaa !27
  %371 = load ptr, ptr %5, align 8, !tbaa !5
  %372 = getelementptr inbounds %struct.jpeg_transform_info, ptr %371, i32 0, i32 11
  %373 = load i32, ptr %372, align 8, !tbaa !34
  %374 = sub i32 %370, %373
  %375 = load ptr, ptr %5, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.jpeg_transform_info, ptr %375, i32 0, i32 7
  store i32 %374, ptr %376, align 8, !tbaa !43
  br label %460

377:                                              ; preds = %343
  %378 = load ptr, ptr %5, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.jpeg_transform_info, ptr %378, i32 0, i32 7
  %380 = load i32, ptr %379, align 8, !tbaa !43
  %381 = load ptr, ptr %5, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.jpeg_transform_info, ptr %381, i32 0, i32 16
  %383 = load i32, ptr %382, align 4, !tbaa !27
  %384 = icmp ugt i32 %380, %383
  br i1 %384, label %385, label %422

385:                                              ; preds = %377
  %386 = load ptr, ptr %5, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.jpeg_transform_info, ptr %386, i32 0, i32 0
  %388 = load i32, ptr %387, align 8, !tbaa !23
  %389 = icmp ne i32 %388, 0
  br i1 %389, label %410, label %390

390:                                              ; preds = %385
  %391 = load ptr, ptr %5, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.jpeg_transform_info, ptr %391, i32 0, i32 11
  %393 = load i32, ptr %392, align 8, !tbaa !34
  %394 = load ptr, ptr %5, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.jpeg_transform_info, ptr %394, i32 0, i32 7
  %396 = load i32, ptr %395, align 8, !tbaa !43
  %397 = icmp uge i32 %393, %396
  br i1 %397, label %410, label %398

398:                                              ; preds = %390
  %399 = load ptr, ptr %5, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.jpeg_transform_info, ptr %399, i32 0, i32 11
  %401 = load i32, ptr %400, align 8, !tbaa !34
  %402 = load ptr, ptr %5, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.jpeg_transform_info, ptr %402, i32 0, i32 7
  %404 = load i32, ptr %403, align 8, !tbaa !43
  %405 = load ptr, ptr %5, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.jpeg_transform_info, ptr %405, i32 0, i32 16
  %407 = load i32, ptr %406, align 4, !tbaa !27
  %408 = sub i32 %404, %407
  %409 = icmp ugt i32 %401, %408
  br i1 %409, label %410, label %421

410:                                              ; preds = %398, %390, %385
  %411 = load ptr, ptr %4, align 8, !tbaa !5
  %412 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %411, i32 0, i32 0
  %413 = load ptr, ptr %412, align 8, !tbaa !36
  %414 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %413, i32 0, i32 5
  store i32 5, ptr %414, align 8, !tbaa !37
  %415 = load ptr, ptr %4, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %415, i32 0, i32 0
  %417 = load ptr, ptr %416, align 8, !tbaa !36
  %418 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %417, i32 0, i32 0
  %419 = load ptr, ptr %418, align 8, !tbaa !40
  %420 = load ptr, ptr %4, align 8, !tbaa !5
  call void %419(ptr noundef %420)
  br label %421

421:                                              ; preds = %410, %398
  br label %459

422:                                              ; preds = %377
  %423 = load ptr, ptr %5, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.jpeg_transform_info, ptr %423, i32 0, i32 11
  %425 = load i32, ptr %424, align 8, !tbaa !34
  %426 = load ptr, ptr %5, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.jpeg_transform_info, ptr %426, i32 0, i32 16
  %428 = load i32, ptr %427, align 4, !tbaa !27
  %429 = icmp uge i32 %425, %428
  br i1 %429, label %447, label %430

430:                                              ; preds = %422
  %431 = load ptr, ptr %5, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.jpeg_transform_info, ptr %431, i32 0, i32 7
  %433 = load i32, ptr %432, align 8, !tbaa !43
  %434 = icmp ule i32 %433, 0
  br i1 %434, label %447, label %435

435:                                              ; preds = %430
  %436 = load ptr, ptr %5, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.jpeg_transform_info, ptr %436, i32 0, i32 11
  %438 = load i32, ptr %437, align 8, !tbaa !34
  %439 = load ptr, ptr %5, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.jpeg_transform_info, ptr %439, i32 0, i32 16
  %441 = load i32, ptr %440, align 4, !tbaa !27
  %442 = load ptr, ptr %5, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.jpeg_transform_info, ptr %442, i32 0, i32 7
  %444 = load i32, ptr %443, align 8, !tbaa !43
  %445 = sub i32 %441, %444
  %446 = icmp ugt i32 %438, %445
  br i1 %446, label %447, label %458

447:                                              ; preds = %435, %430, %422
  %448 = load ptr, ptr %4, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %448, i32 0, i32 0
  %450 = load ptr, ptr %449, align 8, !tbaa !36
  %451 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %450, i32 0, i32 5
  store i32 5, ptr %451, align 8, !tbaa !37
  %452 = load ptr, ptr %4, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %452, i32 0, i32 0
  %454 = load ptr, ptr %453, align 8, !tbaa !36
  %455 = getelementptr inbounds %struct.jpeg_error_mgr, ptr %454, i32 0, i32 0
  %456 = load ptr, ptr %455, align 8, !tbaa !40
  %457 = load ptr, ptr %4, align 8, !tbaa !5
  call void %456(ptr noundef %457)
  br label %458

458:                                              ; preds = %447, %435
  br label %459

459:                                              ; preds = %458, %421
  br label %460

460:                                              ; preds = %459, %367
  %461 = load ptr, ptr %5, align 8, !tbaa !5
  %462 = getelementptr inbounds %struct.jpeg_transform_info, ptr %461, i32 0, i32 10
  %463 = load i32, ptr %462, align 4, !tbaa !31
  %464 = icmp ne i32 %463, 2
  br i1 %464, label %465, label %469

465:                                              ; preds = %460
  %466 = load ptr, ptr %5, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.jpeg_transform_info, ptr %466, i32 0, i32 9
  %468 = load i32, ptr %467, align 8, !tbaa !32
  store i32 %468, ptr %10, align 4, !tbaa !44
  br label %502

469:                                              ; preds = %460
  %470 = load ptr, ptr %5, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.jpeg_transform_info, ptr %470, i32 0, i32 5
  %472 = load i32, ptr %471, align 8, !tbaa !41
  %473 = load ptr, ptr %5, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.jpeg_transform_info, ptr %473, i32 0, i32 15
  %475 = load i32, ptr %474, align 8, !tbaa !26
  %476 = icmp ugt i32 %472, %475
  br i1 %476, label %477, label %489

477:                                              ; preds = %469
  %478 = load ptr, ptr %5, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.jpeg_transform_info, ptr %478, i32 0, i32 5
  %480 = load i32, ptr %479, align 8, !tbaa !41
  %481 = load ptr, ptr %5, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.jpeg_transform_info, ptr %481, i32 0, i32 15
  %483 = load i32, ptr %482, align 8, !tbaa !26
  %484 = sub i32 %480, %483
  %485 = load ptr, ptr %5, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.jpeg_transform_info, ptr %485, i32 0, i32 9
  %487 = load i32, ptr %486, align 8, !tbaa !32
  %488 = sub i32 %484, %487
  store i32 %488, ptr %10, align 4, !tbaa !44
  br label %501

489:                                              ; preds = %469
  %490 = load ptr, ptr %5, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.jpeg_transform_info, ptr %490, i32 0, i32 15
  %492 = load i32, ptr %491, align 8, !tbaa !26
  %493 = load ptr, ptr %5, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.jpeg_transform_info, ptr %493, i32 0, i32 5
  %495 = load i32, ptr %494, align 8, !tbaa !41
  %496 = sub i32 %492, %495
  %497 = load ptr, ptr %5, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.jpeg_transform_info, ptr %497, i32 0, i32 9
  %499 = load i32, ptr %498, align 8, !tbaa !32
  %500 = sub i32 %496, %499
  store i32 %500, ptr %10, align 4, !tbaa !44
  br label %501

501:                                              ; preds = %489, %477
  br label %502

502:                                              ; preds = %501, %465
  %503 = load ptr, ptr %5, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.jpeg_transform_info, ptr %503, i32 0, i32 12
  %505 = load i32, ptr %504, align 4, !tbaa !33
  %506 = icmp ne i32 %505, 2
  br i1 %506, label %507, label %511

507:                                              ; preds = %502
  %508 = load ptr, ptr %5, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.jpeg_transform_info, ptr %508, i32 0, i32 11
  %510 = load i32, ptr %509, align 8, !tbaa !34
  store i32 %510, ptr %11, align 4, !tbaa !44
  br label %544

511:                                              ; preds = %502
  %512 = load ptr, ptr %5, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.jpeg_transform_info, ptr %512, i32 0, i32 7
  %514 = load i32, ptr %513, align 8, !tbaa !43
  %515 = load ptr, ptr %5, align 8, !tbaa !5
  %516 = getelementptr inbounds %struct.jpeg_transform_info, ptr %515, i32 0, i32 16
  %517 = load i32, ptr %516, align 4, !tbaa !27
  %518 = icmp ugt i32 %514, %517
  br i1 %518, label %519, label %531

519:                                              ; preds = %511
  %520 = load ptr, ptr %5, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.jpeg_transform_info, ptr %520, i32 0, i32 7
  %522 = load i32, ptr %521, align 8, !tbaa !43
  %523 = load ptr, ptr %5, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.jpeg_transform_info, ptr %523, i32 0, i32 16
  %525 = load i32, ptr %524, align 4, !tbaa !27
  %526 = sub i32 %522, %525
  %527 = load ptr, ptr %5, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.jpeg_transform_info, ptr %527, i32 0, i32 11
  %529 = load i32, ptr %528, align 8, !tbaa !34
  %530 = sub i32 %526, %529
  store i32 %530, ptr %11, align 4, !tbaa !44
  br label %543

531:                                              ; preds = %511
  %532 = load ptr, ptr %5, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.jpeg_transform_info, ptr %532, i32 0, i32 16
  %534 = load i32, ptr %533, align 4, !tbaa !27
  %535 = load ptr, ptr %5, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.jpeg_transform_info, ptr %535, i32 0, i32 7
  %537 = load i32, ptr %536, align 8, !tbaa !43
  %538 = sub i32 %534, %537
  %539 = load ptr, ptr %5, align 8, !tbaa !5
  %540 = getelementptr inbounds %struct.jpeg_transform_info, ptr %539, i32 0, i32 11
  %541 = load i32, ptr %540, align 8, !tbaa !34
  %542 = sub i32 %538, %541
  store i32 %542, ptr %11, align 4, !tbaa !44
  br label %543

543:                                              ; preds = %531, %519
  br label %544

544:                                              ; preds = %543, %507
  %545 = load ptr, ptr %5, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.jpeg_transform_info, ptr %545, i32 0, i32 0
  %547 = load i32, ptr %546, align 8, !tbaa !23
  %548 = icmp eq i32 %547, 8
  br i1 %548, label %549, label %586

549:                                              ; preds = %544
  %550 = load ptr, ptr %5, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.jpeg_transform_info, ptr %550, i32 0, i32 5
  %552 = load i32, ptr %551, align 8, !tbaa !41
  %553 = load i32, ptr %10, align 4, !tbaa !44
  %554 = load ptr, ptr %5, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.jpeg_transform_info, ptr %554, i32 0, i32 21
  %556 = load i32, ptr %555, align 8, !tbaa !28
  %557 = urem i32 %553, %556
  %558 = add i32 %552, %557
  %559 = zext i32 %558 to i64
  %560 = load ptr, ptr %5, align 8, !tbaa !5
  %561 = getelementptr inbounds %struct.jpeg_transform_info, ptr %560, i32 0, i32 21
  %562 = load i32, ptr %561, align 8, !tbaa !28
  %563 = sext i32 %562 to i64
  %564 = call i64 @jdiv_round_up(i64 noundef %559, i64 noundef %563)
  %565 = trunc i64 %564 to i32
  %566 = load ptr, ptr %5, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.jpeg_transform_info, ptr %566, i32 0, i32 19
  store i32 %565, ptr %567, align 8, !tbaa !45
  %568 = load ptr, ptr %5, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.jpeg_transform_info, ptr %568, i32 0, i32 7
  %570 = load i32, ptr %569, align 8, !tbaa !43
  %571 = load i32, ptr %11, align 4, !tbaa !44
  %572 = load ptr, ptr %5, align 8, !tbaa !5
  %573 = getelementptr inbounds %struct.jpeg_transform_info, ptr %572, i32 0, i32 22
  %574 = load i32, ptr %573, align 4, !tbaa !29
  %575 = urem i32 %571, %574
  %576 = add i32 %570, %575
  %577 = zext i32 %576 to i64
  %578 = load ptr, ptr %5, align 8, !tbaa !5
  %579 = getelementptr inbounds %struct.jpeg_transform_info, ptr %578, i32 0, i32 22
  %580 = load i32, ptr %579, align 4, !tbaa !29
  %581 = sext i32 %580 to i64
  %582 = call i64 @jdiv_round_up(i64 noundef %577, i64 noundef %581)
  %583 = trunc i64 %582 to i32
  %584 = load ptr, ptr %5, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.jpeg_transform_info, ptr %584, i32 0, i32 20
  store i32 %583, ptr %585, align 4, !tbaa !46
  br label %649

586:                                              ; preds = %544
  %587 = load ptr, ptr %5, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.jpeg_transform_info, ptr %587, i32 0, i32 6
  %589 = load i32, ptr %588, align 4, !tbaa !35
  %590 = icmp eq i32 %589, 3
  br i1 %590, label %599, label %591

591:                                              ; preds = %586
  %592 = load ptr, ptr %5, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.jpeg_transform_info, ptr %592, i32 0, i32 5
  %594 = load i32, ptr %593, align 8, !tbaa !41
  %595 = load ptr, ptr %5, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.jpeg_transform_info, ptr %595, i32 0, i32 15
  %597 = load i32, ptr %596, align 8, !tbaa !26
  %598 = icmp ugt i32 %594, %597
  br i1 %598, label %599, label %605

599:                                              ; preds = %591, %586
  %600 = load ptr, ptr %5, align 8, !tbaa !5
  %601 = getelementptr inbounds %struct.jpeg_transform_info, ptr %600, i32 0, i32 5
  %602 = load i32, ptr %601, align 8, !tbaa !41
  %603 = load ptr, ptr %5, align 8, !tbaa !5
  %604 = getelementptr inbounds %struct.jpeg_transform_info, ptr %603, i32 0, i32 15
  store i32 %602, ptr %604, align 8, !tbaa !26
  br label %617

605:                                              ; preds = %591
  %606 = load ptr, ptr %5, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.jpeg_transform_info, ptr %606, i32 0, i32 5
  %608 = load i32, ptr %607, align 8, !tbaa !41
  %609 = load i32, ptr %10, align 4, !tbaa !44
  %610 = load ptr, ptr %5, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.jpeg_transform_info, ptr %610, i32 0, i32 21
  %612 = load i32, ptr %611, align 8, !tbaa !28
  %613 = urem i32 %609, %612
  %614 = add i32 %608, %613
  %615 = load ptr, ptr %5, align 8, !tbaa !5
  %616 = getelementptr inbounds %struct.jpeg_transform_info, ptr %615, i32 0, i32 15
  store i32 %614, ptr %616, align 8, !tbaa !26
  br label %617

617:                                              ; preds = %605, %599
  %618 = load ptr, ptr %5, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.jpeg_transform_info, ptr %618, i32 0, i32 8
  %620 = load i32, ptr %619, align 4, !tbaa !42
  %621 = icmp eq i32 %620, 3
  br i1 %621, label %630, label %622

622:                                              ; preds = %617
  %623 = load ptr, ptr %5, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.jpeg_transform_info, ptr %623, i32 0, i32 7
  %625 = load i32, ptr %624, align 8, !tbaa !43
  %626 = load ptr, ptr %5, align 8, !tbaa !5
  %627 = getelementptr inbounds %struct.jpeg_transform_info, ptr %626, i32 0, i32 16
  %628 = load i32, ptr %627, align 4, !tbaa !27
  %629 = icmp ugt i32 %625, %628
  br i1 %629, label %630, label %636

630:                                              ; preds = %622, %617
  %631 = load ptr, ptr %5, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.jpeg_transform_info, ptr %631, i32 0, i32 7
  %633 = load i32, ptr %632, align 8, !tbaa !43
  %634 = load ptr, ptr %5, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.jpeg_transform_info, ptr %634, i32 0, i32 16
  store i32 %633, ptr %635, align 4, !tbaa !27
  br label %648

636:                                              ; preds = %622
  %637 = load ptr, ptr %5, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.jpeg_transform_info, ptr %637, i32 0, i32 7
  %639 = load i32, ptr %638, align 8, !tbaa !43
  %640 = load i32, ptr %11, align 4, !tbaa !44
  %641 = load ptr, ptr %5, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.jpeg_transform_info, ptr %641, i32 0, i32 22
  %643 = load i32, ptr %642, align 4, !tbaa !29
  %644 = urem i32 %640, %643
  %645 = add i32 %639, %644
  %646 = load ptr, ptr %5, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.jpeg_transform_info, ptr %646, i32 0, i32 16
  store i32 %645, ptr %647, align 4, !tbaa !27
  br label %648

648:                                              ; preds = %636, %630
  br label %649

649:                                              ; preds = %648, %549
  %650 = load i32, ptr %10, align 4, !tbaa !44
  %651 = load ptr, ptr %5, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.jpeg_transform_info, ptr %651, i32 0, i32 21
  %653 = load i32, ptr %652, align 8, !tbaa !28
  %654 = udiv i32 %650, %653
  %655 = load ptr, ptr %5, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.jpeg_transform_info, ptr %655, i32 0, i32 17
  store i32 %654, ptr %656, align 8, !tbaa !47
  %657 = load i32, ptr %11, align 4, !tbaa !44
  %658 = load ptr, ptr %5, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.jpeg_transform_info, ptr %658, i32 0, i32 22
  %660 = load i32, ptr %659, align 4, !tbaa !29
  %661 = udiv i32 %657, %660
  %662 = load ptr, ptr %5, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.jpeg_transform_info, ptr %662, i32 0, i32 18
  store i32 %661, ptr %663, align 4, !tbaa !48
  br label %669

664:                                              ; preds = %205
  %665 = load ptr, ptr %5, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.jpeg_transform_info, ptr %665, i32 0, i32 17
  store i32 0, ptr %666, align 8, !tbaa !47
  %667 = load ptr, ptr %5, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.jpeg_transform_info, ptr %667, i32 0, i32 18
  store i32 0, ptr %668, align 4, !tbaa !48
  br label %669

669:                                              ; preds = %664, %649
  store i8 0, ptr %7, align 1, !tbaa !49
  store i8 0, ptr %8, align 1, !tbaa !49
  %670 = load ptr, ptr %5, align 8, !tbaa !5
  %671 = getelementptr inbounds %struct.jpeg_transform_info, ptr %670, i32 0, i32 0
  %672 = load i32, ptr %671, align 8, !tbaa !23
  switch i32 %672, label %782 [
    i32 0, label %673
    i32 1, label %701
    i32 2, label %718
    i32 3, label %729
    i32 4, label %730
    i32 5, label %745
    i32 6, label %756
    i32 7, label %771
    i32 8, label %782
  ]

673:                                              ; preds = %669
  %674 = load ptr, ptr %5, align 8, !tbaa !5
  %675 = getelementptr inbounds %struct.jpeg_transform_info, ptr %674, i32 0, i32 17
  %676 = load i32, ptr %675, align 8, !tbaa !47
  %677 = icmp ne i32 %676, 0
  br i1 %677, label %699, label %678

678:                                              ; preds = %673
  %679 = load ptr, ptr %5, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.jpeg_transform_info, ptr %679, i32 0, i32 18
  %681 = load i32, ptr %680, align 4, !tbaa !48
  %682 = icmp ne i32 %681, 0
  br i1 %682, label %699, label %683

683:                                              ; preds = %678
  %684 = load ptr, ptr %5, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.jpeg_transform_info, ptr %684, i32 0, i32 15
  %686 = load i32, ptr %685, align 8, !tbaa !26
  %687 = load ptr, ptr %4, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %687, i32 0, i32 27
  %689 = load i32, ptr %688, align 4, !tbaa !19
  %690 = icmp ugt i32 %686, %689
  br i1 %690, label %699, label %691

691:                                              ; preds = %683
  %692 = load ptr, ptr %5, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.jpeg_transform_info, ptr %692, i32 0, i32 16
  %694 = load i32, ptr %693, align 4, !tbaa !27
  %695 = load ptr, ptr %4, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %695, i32 0, i32 28
  %697 = load i32, ptr %696, align 8, !tbaa !20
  %698 = icmp ugt i32 %694, %697
  br i1 %698, label %699, label %700

699:                                              ; preds = %691, %683, %678, %673
  store i8 1, ptr %7, align 1, !tbaa !49
  br label %700

700:                                              ; preds = %699, %691
  br label %782

701:                                              ; preds = %669
  %702 = load ptr, ptr %5, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.jpeg_transform_info, ptr %702, i32 0, i32 2
  %704 = load i8, ptr %703, align 1, !tbaa !50
  %705 = icmp ne i8 %704, 0
  br i1 %705, label %706, label %711

706:                                              ; preds = %701
  %707 = load ptr, ptr %5, align 8, !tbaa !5
  %708 = load ptr, ptr %4, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %708, i32 0, i32 27
  %710 = load i32, ptr %709, align 4, !tbaa !19
  call void @trim_right_edge(ptr noundef %707, i32 noundef %710)
  br label %711

711:                                              ; preds = %706, %701
  %712 = load ptr, ptr %5, align 8, !tbaa !5
  %713 = getelementptr inbounds %struct.jpeg_transform_info, ptr %712, i32 0, i32 18
  %714 = load i32, ptr %713, align 4, !tbaa !48
  %715 = icmp ne i32 %714, 0
  br i1 %715, label %716, label %717

716:                                              ; preds = %711
  store i8 1, ptr %7, align 1, !tbaa !49
  br label %717

717:                                              ; preds = %716, %711
  br label %782

718:                                              ; preds = %669
  %719 = load ptr, ptr %5, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.jpeg_transform_info, ptr %719, i32 0, i32 2
  %721 = load i8, ptr %720, align 1, !tbaa !50
  %722 = icmp ne i8 %721, 0
  br i1 %722, label %723, label %728

723:                                              ; preds = %718
  %724 = load ptr, ptr %5, align 8, !tbaa !5
  %725 = load ptr, ptr %4, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %725, i32 0, i32 28
  %727 = load i32, ptr %726, align 8, !tbaa !20
  call void @trim_bottom_edge(ptr noundef %724, i32 noundef %727)
  br label %728

728:                                              ; preds = %723, %718
  store i8 1, ptr %7, align 1, !tbaa !49
  br label %782

729:                                              ; preds = %669
  store i8 1, ptr %7, align 1, !tbaa !49
  store i8 1, ptr %8, align 1, !tbaa !49
  br label %782

730:                                              ; preds = %669
  %731 = load ptr, ptr %5, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.jpeg_transform_info, ptr %731, i32 0, i32 2
  %733 = load i8, ptr %732, align 1, !tbaa !50
  %734 = icmp ne i8 %733, 0
  br i1 %734, label %735, label %744

735:                                              ; preds = %730
  %736 = load ptr, ptr %5, align 8, !tbaa !5
  %737 = load ptr, ptr %4, align 8, !tbaa !5
  %738 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %737, i32 0, i32 28
  %739 = load i32, ptr %738, align 8, !tbaa !20
  call void @trim_right_edge(ptr noundef %736, i32 noundef %739)
  %740 = load ptr, ptr %5, align 8, !tbaa !5
  %741 = load ptr, ptr %4, align 8, !tbaa !5
  %742 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %741, i32 0, i32 27
  %743 = load i32, ptr %742, align 4, !tbaa !19
  call void @trim_bottom_edge(ptr noundef %740, i32 noundef %743)
  br label %744

744:                                              ; preds = %735, %730
  store i8 1, ptr %7, align 1, !tbaa !49
  store i8 1, ptr %8, align 1, !tbaa !49
  br label %782

745:                                              ; preds = %669
  %746 = load ptr, ptr %5, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.jpeg_transform_info, ptr %746, i32 0, i32 2
  %748 = load i8, ptr %747, align 1, !tbaa !50
  %749 = icmp ne i8 %748, 0
  br i1 %749, label %750, label %755

750:                                              ; preds = %745
  %751 = load ptr, ptr %5, align 8, !tbaa !5
  %752 = load ptr, ptr %4, align 8, !tbaa !5
  %753 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %752, i32 0, i32 28
  %754 = load i32, ptr %753, align 8, !tbaa !20
  call void @trim_right_edge(ptr noundef %751, i32 noundef %754)
  br label %755

755:                                              ; preds = %750, %745
  store i8 1, ptr %7, align 1, !tbaa !49
  store i8 1, ptr %8, align 1, !tbaa !49
  br label %782

756:                                              ; preds = %669
  %757 = load ptr, ptr %5, align 8, !tbaa !5
  %758 = getelementptr inbounds %struct.jpeg_transform_info, ptr %757, i32 0, i32 2
  %759 = load i8, ptr %758, align 1, !tbaa !50
  %760 = icmp ne i8 %759, 0
  br i1 %760, label %761, label %770

761:                                              ; preds = %756
  %762 = load ptr, ptr %5, align 8, !tbaa !5
  %763 = load ptr, ptr %4, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %763, i32 0, i32 27
  %765 = load i32, ptr %764, align 4, !tbaa !19
  call void @trim_right_edge(ptr noundef %762, i32 noundef %765)
  %766 = load ptr, ptr %5, align 8, !tbaa !5
  %767 = load ptr, ptr %4, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %767, i32 0, i32 28
  %769 = load i32, ptr %768, align 8, !tbaa !20
  call void @trim_bottom_edge(ptr noundef %766, i32 noundef %769)
  br label %770

770:                                              ; preds = %761, %756
  store i8 1, ptr %7, align 1, !tbaa !49
  br label %782

771:                                              ; preds = %669
  %772 = load ptr, ptr %5, align 8, !tbaa !5
  %773 = getelementptr inbounds %struct.jpeg_transform_info, ptr %772, i32 0, i32 2
  %774 = load i8, ptr %773, align 1, !tbaa !50
  %775 = icmp ne i8 %774, 0
  br i1 %775, label %776, label %781

776:                                              ; preds = %771
  %777 = load ptr, ptr %5, align 8, !tbaa !5
  %778 = load ptr, ptr %4, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %778, i32 0, i32 27
  %780 = load i32, ptr %779, align 4, !tbaa !19
  call void @trim_bottom_edge(ptr noundef %777, i32 noundef %780)
  br label %781

781:                                              ; preds = %776, %771
  store i8 1, ptr %7, align 1, !tbaa !49
  store i8 1, ptr %8, align 1, !tbaa !49
  br label %782

782:                                              ; preds = %781, %770, %755, %744, %729, %728, %717, %700, %669, %669
  %783 = load i8, ptr %7, align 1, !tbaa !49
  %784 = icmp ne i8 %783, 0
  br i1 %784, label %785, label %882

785:                                              ; preds = %782
  %786 = load ptr, ptr %4, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %786, i32 0, i32 1
  %788 = load ptr, ptr %787, align 8, !tbaa !51
  %789 = getelementptr inbounds %struct.jpeg_memory_mgr, ptr %788, i32 0, i32 0
  %790 = load ptr, ptr %789, align 8, !tbaa !52
  %791 = load ptr, ptr %4, align 8, !tbaa !5
  %792 = load ptr, ptr %5, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.jpeg_transform_info, ptr %792, i32 0, i32 13
  %794 = load i32, ptr %793, align 8, !tbaa !17
  %795 = sext i32 %794 to i64
  %796 = mul i64 8, %795
  %797 = call ptr %790(ptr noundef %791, i32 noundef 1, i64 noundef %796)
  store ptr %797, ptr %6, align 8, !tbaa !5
  %798 = load ptr, ptr %5, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.jpeg_transform_info, ptr %798, i32 0, i32 15
  %800 = load i32, ptr %799, align 8, !tbaa !26
  %801 = zext i32 %800 to i64
  %802 = load ptr, ptr %5, align 8, !tbaa !5
  %803 = getelementptr inbounds %struct.jpeg_transform_info, ptr %802, i32 0, i32 21
  %804 = load i32, ptr %803, align 8, !tbaa !28
  %805 = sext i32 %804 to i64
  %806 = call i64 @jdiv_round_up(i64 noundef %801, i64 noundef %805)
  %807 = trunc i64 %806 to i32
  store i32 %807, ptr %12, align 4, !tbaa !44
  %808 = load ptr, ptr %5, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.jpeg_transform_info, ptr %808, i32 0, i32 16
  %810 = load i32, ptr %809, align 4, !tbaa !27
  %811 = zext i32 %810 to i64
  %812 = load ptr, ptr %5, align 8, !tbaa !5
  %813 = getelementptr inbounds %struct.jpeg_transform_info, ptr %812, i32 0, i32 22
  %814 = load i32, ptr %813, align 4, !tbaa !29
  %815 = sext i32 %814 to i64
  %816 = call i64 @jdiv_round_up(i64 noundef %811, i64 noundef %815)
  %817 = trunc i64 %816 to i32
  store i32 %817, ptr %13, align 4, !tbaa !44
  store i32 0, ptr %16, align 4, !tbaa !44
  br label %818

818:                                              ; preds = %875, %785
  %819 = load i32, ptr %16, align 4, !tbaa !44
  %820 = load ptr, ptr %5, align 8, !tbaa !5
  %821 = getelementptr inbounds %struct.jpeg_transform_info, ptr %820, i32 0, i32 13
  %822 = load i32, ptr %821, align 8, !tbaa !17
  %823 = icmp slt i32 %819, %822
  br i1 %823, label %824, label %878

824:                                              ; preds = %818
  %825 = load ptr, ptr %4, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %825, i32 0, i32 44
  %827 = load ptr, ptr %826, align 8, !tbaa !54
  %828 = load i32, ptr %16, align 4, !tbaa !44
  %829 = sext i32 %828 to i64
  %830 = getelementptr inbounds %struct.jpeg_component_info, ptr %827, i64 %829
  store ptr %830, ptr %9, align 8, !tbaa !5
  %831 = load ptr, ptr %5, align 8, !tbaa !5
  %832 = getelementptr inbounds %struct.jpeg_transform_info, ptr %831, i32 0, i32 13
  %833 = load i32, ptr %832, align 8, !tbaa !17
  %834 = icmp eq i32 %833, 1
  br i1 %834, label %835, label %836

835:                                              ; preds = %824
  store i32 1, ptr %18, align 4, !tbaa !44
  store i32 1, ptr %17, align 4, !tbaa !44
  br label %854

836:                                              ; preds = %824
  %837 = load i8, ptr %8, align 1, !tbaa !49
  %838 = icmp ne i8 %837, 0
  br i1 %838, label %839, label %846

839:                                              ; preds = %836
  %840 = load ptr, ptr %9, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.jpeg_component_info, ptr %840, i32 0, i32 3
  %842 = load i32, ptr %841, align 4, !tbaa !55
  store i32 %842, ptr %17, align 4, !tbaa !44
  %843 = load ptr, ptr %9, align 8, !tbaa !5
  %844 = getelementptr inbounds %struct.jpeg_component_info, ptr %843, i32 0, i32 2
  %845 = load i32, ptr %844, align 8, !tbaa !57
  store i32 %845, ptr %18, align 4, !tbaa !44
  br label %853

846:                                              ; preds = %836
  %847 = load ptr, ptr %9, align 8, !tbaa !5
  %848 = getelementptr inbounds %struct.jpeg_component_info, ptr %847, i32 0, i32 2
  %849 = load i32, ptr %848, align 8, !tbaa !57
  store i32 %849, ptr %17, align 4, !tbaa !44
  %850 = load ptr, ptr %9, align 8, !tbaa !5
  %851 = getelementptr inbounds %struct.jpeg_component_info, ptr %850, i32 0, i32 3
  %852 = load i32, ptr %851, align 4, !tbaa !55
  store i32 %852, ptr %18, align 4, !tbaa !44
  br label %853

853:                                              ; preds = %846, %839
  br label %854

854:                                              ; preds = %853, %835
  %855 = load i32, ptr %12, align 4, !tbaa !44
  %856 = load i32, ptr %17, align 4, !tbaa !44
  %857 = mul i32 %855, %856
  store i32 %857, ptr %14, align 4, !tbaa !44
  %858 = load i32, ptr %13, align 4, !tbaa !44
  %859 = load i32, ptr %18, align 4, !tbaa !44
  %860 = mul i32 %858, %859
  store i32 %860, ptr %15, align 4, !tbaa !44
  %861 = load ptr, ptr %4, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.jpeg_decompress_struct, ptr %861, i32 0, i32 1
  %863 = load ptr, ptr %862, align 8, !tbaa !51
  %864 = getelementptr inbounds %struct.jpeg_memory_mgr, ptr %863, i32 0, i32 5
  %865 = load ptr, ptr %864, align 8, !tbaa !58
  %866 = load ptr, ptr %4, align 8, !tbaa !5
  %867 = load i32, ptr %14, align 4, !tbaa !44
  %868 = load i32, ptr %15, align 4, !tbaa !44
  %869 = load i32, ptr %18, align 4, !tbaa !44
  %870 = call ptr %865(ptr noundef %866, i32 noundef 1, i8 noundef zeroext 0, i32 noundef %867, i32 noundef %868, i32 noundef %869)
  %871 = load ptr, ptr %6, align 8, !tbaa !5
  %872 = load i32, ptr %16, align 4, !tbaa !44
  %873 = sext i32 %872 to i64
  %874 = getelementptr inbounds ptr, ptr %871, i64 %873
  store ptr %870, ptr %874, align 8, !tbaa !5
  br label %875

875:                                              ; preds = %854
  %876 = load i32, ptr %16, align 4, !tbaa !44
  %877 = add nsw i32 %876, 1
  store i32 %877, ptr %16, align 4, !tbaa !44
  br label %818, !llvm.loop !59

878:                                              ; preds = %818
  %879 = load ptr, ptr %6, align 8, !tbaa !5
  %880 = load ptr, ptr %5, align 8, !tbaa !5
  %881 = getelementptr inbounds %struct.jpeg_transform_info, ptr %880, i32 0, i32 14
  store ptr %879, ptr %881, align 8, !tbaa !61
  br label %885

882:                                              ; preds = %782
  %883 = load ptr, ptr %5, align 8, !tbaa !5
  %884 = getelementptr inbounds %struct.jpeg_transform_info, ptr %883, i32 0, i32 14
  store ptr null, ptr %884, align 8, !tbaa !61
  br label %885

885:                                              ; preds = %882, %878
  store i8 1, ptr %3, align 1
  store i32 1, ptr %19, align 4
  br label %886

886:                                              ; preds = %885, %106, %78
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #3
  %887 = load i8, ptr %3, align 1
  ret i8 %887
}

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

declare void @jpeg_core_output_dimensions(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @jtransform_perfect_transform(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #0

declare i64 @jdiv_round_up(i64 noundef, i64 noundef) #2

; Function Attrs: nounwind uwtable
declare hidden void @trim_right_edge(ptr noundef, i32 noundef) #0

; Function Attrs: nounwind uwtable
declare hidden void @trim_bottom_edge(ptr noundef, i32 noundef) #0

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

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "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, !7, i64 6}
!10 = !{!"", !11, i64 0, !7, i64 4, !7, i64 5, !7, i64 6, !7, i64 7, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !6, i64 48, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68, !11, i64 72, !11, i64 76, !11, i64 80, !11, i64 84}
!11 = !{!"int", !7, i64 0}
!12 = !{!13, !11, i64 60}
!13 = !{!"jpeg_decompress_struct", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !7, i64 32, !11, i64 36, !6, i64 40, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68, !11, i64 72, !14, i64 80, !7, i64 88, !7, i64 89, !11, i64 92, !7, i64 96, !7, i64 97, !7, i64 98, !11, i64 100, !7, i64 104, !11, i64 108, !7, i64 112, !7, i64 113, !7, i64 114, !11, i64 116, !11, i64 120, !11, i64 124, !11, i64 128, !11, i64 132, !11, i64 136, !6, i64 144, !11, i64 152, !11, i64 156, !11, i64 160, !11, i64 164, !11, i64 168, !6, i64 176, !7, i64 184, !7, i64 216, !7, i64 248, !11, i64 280, !6, i64 288, !7, i64 296, !7, i64 297, !7, i64 298, !7, i64 299, !7, i64 315, !7, i64 331, !11, i64 348, !7, i64 352, !7, i64 353, !7, i64 354, !7, i64 355, !15, i64 356, !15, i64 358, !7, i64 360, !7, i64 361, !11, i64 364, !7, i64 368, !6, i64 376, !11, i64 384, !11, i64 388, !11, i64 392, !11, i64 396, !11, i64 400, !6, i64 408, !11, i64 416, !7, i64 424, !11, i64 456, !11, i64 460, !11, i64 464, !7, i64 468, !11, i64 508, !11, i64 512, !11, i64 516, !11, i64 520, !11, i64 524, !6, i64 528, !11, i64 536, !11, i64 540, !6, i64 544, !6, i64 552, !6, i64 560, !6, i64 568, !6, i64 576, !6, i64 584, !6, i64 592, !6, i64 600, !6, i64 608, !6, i64 616, !6, i64 624}
!14 = !{!"double", !7, i64 0}
!15 = !{!"short", !7, i64 0}
!16 = !{!13, !11, i64 56}
!17 = !{!10, !11, i64 40}
!18 = !{!10, !7, i64 4}
!19 = !{!13, !11, i64 116}
!20 = !{!13, !11, i64 120}
!21 = !{!13, !11, i64 392}
!22 = !{!13, !11, i64 396}
!23 = !{!10, !11, i64 0}
!24 = !{!13, !11, i64 384}
!25 = !{!13, !11, i64 388}
!26 = !{!10, !11, i64 56}
!27 = !{!10, !11, i64 60}
!28 = !{!10, !11, i64 80}
!29 = !{!10, !11, i64 84}
!30 = !{!10, !7, i64 7}
!31 = !{!10, !11, i64 28}
!32 = !{!10, !11, i64 24}
!33 = !{!10, !11, i64 36}
!34 = !{!10, !11, i64 32}
!35 = !{!10, !11, i64 12}
!36 = !{!13, !6, i64 0}
!37 = !{!38, !11, i64 40}
!38 = !{!"jpeg_error_mgr", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !11, i64 40, !7, i64 44, !11, i64 124, !39, i64 128, !6, i64 136, !11, i64 144, !6, i64 152, !11, i64 160, !11, i64 164}
!39 = !{!"long", !7, i64 0}
!40 = !{!38, !6, i64 0}
!41 = !{!10, !11, i64 8}
!42 = !{!10, !11, i64 20}
!43 = !{!10, !11, i64 16}
!44 = !{!11, !11, i64 0}
!45 = !{!10, !11, i64 72}
!46 = !{!10, !11, i64 76}
!47 = !{!10, !11, i64 64}
!48 = !{!10, !11, i64 68}
!49 = !{!7, !7, i64 0}
!50 = !{!10, !7, i64 5}
!51 = !{!13, !6, i64 8}
!52 = !{!53, !6, i64 0}
!53 = !{!"jpeg_memory_mgr", !6, i64 0, !6, 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, !39, i64 88, !39, i64 96}
!54 = !{!13, !6, i64 288}
!55 = !{!56, !11, i64 12}
!56 = !{!"", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !11, i64 44, !11, i64 48, !7, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !11, i64 68, !11, i64 72, !11, i64 76, !6, i64 80, !6, i64 88}
!57 = !{!56, !11, i64 8}
!58 = !{!53, !6, i64 40}
!59 = distinct !{!59, !60}
!60 = !{!"llvm.loop.mustprogress"}
!61 = !{!10, !6, i64 48}


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

%struct.jpeg_component_info = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, i32, ptr, ptr }

; Function Attrs: nounwind uwtable
define dso_local zeroext range(i8 0, 2) i8 @jtransform_request_workspace(ptr noundef %0, ptr noundef %1) local_unnamed_addr #0 {
  %3 = getelementptr inbounds i8, ptr %1, i64 6
  %4 = load i8, ptr %3, align 2, !tbaa !5
  %.not = icmp eq i8 %4, 0
  br i1 %.not, label %12, label %5

5:                                                ; preds = %2
  %6 = getelementptr inbounds i8, ptr %0, i64 60
  %7 = load i32, ptr %6, align 4, !tbaa !11
  switch i32 %7, label %12 [
    i32 3, label %8
    i32 7, label %8
  ]

8:                                                ; preds = %5, %5
  %9 = getelementptr inbounds i8, ptr %0, i64 56
  %10 = load i32, ptr %9, align 8, !tbaa !15
  %11 = icmp eq i32 %10, 3
  br i1 %11, label %15, label %12

12:                                               ; preds = %5, %8, %2
  %13 = getelementptr inbounds i8, ptr %0, i64 56
  %14 = load i32, ptr %13, align 8, !tbaa !15
  br label %15

15:                                               ; preds = %8, %12
  %.sink = phi i32 [ %14, %12 ], [ 1, %8 ]
  %16 = getelementptr inbounds i8, ptr %1, i64 40
  store i32 %.sink, ptr %16, align 8, !tbaa !16
  tail call void @jpeg_core_output_dimensions(ptr noundef nonnull %0) #2
  %17 = getelementptr inbounds i8, ptr %1, i64 4
  %18 = load i8, ptr %17, align 4, !tbaa !17
  %.not265 = icmp eq i8 %18, 0
  br i1 %.not265, label %47, label %19

19:                                               ; preds = %15
  %20 = getelementptr inbounds i8, ptr %1, i64 40
  %21 = load i32, ptr %20, align 8, !tbaa !16
  %22 = icmp eq i32 %21, 1
  %23 = getelementptr inbounds i8, ptr %0, i64 116
  %24 = load i32, ptr %23, align 4, !tbaa !18
  %25 = getelementptr inbounds i8, ptr %0, i64 120
  %26 = load i32, ptr %25, align 8, !tbaa !19
  br i1 %22, label %27, label %34

27:                                               ; preds = %19
  %28 = getelementptr inbounds i8, ptr %0, i64 392
  %29 = load i32, ptr %28, align 8, !tbaa !20
  %30 = getelementptr inbounds i8, ptr %0, i64 396
  %31 = load i32, ptr %30, align 4, !tbaa !21
  %32 = load i32, ptr %1, align 8, !tbaa !22
  %33 = tail call zeroext i8 @jtransform_perfect_transform(i32 noundef %24, i32 noundef %26, i32 noundef %29, i32 noundef %31, i32 noundef %32)
  %.not267 = icmp eq i8 %33, 0
  br i1 %.not267, label %434, label %47

34:                                               ; preds = %19
  %35 = getelementptr inbounds i8, ptr %0, i64 384
  %36 = load i32, ptr %35, align 8, !tbaa !23
  %37 = getelementptr inbounds i8, ptr %0, i64 392
  %38 = load i32, ptr %37, align 8, !tbaa !20
  %39 = mul nsw i32 %38, %36
  %40 = getelementptr inbounds i8, ptr %0, i64 388
  %41 = load i32, ptr %40, align 4, !tbaa !24
  %42 = getelementptr inbounds i8, ptr %0, i64 396
  %43 = load i32, ptr %42, align 4, !tbaa !21
  %44 = mul nsw i32 %43, %41
  %45 = load i32, ptr %1, align 8, !tbaa !22
  %46 = tail call zeroext i8 @jtransform_perfect_transform(i32 noundef %24, i32 noundef %26, i32 noundef %39, i32 noundef %44, i32 noundef %45)
  %.not266 = icmp eq i8 %46, 0
  br i1 %.not266, label %434, label %47

47:                                               ; preds = %27, %34, %15
  %48 = load i32, ptr %1, align 8, !tbaa !22
  switch i32 %48, label %77 [
    i32 3, label %49
    i32 4, label %49
    i32 5, label %49
    i32 7, label %49
  ]

49:                                               ; preds = %47, %47, %47, %47
  %50 = getelementptr inbounds i8, ptr %0, i64 120
  %51 = load i32, ptr %50, align 8, !tbaa !19
  %52 = getelementptr inbounds i8, ptr %1, i64 56
  store i32 %51, ptr %52, align 8, !tbaa !25
  %53 = getelementptr inbounds i8, ptr %0, i64 116
  %54 = load i32, ptr %53, align 4, !tbaa !18
  %55 = getelementptr inbounds i8, ptr %1, i64 60
  store i32 %54, ptr %55, align 4, !tbaa !26
  %56 = getelementptr inbounds i8, ptr %1, i64 40
  %57 = load i32, ptr %56, align 8, !tbaa !16
  %58 = icmp eq i32 %57, 1
  br i1 %58, label %59, label %65

59:                                               ; preds = %49
  %60 = getelementptr inbounds i8, ptr %0, i64 396
  %61 = load i32, ptr %60, align 4, !tbaa !21
  %62 = getelementptr inbounds i8, ptr %1, i64 80
  store i32 %61, ptr %62, align 8, !tbaa !27
  %63 = getelementptr inbounds i8, ptr %0, i64 392
  %64 = load i32, ptr %63, align 8, !tbaa !20
  br label %104

65:                                               ; preds = %49
  %66 = getelementptr inbounds i8, ptr %0, i64 388
  %67 = load i32, ptr %66, align 4, !tbaa !24
  %68 = getelementptr inbounds i8, ptr %0, i64 396
  %69 = load i32, ptr %68, align 4, !tbaa !21
  %70 = mul nsw i32 %69, %67
  %71 = getelementptr inbounds i8, ptr %1, i64 80
  store i32 %70, ptr %71, align 8, !tbaa !27
  %72 = getelementptr inbounds i8, ptr %0, i64 384
  %73 = load i32, ptr %72, align 8, !tbaa !23
  %74 = getelementptr inbounds i8, ptr %0, i64 392
  %75 = load i32, ptr %74, align 8, !tbaa !20
  %76 = mul nsw i32 %75, %73
  br label %104

77:                                               ; preds = %47
  %78 = getelementptr inbounds i8, ptr %0, i64 116
  %79 = getelementptr inbounds i8, ptr %1, i64 56
  %80 = load <2 x i32>, ptr %78, align 4, !tbaa !28
  store <2 x i32> %80, ptr %79, align 8, !tbaa !28
  %81 = getelementptr inbounds i8, ptr %1, i64 40
  %82 = load i32, ptr %81, align 8, !tbaa !16
  %83 = icmp eq i32 %82, 1
  br i1 %83, label %84, label %91

84:                                               ; preds = %77
  %85 = getelementptr inbounds i8, ptr %0, i64 392
  %86 = load i32, ptr %85, align 8, !tbaa !20
  %87 = getelementptr inbounds i8, ptr %1, i64 80
  store i32 %86, ptr %87, align 8, !tbaa !27
  %88 = getelementptr inbounds i8, ptr %0, i64 396
  %89 = load i32, ptr %88, align 4, !tbaa !21
  %90 = extractelement <2 x i32> %80, i64 0
  br label %104

91:                                               ; preds = %77
  %92 = getelementptr inbounds i8, ptr %0, i64 384
  %93 = load i32, ptr %92, align 8, !tbaa !23
  %94 = getelementptr inbounds i8, ptr %0, i64 392
  %95 = load i32, ptr %94, align 8, !tbaa !20
  %96 = mul nsw i32 %95, %93
  %97 = getelementptr inbounds i8, ptr %1, i64 80
  store i32 %96, ptr %97, align 8, !tbaa !27
  %98 = getelementptr inbounds i8, ptr %0, i64 388
  %99 = load i32, ptr %98, align 4, !tbaa !24
  %100 = getelementptr inbounds i8, ptr %0, i64 396
  %101 = load i32, ptr %100, align 4, !tbaa !21
  %102 = mul nsw i32 %101, %99
  %103 = extractelement <2 x i32> %80, i64 0
  br label %104

104:                                              ; preds = %84, %91, %59, %65
  %.sink337 = phi i32 [ %89, %84 ], [ %102, %91 ], [ %64, %59 ], [ %76, %65 ]
  %105 = phi i32 [ %90, %84 ], [ %103, %91 ], [ %51, %59 ], [ %51, %65 ]
  %106 = getelementptr inbounds i8, ptr %1, i64 84
  store i32 %.sink337, ptr %106, align 4, !tbaa !29
  %107 = getelementptr inbounds i8, ptr %1, i64 7
  %108 = load i8, ptr %107, align 1, !tbaa !30
  %.not268 = icmp eq i8 %108, 0
  br i1 %.not268, label %305, label %109

109:                                              ; preds = %104
  %110 = getelementptr inbounds i8, ptr %1, i64 28
  %111 = load i32, ptr %110, align 4, !tbaa !31
  %112 = icmp eq i32 %111, 0
  br i1 %112, label %113, label %115

113:                                              ; preds = %109
  %114 = getelementptr inbounds i8, ptr %1, i64 24
  store i32 0, ptr %114, align 8, !tbaa !32
  br label %115

115:                                              ; preds = %113, %109
  %116 = getelementptr inbounds i8, ptr %1, i64 36
  %117 = load i32, ptr %116, align 4, !tbaa !33
  %118 = icmp eq i32 %117, 0
  br i1 %118, label %119, label %121

119:                                              ; preds = %115
  %120 = getelementptr inbounds i8, ptr %1, i64 32
  store i32 0, ptr %120, align 8, !tbaa !34
  br label %121

121:                                              ; preds = %119, %115
  %122 = getelementptr inbounds i8, ptr %1, i64 12
  %123 = load i32, ptr %122, align 4, !tbaa !35
  %124 = icmp eq i32 %123, 0
  br i1 %124, label %125, label %138

125:                                              ; preds = %121
  %126 = getelementptr inbounds i8, ptr %1, i64 24
  %127 = load i32, ptr %126, align 8, !tbaa !32
  %.not272 = icmp ult i32 %127, %105
  br i1 %.not272, label %133, label %128

128:                                              ; preds = %125
  %129 = getelementptr inbounds i8, ptr %1, i64 56
  %130 = load ptr, ptr %0, align 8, !tbaa !36
  %131 = getelementptr inbounds i8, ptr %130, i64 40
  store i32 5, ptr %131, align 8, !tbaa !37
  %132 = load ptr, ptr %130, align 8, !tbaa !40
  tail call void %132(ptr noundef nonnull %0) #2
  %.pre = load i32, ptr %129, align 8, !tbaa !25
  %.pre323 = load i32, ptr %126, align 8, !tbaa !32
  br label %133

133:                                              ; preds = %128, %125
  %134 = phi i32 [ %.pre323, %128 ], [ %127, %125 ]
  %135 = phi i32 [ %.pre, %128 ], [ %105, %125 ]
  %136 = sub i32 %135, %134
  %137 = getelementptr inbounds i8, ptr %1, i64 8
  store i32 %136, ptr %137, align 8, !tbaa !41
  br label %162

138:                                              ; preds = %121
  %139 = getelementptr inbounds i8, ptr %1, i64 8
  %140 = load i32, ptr %139, align 8, !tbaa !41
  %141 = icmp ugt i32 %140, %105
  br i1 %141, label %142, label %152

142:                                              ; preds = %138
  %.not270 = icmp eq i32 %48, 0
  br i1 %.not270, label %143, label %148

143:                                              ; preds = %142
  %144 = getelementptr inbounds i8, ptr %1, i64 24
  %145 = load i32, ptr %144, align 8, !tbaa !32
  %.not271 = icmp uge i32 %145, %140
  %146 = sub i32 %140, %105
  %147 = icmp ugt i32 %145, %146
  %or.cond = or i1 %.not271, %147
  br i1 %or.cond, label %148, label %162

148:                                              ; preds = %143, %142
  %149 = load ptr, ptr %0, align 8, !tbaa !36
  %150 = getelementptr inbounds i8, ptr %149, i64 40
  store i32 5, ptr %150, align 8, !tbaa !37
  %151 = load ptr, ptr %149, align 8, !tbaa !40
  tail call void %151(ptr noundef nonnull %0) #2
  br label %162

152:                                              ; preds = %138
  %153 = getelementptr inbounds i8, ptr %1, i64 24
  %154 = load i32, ptr %153, align 8, !tbaa !32
  %.not269 = icmp uge i32 %154, %105
  %155 = icmp eq i32 %140, 0
  %or.cond291 = or i1 %155, %.not269
  %156 = sub i32 %105, %140
  %157 = icmp ugt i32 %154, %156
  %or.cond293 = or i1 %157, %or.cond291
  br i1 %or.cond293, label %158, label %162

158:                                              ; preds = %152
  %159 = load ptr, ptr %0, align 8, !tbaa !36
  %160 = getelementptr inbounds i8, ptr %159, i64 40
  store i32 5, ptr %160, align 8, !tbaa !37
  %161 = load ptr, ptr %159, align 8, !tbaa !40
  tail call void %161(ptr noundef nonnull %0) #2
  br label %162

162:                                              ; preds = %152, %143, %148, %158, %133
  %163 = getelementptr inbounds i8, ptr %1, i64 20
  %164 = load i32, ptr %163, align 4, !tbaa !42
  %165 = icmp eq i32 %164, 0
  %166 = getelementptr inbounds i8, ptr %1, i64 60
  %167 = load i32, ptr %166, align 4, !tbaa !26
  br i1 %165, label %168, label %180

168:                                              ; preds = %162
  %169 = getelementptr inbounds i8, ptr %1, i64 32
  %170 = load i32, ptr %169, align 8, !tbaa !34
  %.not276 = icmp ult i32 %170, %167
  br i1 %.not276, label %175, label %171

171:                                              ; preds = %168
  %172 = load ptr, ptr %0, align 8, !tbaa !36
  %173 = getelementptr inbounds i8, ptr %172, i64 40
  store i32 5, ptr %173, align 8, !tbaa !37
  %174 = load ptr, ptr %172, align 8, !tbaa !40
  tail call void %174(ptr noundef nonnull %0) #2
  %.pre324 = load i32, ptr %166, align 4, !tbaa !26
  %.pre325 = load i32, ptr %169, align 8, !tbaa !34
  br label %175

175:                                              ; preds = %171, %168
  %176 = phi i32 [ %.pre325, %171 ], [ %170, %168 ]
  %177 = phi i32 [ %.pre324, %171 ], [ %167, %168 ]
  %178 = sub i32 %177, %176
  %179 = getelementptr inbounds i8, ptr %1, i64 16
  store i32 %178, ptr %179, align 8, !tbaa !43
  br label %205

180:                                              ; preds = %162
  %181 = getelementptr inbounds i8, ptr %1, i64 16
  %182 = load i32, ptr %181, align 8, !tbaa !43
  %183 = icmp ugt i32 %182, %167
  br i1 %183, label %184, label %195

184:                                              ; preds = %180
  %185 = load i32, ptr %1, align 8, !tbaa !22
  %.not274 = icmp eq i32 %185, 0
  br i1 %.not274, label %186, label %191

186:                                              ; preds = %184
  %187 = getelementptr inbounds i8, ptr %1, i64 32
  %188 = load i32, ptr %187, align 8, !tbaa !34
  %.not275 = icmp uge i32 %188, %182
  %189 = sub i32 %182, %167
  %190 = icmp ugt i32 %188, %189
  %or.cond295 = or i1 %.not275, %190
  br i1 %or.cond295, label %191, label %205

191:                                              ; preds = %186, %184
  %192 = load ptr, ptr %0, align 8, !tbaa !36
  %193 = getelementptr inbounds i8, ptr %192, i64 40
  store i32 5, ptr %193, align 8, !tbaa !37
  %194 = load ptr, ptr %192, align 8, !tbaa !40
  tail call void %194(ptr noundef nonnull %0) #2
  br label %205

195:                                              ; preds = %180
  %196 = getelementptr inbounds i8, ptr %1, i64 32
  %197 = load i32, ptr %196, align 8, !tbaa !34
  %.not273 = icmp uge i32 %197, %167
  %198 = icmp eq i32 %182, 0
  %or.cond296 = or i1 %198, %.not273
  %199 = sub i32 %167, %182
  %200 = icmp ugt i32 %197, %199
  %or.cond298 = or i1 %200, %or.cond296
  br i1 %or.cond298, label %201, label %205

201:                                              ; preds = %195
  %202 = load ptr, ptr %0, align 8, !tbaa !36
  %203 = getelementptr inbounds i8, ptr %202, i64 40
  store i32 5, ptr %203, align 8, !tbaa !37
  %204 = load ptr, ptr %202, align 8, !tbaa !40
  tail call void %204(ptr noundef nonnull %0) #2
  br label %205

205:                                              ; preds = %195, %186, %191, %201, %175
  %206 = load i32, ptr %110, align 4, !tbaa !31
  %.not277 = icmp eq i32 %206, 2
  br i1 %.not277, label %210, label %207

207:                                              ; preds = %205
  %208 = getelementptr inbounds i8, ptr %1, i64 24
  %209 = load i32, ptr %208, align 8, !tbaa !32
  br label %224

210:                                              ; preds = %205
  %211 = getelementptr inbounds i8, ptr %1, i64 8
  %212 = load i32, ptr %211, align 8, !tbaa !41
  %213 = getelementptr inbounds i8, ptr %1, i64 56
  %214 = load i32, ptr %213, align 8, !tbaa !25
  %215 = icmp ugt i32 %212, %214
  %216 = getelementptr inbounds i8, ptr %1, i64 24
  %217 = load i32, ptr %216, align 8, !tbaa !32
  br i1 %215, label %218, label %221

218:                                              ; preds = %210
  %219 = add i32 %214, %217
  %220 = sub i32 %212, %219
  br label %224

221:                                              ; preds = %210
  %222 = add i32 %212, %217
  %223 = sub i32 %214, %222
  br label %224

224:                                              ; preds = %218, %221, %207
  %.0241 = phi i32 [ %209, %207 ], [ %220, %218 ], [ %223, %221 ]
  %225 = load i32, ptr %116, align 4, !tbaa !33
  %.not278 = icmp eq i32 %225, 2
  br i1 %.not278, label %229, label %226

226:                                              ; preds = %224
  %227 = getelementptr inbounds i8, ptr %1, i64 32
  %228 = load i32, ptr %227, align 8, !tbaa !34
  br label %243

229:                                              ; preds = %224
  %230 = getelementptr inbounds i8, ptr %1, i64 16
  %231 = load i32, ptr %230, align 8, !tbaa !43
  %232 = getelementptr inbounds i8, ptr %1, i64 60
  %233 = load i32, ptr %232, align 4, !tbaa !26
  %234 = icmp ugt i32 %231, %233
  %235 = getelementptr inbounds i8, ptr %1, i64 32
  %236 = load i32, ptr %235, align 8, !tbaa !34
  br i1 %234, label %237, label %240

237:                                              ; preds = %229
  %238 = add i32 %233, %236
  %239 = sub i32 %231, %238
  br label %243

240:                                              ; preds = %229
  %241 = add i32 %231, %236
  %242 = sub i32 %233, %241
  br label %243

243:                                              ; preds = %237, %240, %226
  %.0242 = phi i32 [ %228, %226 ], [ %239, %237 ], [ %242, %240 ]
  %244 = load i32, ptr %1, align 8, !tbaa !22
  %245 = icmp eq i32 %244, 8
  br i1 %245, label %246, label %269

246:                                              ; preds = %243
  %247 = getelementptr inbounds i8, ptr %1, i64 8
  %248 = load i32, ptr %247, align 8, !tbaa !41
  %249 = getelementptr inbounds i8, ptr %1, i64 80
  %250 = load i32, ptr %249, align 8, !tbaa !27
  %251 = urem i32 %.0241, %250
  %252 = add i32 %251, %248
  %253 = zext i32 %252 to i64
  %254 = sext i32 %250 to i64
  %255 = tail call i64 @jdiv_round_up(i64 noundef %253, i64 noundef %254) #2
  %256 = trunc i64 %255 to i32
  %257 = getelementptr inbounds i8, ptr %1, i64 72
  store i32 %256, ptr %257, align 8, !tbaa !44
  %258 = getelementptr inbounds i8, ptr %1, i64 16
  %259 = load i32, ptr %258, align 8, !tbaa !43
  %260 = getelementptr inbounds i8, ptr %1, i64 84
  %261 = load i32, ptr %260, align 4, !tbaa !29
  %262 = urem i32 %.0242, %261
  %263 = add i32 %262, %259
  %264 = zext i32 %263 to i64
  %265 = sext i32 %261 to i64
  %266 = tail call i64 @jdiv_round_up(i64 noundef %264, i64 noundef %265) #2
  %267 = trunc i64 %266 to i32
  %268 = getelementptr inbounds i8, ptr %1, i64 76
  store i32 %267, ptr %268, align 4, !tbaa !45
  %.pre331.pre = load i32, ptr %1, align 8, !tbaa !22
  br label %295

269:                                              ; preds = %243
  %270 = load i32, ptr %122, align 4, !tbaa !35
  %271 = icmp eq i32 %270, 3
  %.phi.trans.insert = getelementptr inbounds i8, ptr %1, i64 8
  %.pre327 = load i32, ptr %.phi.trans.insert, align 8, !tbaa !41
  br i1 %271, label %._crit_edge326, label %272

272:                                              ; preds = %269
  %273 = getelementptr inbounds i8, ptr %1, i64 56
  %274 = load i32, ptr %273, align 8, !tbaa !25
  %275 = icmp ugt i32 %.pre327, %274
  br i1 %275, label %._crit_edge326, label %277

._crit_edge326:                                   ; preds = %269, %272
  %276 = getelementptr inbounds i8, ptr %1, i64 56
  store i32 %.pre327, ptr %276, align 8, !tbaa !25
  br label %282

277:                                              ; preds = %272
  %278 = getelementptr inbounds i8, ptr %1, i64 80
  %279 = load i32, ptr %278, align 8, !tbaa !27
  %280 = urem i32 %.0241, %279
  %281 = add i32 %280, %.pre327
  store i32 %281, ptr %273, align 8, !tbaa !25
  br label %282

282:                                              ; preds = %277, %._crit_edge326
  %283 = load i32, ptr %163, align 4, !tbaa !42
  %284 = icmp eq i32 %283, 3
  %.phi.trans.insert329 = getelementptr inbounds i8, ptr %1, i64 16
  %.pre330 = load i32, ptr %.phi.trans.insert329, align 8, !tbaa !43
  br i1 %284, label %._crit_edge328, label %285

285:                                              ; preds = %282
  %286 = getelementptr inbounds i8, ptr %1, i64 60
  %287 = load i32, ptr %286, align 4, !tbaa !26
  %288 = icmp ugt i32 %.pre330, %287
  br i1 %288, label %._crit_edge328, label %290

._crit_edge328:                                   ; preds = %282, %285
  %289 = getelementptr inbounds i8, ptr %1, i64 60
  store i32 %.pre330, ptr %289, align 4, !tbaa !26
  br label %295

290:                                              ; preds = %285
  %291 = getelementptr inbounds i8, ptr %1, i64 84
  %292 = load i32, ptr %291, align 4, !tbaa !29
  %293 = urem i32 %.0242, %292
  %294 = add i32 %293, %.pre330
  store i32 %294, ptr %286, align 4, !tbaa !26
  br label %295

295:                                              ; preds = %._crit_edge328, %290, %246
  %.pre331 = phi i32 [ %244, %._crit_edge328 ], [ %244, %290 ], [ %.pre331.pre, %246 ]
  %296 = getelementptr inbounds i8, ptr %1, i64 80
  %297 = load i32, ptr %296, align 8, !tbaa !27
  %298 = udiv i32 %.0241, %297
  %299 = getelementptr inbounds i8, ptr %1, i64 64
  store i32 %298, ptr %299, align 8, !tbaa !46
  %300 = getelementptr inbounds i8, ptr %1, i64 84
  %301 = load i32, ptr %300, align 4, !tbaa !29
  %302 = udiv i32 %.0242, %301
  %303 = getelementptr inbounds i8, ptr %1, i64 68
  store i32 %302, ptr %303, align 4, !tbaa !47
  %304 = icmp ugt i32 %297, %.0241
  br label %308

305:                                              ; preds = %104
  %306 = getelementptr inbounds i8, ptr %1, i64 64
  store i32 0, ptr %306, align 8, !tbaa !46
  %307 = getelementptr inbounds i8, ptr %1, i64 68
  store i32 0, ptr %307, align 4, !tbaa !47
  br label %308

308:                                              ; preds = %305, %295
  %.not286 = phi i1 [ true, %305 ], [ %304, %295 ]
  %309 = phi i32 [ 0, %305 ], [ %302, %295 ]
  %310 = phi i32 [ %48, %305 ], [ %.pre331, %295 ]
  switch i32 %310, label %.sink.split [
    i32 0, label %311
    i32 1, label %324
    i32 2, label %330
    i32 3, label %.thread
    i32 4, label %336
    i32 5, label %344
    i32 6, label %350
    i32 7, label %358
  ]

311:                                              ; preds = %308
  %.not287 = icmp eq i32 %309, 0
  %or.cond339 = select i1 %.not286, i1 %.not287, i1 false
  br i1 %or.cond339, label %312, label %.thread

312:                                              ; preds = %311
  %313 = getelementptr inbounds i8, ptr %1, i64 56
  %314 = load i32, ptr %313, align 8, !tbaa !25
  %315 = getelementptr inbounds i8, ptr %0, i64 116
  %316 = load i32, ptr %315, align 4, !tbaa !18
  %317 = icmp ugt i32 %314, %316
  br i1 %317, label %.thread, label %318

318:                                              ; preds = %312
  %319 = getelementptr inbounds i8, ptr %1, i64 60
  %320 = load i32, ptr %319, align 4, !tbaa !26
  %321 = getelementptr inbounds i8, ptr %0, i64 120
  %322 = load i32, ptr %321, align 8, !tbaa !19
  %323 = icmp ugt i32 %320, %322
  br i1 %323, label %.thread, label %.sink.split

324:                                              ; preds = %308
  %325 = getelementptr inbounds i8, ptr %1, i64 5
  %326 = load i8, ptr %325, align 1, !tbaa !48
  %.not284 = icmp eq i8 %326, 0
  br i1 %.not284, label %364, label %327

327:                                              ; preds = %324
  %328 = getelementptr inbounds i8, ptr %0, i64 116
  %329 = load i32, ptr %328, align 4, !tbaa !18
  tail call void @trim_right_edge(ptr noundef nonnull %1, i32 noundef %329)
  %.phi.trans.insert332 = getelementptr inbounds i8, ptr %1, i64 68
  %.pre333 = load i32, ptr %.phi.trans.insert332, align 4, !tbaa !47
  br label %364

330:                                              ; preds = %308
  %331 = getelementptr inbounds i8, ptr %1, i64 5
  %332 = load i8, ptr %331, align 1, !tbaa !48
  %.not283 = icmp eq i8 %332, 0
  br i1 %.not283, label %.thread, label %333

333:                                              ; preds = %330
  %334 = getelementptr inbounds i8, ptr %0, i64 120
  %335 = load i32, ptr %334, align 8, !tbaa !19
  tail call void @trim_bottom_edge(ptr noundef nonnull %1, i32 noundef %335)
  br label %.thread

336:                                              ; preds = %308
  %337 = getelementptr inbounds i8, ptr %1, i64 5
  %338 = load i8, ptr %337, align 1, !tbaa !48
  %.not282 = icmp eq i8 %338, 0
  br i1 %.not282, label %.thread, label %339

339:                                              ; preds = %336
  %340 = getelementptr inbounds i8, ptr %0, i64 120
  %341 = load i32, ptr %340, align 8, !tbaa !19
  tail call void @trim_right_edge(ptr noundef nonnull %1, i32 noundef %341)
  %342 = getelementptr inbounds i8, ptr %0, i64 116
  %343 = load i32, ptr %342, align 4, !tbaa !18
  tail call void @trim_bottom_edge(ptr noundef nonnull %1, i32 noundef %343)
  br label %.thread

344:                                              ; preds = %308
  %345 = getelementptr inbounds i8, ptr %1, i64 5
  %346 = load i8, ptr %345, align 1, !tbaa !48
  %.not281 = icmp eq i8 %346, 0
  br i1 %.not281, label %.thread, label %347

347:                                              ; preds = %344
  %348 = getelementptr inbounds i8, ptr %0, i64 120
  %349 = load i32, ptr %348, align 8, !tbaa !19
  tail call void @trim_right_edge(ptr noundef nonnull %1, i32 noundef %349)
  br label %.thread

350:                                              ; preds = %308
  %351 = getelementptr inbounds i8, ptr %1, i64 5
  %352 = load i8, ptr %351, align 1, !tbaa !48
  %.not280 = icmp eq i8 %352, 0
  br i1 %.not280, label %.thread, label %353

353:                                              ; preds = %350
  %354 = getelementptr inbounds i8, ptr %0, i64 116
  %355 = load i32, ptr %354, align 4, !tbaa !18
  tail call void @trim_right_edge(ptr noundef nonnull %1, i32 noundef %355)
  %356 = getelementptr inbounds i8, ptr %0, i64 120
  %357 = load i32, ptr %356, align 8, !tbaa !19
  tail call void @trim_bottom_edge(ptr noundef nonnull %1, i32 noundef %357)
  br label %.thread

358:                                              ; preds = %308
  %359 = getelementptr inbounds i8, ptr %1, i64 5
  %360 = load i8, ptr %359, align 1, !tbaa !48
  %.not279 = icmp eq i8 %360, 0
  br i1 %.not279, label %.thread, label %361

361:                                              ; preds = %358
  %362 = getelementptr inbounds i8, ptr %0, i64 116
  %363 = load i32, ptr %362, align 4, !tbaa !18
  tail call void @trim_bottom_edge(ptr noundef nonnull %1, i32 noundef %363)
  br label %.thread

364:                                              ; preds = %324, %327
  %365 = phi i32 [ %309, %324 ], [ %.pre333, %327 ]
  %.not285 = icmp eq i32 %365, 0
  br i1 %.not285, label %.sink.split, label %.thread

.thread:                                          ; preds = %308, %311, %312, %318, %358, %361, %350, %353, %344, %347, %336, %339, %330, %333, %364
  %.not289301 = phi i1 [ true, %364 ], [ false, %358 ], [ false, %361 ], [ true, %350 ], [ true, %353 ], [ false, %344 ], [ false, %347 ], [ false, %336 ], [ false, %339 ], [ true, %330 ], [ true, %333 ], [ true, %318 ], [ true, %312 ], [ true, %311 ], [ false, %308 ]
  %366 = getelementptr inbounds i8, ptr %0, i64 8
  %367 = load ptr, ptr %366, align 8, !tbaa !49
  %368 = load ptr, ptr %367, align 8, !tbaa !50
  %369 = getelementptr inbounds i8, ptr %1, i64 40
  %370 = load i32, ptr %369, align 8, !tbaa !16
  %371 = sext i32 %370 to i64
  %372 = shl nsw i64 %371, 3
  %373 = tail call ptr %368(ptr noundef nonnull %0, i32 noundef 1, i64 noundef %372) #2
  %374 = getelementptr inbounds i8, ptr %1, i64 56
  %375 = load i32, ptr %374, align 8, !tbaa !25
  %376 = zext i32 %375 to i64
  %377 = getelementptr inbounds i8, ptr %1, i64 80
  %378 = load i32, ptr %377, align 8, !tbaa !27
  %379 = sext i32 %378 to i64
  %380 = tail call i64 @jdiv_round_up(i64 noundef %376, i64 noundef %379) #2
  %381 = trunc i64 %380 to i32
  %382 = getelementptr inbounds i8, ptr %1, i64 60
  %383 = load i32, ptr %382, align 4, !tbaa !26
  %384 = zext i32 %383 to i64
  %385 = getelementptr inbounds i8, ptr %1, i64 84
  %386 = load i32, ptr %385, align 4, !tbaa !29
  %387 = sext i32 %386 to i64
  %388 = tail call i64 @jdiv_round_up(i64 noundef %384, i64 noundef %387) #2
  %389 = trunc i64 %388 to i32
  %390 = load i32, ptr %369, align 8, !tbaa !16
  %391 = icmp sgt i32 %390, 0
  br i1 %391, label %.lr.ph, label %.sink.split

.lr.ph:                                           ; preds = %.thread
  %392 = getelementptr inbounds i8, ptr %0, i64 288
  br i1 %.not289301, label %.lr.ph.split.us, label %.lr.ph.split

.lr.ph.split.us:                                  ; preds = %.lr.ph, %402
  %indvars.iv320 = phi i64 [ %indvars.iv.next321, %402 ], [ 0, %.lr.ph ]
  %393 = phi i32 [ %410, %402 ], [ %390, %.lr.ph ]
  %394 = icmp eq i32 %393, 1
  br i1 %394, label %402, label %395

395:                                              ; preds = %.lr.ph.split.us
  %396 = load ptr, ptr %392, align 8, !tbaa !52
  %397 = getelementptr inbounds %struct.jpeg_component_info, ptr %396, i64 %indvars.iv320
  %398 = getelementptr inbounds i8, ptr %397, i64 8
  %399 = load i32, ptr %398, align 8, !tbaa !53
  %400 = getelementptr inbounds i8, ptr %397, i64 12
  %401 = load i32, ptr %400, align 4, !tbaa !55
  br label %402

402:                                              ; preds = %395, %.lr.ph.split.us
  %.0236.us = phi i32 [ %399, %395 ], [ 1, %.lr.ph.split.us ]
  %.0.us = phi i32 [ %401, %395 ], [ 1, %.lr.ph.split.us ]
  %403 = mul i32 %.0236.us, %381
  %404 = mul i32 %.0.us, %389
  %405 = load ptr, ptr %366, align 8, !tbaa !49
  %406 = getelementptr inbounds i8, ptr %405, i64 40
  %407 = load ptr, ptr %406, align 8, !tbaa !56
  %408 = tail call ptr %407(ptr noundef nonnull %0, i32 noundef 1, i8 noundef zeroext 0, i32 noundef %403, i32 noundef %404, i32 noundef %.0.us) #2
  %409 = getelementptr inbounds ptr, ptr %373, i64 %indvars.iv320
  store ptr %408, ptr %409, align 8, !tbaa !57
  %indvars.iv.next321 = add nuw nsw i64 %indvars.iv320, 1
  %410 = load i32, ptr %369, align 8, !tbaa !16
  %411 = sext i32 %410 to i64
  %412 = icmp slt i64 %indvars.iv.next321, %411
  br i1 %412, label %.lr.ph.split.us, label %.sink.split, !llvm.loop !58

.lr.ph.split:                                     ; preds = %.lr.ph, %422
  %indvars.iv = phi i64 [ %indvars.iv.next, %422 ], [ 0, %.lr.ph ]
  %413 = phi i32 [ %430, %422 ], [ %390, %.lr.ph ]
  %414 = icmp eq i32 %413, 1
  br i1 %414, label %422, label %415

415:                                              ; preds = %.lr.ph.split
  %416 = load ptr, ptr %392, align 8, !tbaa !52
  %417 = getelementptr inbounds %struct.jpeg_component_info, ptr %416, i64 %indvars.iv
  %418 = getelementptr inbounds i8, ptr %417, i64 12
  %419 = load i32, ptr %418, align 4, !tbaa !55
  %420 = getelementptr inbounds i8, ptr %417, i64 8
  %421 = load i32, ptr %420, align 8, !tbaa !53
  br label %422

422:                                              ; preds = %.lr.ph.split, %415
  %.0236 = phi i32 [ %419, %415 ], [ 1, %.lr.ph.split ]
  %.0 = phi i32 [ %421, %415 ], [ 1, %.lr.ph.split ]
  %423 = mul i32 %.0236, %381
  %424 = mul i32 %.0, %389
  %425 = load ptr, ptr %366, align 8, !tbaa !49
  %426 = getelementptr inbounds i8, ptr %425, i64 40
  %427 = load ptr, ptr %426, align 8, !tbaa !56
  %428 = tail call ptr %427(ptr noundef nonnull %0, i32 noundef 1, i8 noundef zeroext 0, i32 noundef %423, i32 noundef %424, i32 noundef %.0) #2
  %429 = getelementptr inbounds ptr, ptr %373, i64 %indvars.iv
  store ptr %428, ptr %429, align 8, !tbaa !57
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %430 = load i32, ptr %369, align 8, !tbaa !16
  %431 = sext i32 %430 to i64
  %432 = icmp slt i64 %indvars.iv.next, %431
  br i1 %432, label %.lr.ph.split, label %.sink.split, !llvm.loop !58

.sink.split:                                      ; preds = %422, %402, %364, %308, %318, %.thread
  %.sink340 = phi ptr [ %373, %.thread ], [ null, %318 ], [ null, %308 ], [ null, %364 ], [ %373, %402 ], [ %373, %422 ]
  %433 = getelementptr inbounds i8, ptr %1, i64 48
  store ptr %.sink340, ptr %433, align 8, !tbaa !60
  br label %434

434:                                              ; preds = %.sink.split, %34, %27
  %.0238 = phi i8 [ 0, %27 ], [ 0, %34 ], [ 1, %.sink.split ]
  ret i8 %.0238
}

declare void @jpeg_core_output_dimensions(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare dso_local zeroext i8 @jtransform_perfect_transform(i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

declare i64 @jdiv_round_up(i64 noundef, i64 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden void @trim_right_edge(ptr noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden void @trim_bottom_edge(ptr noundef, i32 noundef) local_unnamed_addr #0

attributes #0 = { 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 #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 }

!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, !8, i64 6}
!6 = !{!"", !7, i64 0, !8, i64 4, !8, i64 5, !8, i64 6, !8, i64 7, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !10, i64 48, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !7, i64 80, !7, i64 84}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!12, !7, i64 60}
!12 = !{!"jpeg_decompress_struct", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !8, i64 32, !7, i64 36, !10, i64 40, !7, i64 48, !7, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !13, i64 80, !8, i64 88, !8, i64 89, !7, i64 92, !8, i64 96, !8, i64 97, !8, i64 98, !7, i64 100, !8, i64 104, !7, i64 108, !8, i64 112, !8, i64 113, !8, i64 114, !7, i64 116, !7, i64 120, !7, i64 124, !7, i64 128, !7, i64 132, !7, i64 136, !10, i64 144, !7, i64 152, !7, i64 156, !7, i64 160, !7, i64 164, !7, i64 168, !10, i64 176, !8, i64 184, !8, i64 216, !8, i64 248, !7, i64 280, !10, i64 288, !8, i64 296, !8, i64 297, !8, i64 298, !8, i64 299, !8, i64 315, !8, i64 331, !7, i64 348, !8, i64 352, !8, i64 353, !8, i64 354, !8, i64 355, !14, i64 356, !14, i64 358, !8, i64 360, !8, i64 361, !7, i64 364, !8, i64 368, !10, i64 376, !7, i64 384, !7, i64 388, !7, i64 392, !7, i64 396, !7, i64 400, !10, i64 408, !7, i64 416, !8, i64 424, !7, i64 456, !7, i64 460, !7, i64 464, !8, i64 468, !7, i64 508, !7, i64 512, !7, i64 516, !7, i64 520, !7, i64 524, !10, i64 528, !7, i64 536, !7, i64 540, !10, i64 544, !10, i64 552, !10, i64 560, !10, i64 568, !10, i64 576, !10, i64 584, !10, i64 592, !10, i64 600, !10, i64 608, !10, i64 616, !10, i64 624}
!13 = !{!"double", !8, i64 0}
!14 = !{!"short", !8, i64 0}
!15 = !{!12, !7, i64 56}
!16 = !{!6, !7, i64 40}
!17 = !{!6, !8, i64 4}
!18 = !{!12, !7, i64 116}
!19 = !{!12, !7, i64 120}
!20 = !{!12, !7, i64 392}
!21 = !{!12, !7, i64 396}
!22 = !{!6, !7, i64 0}
!23 = !{!12, !7, i64 384}
!24 = !{!12, !7, i64 388}
!25 = !{!6, !7, i64 56}
!26 = !{!6, !7, i64 60}
!27 = !{!6, !7, i64 80}
!28 = !{!7, !7, i64 0}
!29 = !{!6, !7, i64 84}
!30 = !{!6, !8, i64 7}
!31 = !{!6, !7, i64 28}
!32 = !{!6, !7, i64 24}
!33 = !{!6, !7, i64 36}
!34 = !{!6, !7, i64 32}
!35 = !{!6, !7, i64 12}
!36 = !{!12, !10, i64 0}
!37 = !{!38, !7, i64 40}
!38 = !{!"jpeg_error_mgr", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !7, i64 40, !8, i64 44, !7, i64 124, !39, i64 128, !10, i64 136, !7, i64 144, !10, i64 152, !7, i64 160, !7, i64 164}
!39 = !{!"long", !8, i64 0}
!40 = !{!38, !10, i64 0}
!41 = !{!6, !7, i64 8}
!42 = !{!6, !7, i64 20}
!43 = !{!6, !7, i64 16}
!44 = !{!6, !7, i64 72}
!45 = !{!6, !7, i64 76}
!46 = !{!6, !7, i64 64}
!47 = !{!6, !7, i64 68}
!48 = !{!6, !8, i64 5}
!49 = !{!12, !10, i64 8}
!50 = !{!51, !10, i64 0}
!51 = !{!"jpeg_memory_mgr", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !39, i64 88, !39, i64 96}
!52 = !{!12, !10, i64 288}
!53 = !{!54, !7, i64 8}
!54 = !{!"", !7, i64 0, !7, i64 4, !7, i64 8, !7, i64 12, !7, i64 16, !7, i64 20, !7, i64 24, !7, i64 28, !7, i64 32, !7, i64 36, !7, i64 40, !7, i64 44, !7, i64 48, !8, i64 52, !7, i64 56, !7, i64 60, !7, i64 64, !7, i64 68, !7, i64 72, !7, i64 76, !10, i64 80, !10, i64 88}
!55 = !{!54, !7, i64 12}
!56 = !{!51, !10, i64 40}
!57 = !{!10, !10, i64 0}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = !{!6, !10, i64 48}


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