; LLVM IR from modlfo/AudioEngine :: AudioEngine/JuceLibraryCode/modules/juce_graphics/image_formats/pnglib (chunk)

; 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.png_struct_def = type { [1 x %struct.__jmp_buf_tag], ptr, ptr, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, i32, i32, i32, i32, %struct.z_stream_s, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, i64, i32, i32, ptr, i16, i32, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i16, i8, i32, %struct.png_color_16_struct, %struct.png_color_16_struct, ptr, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, %struct.png_color_8_struct, %struct.png_color_8_struct, ptr, %struct.png_color_16_struct, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i64, i64, i64, i64, i32, i32, ptr, ptr, i8, i8, ptr, ptr, ptr, ptr, ptr, i8, [29 x i8], i32, ptr, ptr, i32, i32, ptr, i8, i8, i16, i16, i32, i8, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i32, i32, i32, i64, %struct.png_unknown_chunk_t, i64, ptr, i64, i32, i32, ptr, [4 x ptr], %struct.png_colorspace }
%struct.__jmp_buf_tag = type { [8 x i64], i32, %struct.__sigset_t }
%struct.__sigset_t = type { [16 x i64] }
%struct.z_stream_s = type { ptr, i32, i64, ptr, i32, i64, ptr, ptr, ptr, ptr, ptr, i32, i64, i64 }
%struct.png_color_8_struct = type { i8, i8, i8, i8, i8 }
%struct.png_color_16_struct = type { i8, i16, i16, i16, i16 }
%struct.png_unknown_chunk_t = type { [5 x i8], ptr, i64, i8 }
%struct.png_colorspace = type { i32, %struct.png_xy, %struct.png_XYZ, i16, i16 }
%struct.png_xy = type { i32, i32, i32, i32, i32, i32, i32, i32 }
%struct.png_XYZ = type { i32, i32, i32, i32, i32, i32, i32, i32, i32 }

@.str.4 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [20 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @png_push_save_buffer(ptr noalias noundef) #0

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

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

; Function Attrs: noreturn
declare void @png_error(ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
define dso_local void @png_push_read_chunk(ptr noalias noundef %0, ptr noalias noundef %1) #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca [4 x i8], align 1
  %8 = alloca [4 x i8], align 1
  %9 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #4
  %10 = load ptr, ptr %3, align 8, !tbaa !5
  %11 = getelementptr inbounds %struct.png_struct_def, ptr %10, i32 0, i32 15
  %12 = load i32, ptr %11, align 4, !tbaa !9
  %13 = and i32 %12, 256
  %14 = icmp ne i32 %13, 0
  br i1 %14, label %69, label %15

15:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  %16 = load ptr, ptr %3, align 8, !tbaa !5
  %17 = getelementptr inbounds %struct.png_struct_def, ptr %16, i32 0, i32 105
  %18 = load i64, ptr %17, align 8, !tbaa !21
  %19 = icmp ult i64 %18, 8
  br i1 %19, label %20, label %22

20:                                               ; preds = %15
  %21 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %21)
  store i32 1, ptr %9, align 4
  br label %66

22:                                               ; preds = %15
  %23 = load ptr, ptr %3, align 8, !tbaa !5
  %24 = getelementptr inbounds [4 x i8], ptr %7, i64 0, i64 0
  call void @png_push_fill_buffer(ptr noundef %23, ptr noundef %24, i64 noundef 4)
  %25 = load ptr, ptr %3, align 8, !tbaa !5
  %26 = getelementptr inbounds [4 x i8], ptr %7, i64 0, i64 0
  %27 = call i32 @png_get_uint_31(ptr noundef %25, ptr noundef %26)
  %28 = load ptr, ptr %3, align 8, !tbaa !5
  %29 = getelementptr inbounds %struct.png_struct_def, ptr %28, i32 0, i32 101
  store i32 %27, ptr %29, align 8, !tbaa !22
  %30 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_reset_crc(ptr noundef %30)
  %31 = load ptr, ptr %3, align 8, !tbaa !5
  %32 = getelementptr inbounds [4 x i8], ptr %8, i64 0, i64 0
  call void @png_crc_read(ptr noundef %31, ptr noundef %32, i32 noundef 4)
  %33 = getelementptr inbounds [4 x i8], ptr %8, i64 0, i64 0
  %34 = load i8, ptr %33, align 1, !tbaa !23
  %35 = zext i8 %34 to i32
  %36 = and i32 255, %35
  %37 = shl i32 %36, 24
  %38 = getelementptr inbounds [4 x i8], ptr %8, i64 0, i64 1
  %39 = load i8, ptr %38, align 1, !tbaa !23
  %40 = zext i8 %39 to i32
  %41 = and i32 255, %40
  %42 = shl i32 %41, 16
  %43 = or i32 %37, %42
  %44 = getelementptr inbounds [4 x i8], ptr %8, i64 0, i64 2
  %45 = load i8, ptr %44, align 1, !tbaa !23
  %46 = zext i8 %45 to i32
  %47 = and i32 255, %46
  %48 = shl i32 %47, 8
  %49 = or i32 %43, %48
  %50 = getelementptr inbounds [4 x i8], ptr %8, i64 0, i64 3
  %51 = load i8, ptr %50, align 1, !tbaa !23
  %52 = zext i8 %51 to i32
  %53 = and i32 255, %52
  %54 = shl i32 %53, 0
  %55 = or i32 %49, %54
  %56 = load ptr, ptr %3, align 8, !tbaa !5
  %57 = getelementptr inbounds %struct.png_struct_def, ptr %56, i32 0, i32 44
  store i32 %55, ptr %57, align 8, !tbaa !24
  %58 = load ptr, ptr %3, align 8, !tbaa !5
  %59 = load ptr, ptr %3, align 8, !tbaa !5
  %60 = getelementptr inbounds %struct.png_struct_def, ptr %59, i32 0, i32 44
  %61 = load i32, ptr %60, align 8, !tbaa !24
  call void @png_check_chunk_name(ptr noundef %58, i32 noundef %61)
  %62 = load ptr, ptr %3, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.png_struct_def, ptr %62, i32 0, i32 15
  %64 = load i32, ptr %63, align 4, !tbaa !9
  %65 = or i32 %64, 256
  store i32 %65, ptr %63, align 4, !tbaa !9
  store i32 0, ptr %9, align 4
  br label %66

66:                                               ; preds = %22, %20
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  %67 = load i32, ptr %9, align 4
  switch i32 %67, label %704 [
    i32 0, label %68
  ]

68:                                               ; preds = %66
  br label %69

69:                                               ; preds = %68, %2
  %70 = load ptr, ptr %3, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.png_struct_def, ptr %70, i32 0, i32 44
  %72 = load i32, ptr %71, align 8, !tbaa !24
  store i32 %72, ptr %5, align 4, !tbaa !25
  %73 = load i32, ptr %5, align 4, !tbaa !25
  %74 = icmp eq i32 %73, 1229209940
  br i1 %74, label %75, label %135

75:                                               ; preds = %69
  %76 = load ptr, ptr %3, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.png_struct_def, ptr %76, i32 0, i32 15
  %78 = load i32, ptr %77, align 4, !tbaa !9
  %79 = and i32 %78, 8
  %80 = icmp ne i32 %79, 0
  br i1 %80, label %81, label %86

81:                                               ; preds = %75
  %82 = load ptr, ptr %3, align 8, !tbaa !5
  %83 = getelementptr inbounds %struct.png_struct_def, ptr %82, i32 0, i32 15
  %84 = load i32, ptr %83, align 4, !tbaa !9
  %85 = or i32 %84, 8192
  store i32 %85, ptr %83, align 4, !tbaa !9
  br label %86

86:                                               ; preds = %81, %75
  %87 = load ptr, ptr %3, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.png_struct_def, ptr %87, i32 0, i32 15
  %89 = load i32, ptr %88, align 4, !tbaa !9
  %90 = and i32 %89, 1
  %91 = icmp ne i32 %90, 0
  br i1 %91, label %94, label %92

92:                                               ; preds = %86
  %93 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_error(ptr noundef %93, ptr noundef @.str.4) #5
  unreachable

94:                                               ; preds = %86
  %95 = load ptr, ptr %3, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.png_struct_def, ptr %95, i32 0, i32 63
  %97 = load i8, ptr %96, align 1, !tbaa !26
  %98 = zext i8 %97 to i32
  %99 = icmp eq i32 %98, 3
  br i1 %99, label %100, label %108

100:                                              ; preds = %94
  %101 = load ptr, ptr %3, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.png_struct_def, ptr %101, i32 0, i32 15
  %103 = load i32, ptr %102, align 4, !tbaa !9
  %104 = and i32 %103, 2
  %105 = icmp ne i32 %104, 0
  br i1 %105, label %108, label %106

106:                                              ; preds = %100
  %107 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_error(ptr noundef %107, ptr noundef @.str.5) #5
  unreachable

108:                                              ; preds = %100, %94
  br label %109

109:                                              ; preds = %108
  %110 = load ptr, ptr %3, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.png_struct_def, ptr %110, i32 0, i32 15
  %112 = load i32, ptr %111, align 4, !tbaa !9
  %113 = or i32 %112, 4
  store i32 %113, ptr %111, align 4, !tbaa !9
  %114 = load ptr, ptr %3, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.png_struct_def, ptr %114, i32 0, i32 15
  %116 = load i32, ptr %115, align 4, !tbaa !9
  %117 = and i32 %116, 8192
  %118 = icmp ne i32 %117, 0
  br i1 %118, label %126, label %119

119:                                              ; preds = %109
  %120 = load ptr, ptr %3, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.png_struct_def, ptr %120, i32 0, i32 101
  %122 = load i32, ptr %121, align 8, !tbaa !22
  %123 = icmp eq i32 %122, 0
  br i1 %123, label %124, label %125

124:                                              ; preds = %119
  store i32 1, ptr %9, align 4
  br label %704

125:                                              ; preds = %119
  br label %126

126:                                              ; preds = %125, %109
  %127 = load ptr, ptr %3, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.png_struct_def, ptr %127, i32 0, i32 15
  %129 = load i32, ptr %128, align 4, !tbaa !9
  %130 = and i32 %129, 8
  %131 = icmp ne i32 %130, 0
  br i1 %131, label %132, label %134

132:                                              ; preds = %126
  %133 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_benign_error(ptr noundef %133, ptr noundef @.str.6)
  br label %134

134:                                              ; preds = %132, %126
  br label %135

135:                                              ; preds = %134, %69
  %136 = load i32, ptr %5, align 4, !tbaa !25
  %137 = icmp eq i32 %136, 1229472850
  br i1 %137, label %138, label %163

138:                                              ; preds = %135
  %139 = load ptr, ptr %3, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.png_struct_def, ptr %139, i32 0, i32 101
  %141 = load i32, ptr %140, align 8, !tbaa !22
  %142 = icmp ne i32 %141, 13
  br i1 %142, label %143, label %145

143:                                              ; preds = %138
  %144 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_error(ptr noundef %144, ptr noundef @.str.7) #5
  unreachable

145:                                              ; preds = %138
  %146 = load ptr, ptr %3, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.png_struct_def, ptr %146, i32 0, i32 101
  %148 = load i32, ptr %147, align 8, !tbaa !22
  %149 = add i32 %148, 4
  %150 = zext i32 %149 to i64
  %151 = load ptr, ptr %3, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.png_struct_def, ptr %151, i32 0, i32 105
  %153 = load i64, ptr %152, align 8, !tbaa !21
  %154 = icmp ugt i64 %150, %153
  br i1 %154, label %155, label %157

155:                                              ; preds = %145
  %156 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %156)
  store i32 1, ptr %9, align 4
  br label %704

157:                                              ; preds = %145
  %158 = load ptr, ptr %3, align 8, !tbaa !5
  %159 = load ptr, ptr %4, align 8, !tbaa !5
  %160 = load ptr, ptr %3, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.png_struct_def, ptr %160, i32 0, i32 101
  %162 = load i32, ptr %161, align 8, !tbaa !22
  call void @png_handle_IHDR(ptr noundef %158, ptr noundef %159, i32 noundef %162)
  br label %699

163:                                              ; preds = %135
  %164 = load i32, ptr %5, align 4, !tbaa !25
  %165 = icmp eq i32 %164, 1229278788
  br i1 %165, label %166, label %188

166:                                              ; preds = %163
  %167 = load ptr, ptr %3, align 8, !tbaa !5
  %168 = getelementptr inbounds %struct.png_struct_def, ptr %167, i32 0, i32 101
  %169 = load i32, ptr %168, align 8, !tbaa !22
  %170 = add i32 %169, 4
  %171 = zext i32 %170 to i64
  %172 = load ptr, ptr %3, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.png_struct_def, ptr %172, i32 0, i32 105
  %174 = load i64, ptr %173, align 8, !tbaa !21
  %175 = icmp ugt i64 %171, %174
  br i1 %175, label %176, label %178

176:                                              ; preds = %166
  %177 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %177)
  store i32 1, ptr %9, align 4
  br label %704

178:                                              ; preds = %166
  %179 = load ptr, ptr %3, align 8, !tbaa !5
  %180 = load ptr, ptr %4, align 8, !tbaa !5
  %181 = load ptr, ptr %3, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.png_struct_def, ptr %181, i32 0, i32 101
  %183 = load i32, ptr %182, align 8, !tbaa !22
  call void @png_handle_IEND(ptr noundef %179, ptr noundef %180, i32 noundef %183)
  %184 = load ptr, ptr %3, align 8, !tbaa !5
  %185 = getelementptr inbounds %struct.png_struct_def, ptr %184, i32 0, i32 107
  store i32 6, ptr %185, align 8, !tbaa !27
  %186 = load ptr, ptr %3, align 8, !tbaa !5
  %187 = load ptr, ptr %4, align 8, !tbaa !5
  call void @png_push_have_end(ptr noundef %186, ptr noundef %187)
  br label %698

188:                                              ; preds = %163
  %189 = load ptr, ptr %3, align 8, !tbaa !5
  %190 = load i32, ptr %5, align 4, !tbaa !25
  %191 = call i32 @png_chunk_unknown_handling(ptr noundef %189, i32 noundef %190)
  store i32 %191, ptr %6, align 4, !tbaa !25
  %192 = icmp ne i32 %191, 0
  br i1 %192, label %193, label %220

193:                                              ; preds = %188
  %194 = load ptr, ptr %3, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.png_struct_def, ptr %194, i32 0, i32 101
  %196 = load i32, ptr %195, align 8, !tbaa !22
  %197 = add i32 %196, 4
  %198 = zext i32 %197 to i64
  %199 = load ptr, ptr %3, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.png_struct_def, ptr %199, i32 0, i32 105
  %201 = load i64, ptr %200, align 8, !tbaa !21
  %202 = icmp ugt i64 %198, %201
  br i1 %202, label %203, label %205

203:                                              ; preds = %193
  %204 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %204)
  store i32 1, ptr %9, align 4
  br label %704

205:                                              ; preds = %193
  %206 = load ptr, ptr %3, align 8, !tbaa !5
  %207 = load ptr, ptr %4, align 8, !tbaa !5
  %208 = load ptr, ptr %3, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.png_struct_def, ptr %208, i32 0, i32 101
  %210 = load i32, ptr %209, align 8, !tbaa !22
  %211 = load i32, ptr %6, align 4, !tbaa !25
  call void @png_handle_unknown(ptr noundef %206, ptr noundef %207, i32 noundef %210, i32 noundef %211)
  %212 = load i32, ptr %5, align 4, !tbaa !25
  %213 = icmp eq i32 %212, 1347179589
  br i1 %213, label %214, label %219

214:                                              ; preds = %205
  %215 = load ptr, ptr %3, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.png_struct_def, ptr %215, i32 0, i32 15
  %217 = load i32, ptr %216, align 4, !tbaa !9
  %218 = or i32 %217, 2
  store i32 %218, ptr %216, align 4, !tbaa !9
  br label %219

219:                                              ; preds = %214, %205
  br label %697

220:                                              ; preds = %188
  %221 = load i32, ptr %5, align 4, !tbaa !25
  %222 = icmp eq i32 %221, 1347179589
  br i1 %222, label %223, label %241

223:                                              ; preds = %220
  %224 = load ptr, ptr %3, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.png_struct_def, ptr %224, i32 0, i32 101
  %226 = load i32, ptr %225, align 8, !tbaa !22
  %227 = add i32 %226, 4
  %228 = zext i32 %227 to i64
  %229 = load ptr, ptr %3, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.png_struct_def, ptr %229, i32 0, i32 105
  %231 = load i64, ptr %230, align 8, !tbaa !21
  %232 = icmp ugt i64 %228, %231
  br i1 %232, label %233, label %235

233:                                              ; preds = %223
  %234 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %234)
  store i32 1, ptr %9, align 4
  br label %704

235:                                              ; preds = %223
  %236 = load ptr, ptr %3, align 8, !tbaa !5
  %237 = load ptr, ptr %4, align 8, !tbaa !5
  %238 = load ptr, ptr %3, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.png_struct_def, ptr %238, i32 0, i32 101
  %240 = load i32, ptr %239, align 8, !tbaa !22
  call void @png_handle_PLTE(ptr noundef %236, ptr noundef %237, i32 noundef %240)
  br label %696

241:                                              ; preds = %220
  %242 = load i32, ptr %5, align 4, !tbaa !25
  %243 = icmp eq i32 %242, 1229209940
  br i1 %243, label %244, label %295

244:                                              ; preds = %241
  %245 = load ptr, ptr %3, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.png_struct_def, ptr %245, i32 0, i32 101
  %247 = load i32, ptr %246, align 8, !tbaa !22
  %248 = load ptr, ptr %3, align 8, !tbaa !5
  %249 = getelementptr inbounds %struct.png_struct_def, ptr %248, i32 0, i32 52
  store i32 %247, ptr %249, align 8, !tbaa !28
  %250 = load ptr, ptr %3, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.png_struct_def, ptr %250, i32 0, i32 107
  store i32 2, ptr %251, align 8, !tbaa !27
  %252 = load ptr, ptr %3, align 8, !tbaa !5
  %253 = load ptr, ptr %4, align 8, !tbaa !5
  call void @png_push_have_info(ptr noundef %252, ptr noundef %253)
  %254 = load ptr, ptr %3, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.png_struct_def, ptr %254, i32 0, i32 66
  %256 = load i8, ptr %255, align 2, !tbaa !29
  %257 = zext i8 %256 to i32
  %258 = icmp sge i32 %257, 8
  br i1 %258, label %259, label %270

259:                                              ; preds = %244
  %260 = load ptr, ptr %3, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.png_struct_def, ptr %260, i32 0, i32 42
  %262 = load i32, ptr %261, align 8, !tbaa !30
  %263 = zext i32 %262 to i64
  %264 = load ptr, ptr %3, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.png_struct_def, ptr %264, i32 0, i32 66
  %266 = load i8, ptr %265, align 2, !tbaa !29
  %267 = zext i8 %266 to i64
  %268 = lshr i64 %267, 3
  %269 = mul i64 %263, %268
  br label %282

270:                                              ; preds = %244
  %271 = load ptr, ptr %3, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.png_struct_def, ptr %271, i32 0, i32 42
  %273 = load i32, ptr %272, align 8, !tbaa !30
  %274 = zext i32 %273 to i64
  %275 = load ptr, ptr %3, align 8, !tbaa !5
  %276 = getelementptr inbounds %struct.png_struct_def, ptr %275, i32 0, i32 66
  %277 = load i8, ptr %276, align 2, !tbaa !29
  %278 = zext i8 %277 to i64
  %279 = mul i64 %274, %278
  %280 = add i64 %279, 7
  %281 = lshr i64 %280, 3
  br label %282

282:                                              ; preds = %270, %259
  %283 = phi i64 [ %269, %259 ], [ %281, %270 ]
  %284 = trunc i64 %283 to i32
  %285 = add i32 %284, 1
  %286 = load ptr, ptr %3, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.png_struct_def, ptr %286, i32 0, i32 19
  %288 = getelementptr inbounds %struct.z_stream_s, ptr %287, i32 0, i32 4
  store i32 %285, ptr %288, align 8, !tbaa !31
  %289 = load ptr, ptr %3, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.png_struct_def, ptr %289, i32 0, i32 46
  %291 = load ptr, ptr %290, align 8, !tbaa !32
  %292 = load ptr, ptr %3, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.png_struct_def, ptr %292, i32 0, i32 19
  %294 = getelementptr inbounds %struct.z_stream_s, ptr %293, i32 0, i32 3
  store ptr %291, ptr %294, align 8, !tbaa !33
  store i32 1, ptr %9, align 4
  br label %704

295:                                              ; preds = %241
  %296 = load ptr, ptr %3, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.png_struct_def, ptr %296, i32 0, i32 44
  %298 = load i32, ptr %297, align 8, !tbaa !24
  %299 = icmp eq i32 %298, 1732332865
  br i1 %299, label %300, label %318

300:                                              ; preds = %295
  %301 = load ptr, ptr %3, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.png_struct_def, ptr %301, i32 0, i32 101
  %303 = load i32, ptr %302, align 8, !tbaa !22
  %304 = add i32 %303, 4
  %305 = zext i32 %304 to i64
  %306 = load ptr, ptr %3, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.png_struct_def, ptr %306, i32 0, i32 105
  %308 = load i64, ptr %307, align 8, !tbaa !21
  %309 = icmp ugt i64 %305, %308
  br i1 %309, label %310, label %312

310:                                              ; preds = %300
  %311 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %311)
  store i32 1, ptr %9, align 4
  br label %704

312:                                              ; preds = %300
  %313 = load ptr, ptr %3, align 8, !tbaa !5
  %314 = load ptr, ptr %4, align 8, !tbaa !5
  %315 = load ptr, ptr %3, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.png_struct_def, ptr %315, i32 0, i32 101
  %317 = load i32, ptr %316, align 8, !tbaa !22
  call void @png_handle_gAMA(ptr noundef %313, ptr noundef %314, i32 noundef %317)
  br label %694

318:                                              ; preds = %295
  %319 = load ptr, ptr %3, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.png_struct_def, ptr %319, i32 0, i32 44
  %321 = load i32, ptr %320, align 8, !tbaa !24
  %322 = icmp eq i32 %321, 1933723988
  br i1 %322, label %323, label %341

323:                                              ; preds = %318
  %324 = load ptr, ptr %3, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.png_struct_def, ptr %324, i32 0, i32 101
  %326 = load i32, ptr %325, align 8, !tbaa !22
  %327 = add i32 %326, 4
  %328 = zext i32 %327 to i64
  %329 = load ptr, ptr %3, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.png_struct_def, ptr %329, i32 0, i32 105
  %331 = load i64, ptr %330, align 8, !tbaa !21
  %332 = icmp ugt i64 %328, %331
  br i1 %332, label %333, label %335

333:                                              ; preds = %323
  %334 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %334)
  store i32 1, ptr %9, align 4
  br label %704

335:                                              ; preds = %323
  %336 = load ptr, ptr %3, align 8, !tbaa !5
  %337 = load ptr, ptr %4, align 8, !tbaa !5
  %338 = load ptr, ptr %3, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.png_struct_def, ptr %338, i32 0, i32 101
  %340 = load i32, ptr %339, align 8, !tbaa !22
  call void @png_handle_sBIT(ptr noundef %336, ptr noundef %337, i32 noundef %340)
  br label %693

341:                                              ; preds = %318
  %342 = load ptr, ptr %3, align 8, !tbaa !5
  %343 = getelementptr inbounds %struct.png_struct_def, ptr %342, i32 0, i32 44
  %344 = load i32, ptr %343, align 8, !tbaa !24
  %345 = icmp eq i32 %344, 1665684045
  br i1 %345, label %346, label %364

346:                                              ; preds = %341
  %347 = load ptr, ptr %3, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.png_struct_def, ptr %347, i32 0, i32 101
  %349 = load i32, ptr %348, align 8, !tbaa !22
  %350 = add i32 %349, 4
  %351 = zext i32 %350 to i64
  %352 = load ptr, ptr %3, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.png_struct_def, ptr %352, i32 0, i32 105
  %354 = load i64, ptr %353, align 8, !tbaa !21
  %355 = icmp ugt i64 %351, %354
  br i1 %355, label %356, label %358

356:                                              ; preds = %346
  %357 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %357)
  store i32 1, ptr %9, align 4
  br label %704

358:                                              ; preds = %346
  %359 = load ptr, ptr %3, align 8, !tbaa !5
  %360 = load ptr, ptr %4, align 8, !tbaa !5
  %361 = load ptr, ptr %3, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.png_struct_def, ptr %361, i32 0, i32 101
  %363 = load i32, ptr %362, align 8, !tbaa !22
  call void @png_handle_cHRM(ptr noundef %359, ptr noundef %360, i32 noundef %363)
  br label %692

364:                                              ; preds = %341
  %365 = load i32, ptr %5, align 4, !tbaa !25
  %366 = icmp eq i32 %365, 1934772034
  br i1 %366, label %367, label %385

367:                                              ; preds = %364
  %368 = load ptr, ptr %3, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.png_struct_def, ptr %368, i32 0, i32 101
  %370 = load i32, ptr %369, align 8, !tbaa !22
  %371 = add i32 %370, 4
  %372 = zext i32 %371 to i64
  %373 = load ptr, ptr %3, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.png_struct_def, ptr %373, i32 0, i32 105
  %375 = load i64, ptr %374, align 8, !tbaa !21
  %376 = icmp ugt i64 %372, %375
  br i1 %376, label %377, label %379

377:                                              ; preds = %367
  %378 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %378)
  store i32 1, ptr %9, align 4
  br label %704

379:                                              ; preds = %367
  %380 = load ptr, ptr %3, align 8, !tbaa !5
  %381 = load ptr, ptr %4, align 8, !tbaa !5
  %382 = load ptr, ptr %3, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.png_struct_def, ptr %382, i32 0, i32 101
  %384 = load i32, ptr %383, align 8, !tbaa !22
  call void @png_handle_sRGB(ptr noundef %380, ptr noundef %381, i32 noundef %384)
  br label %691

385:                                              ; preds = %364
  %386 = load ptr, ptr %3, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.png_struct_def, ptr %386, i32 0, i32 44
  %388 = load i32, ptr %387, align 8, !tbaa !24
  %389 = icmp eq i32 %388, 1766015824
  br i1 %389, label %390, label %408

390:                                              ; preds = %385
  %391 = load ptr, ptr %3, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.png_struct_def, ptr %391, i32 0, i32 101
  %393 = load i32, ptr %392, align 8, !tbaa !22
  %394 = add i32 %393, 4
  %395 = zext i32 %394 to i64
  %396 = load ptr, ptr %3, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.png_struct_def, ptr %396, i32 0, i32 105
  %398 = load i64, ptr %397, align 8, !tbaa !21
  %399 = icmp ugt i64 %395, %398
  br i1 %399, label %400, label %402

400:                                              ; preds = %390
  %401 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %401)
  store i32 1, ptr %9, align 4
  br label %704

402:                                              ; preds = %390
  %403 = load ptr, ptr %3, align 8, !tbaa !5
  %404 = load ptr, ptr %4, align 8, !tbaa !5
  %405 = load ptr, ptr %3, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.png_struct_def, ptr %405, i32 0, i32 101
  %407 = load i32, ptr %406, align 8, !tbaa !22
  call void @png_handle_iCCP(ptr noundef %403, ptr noundef %404, i32 noundef %407)
  br label %690

408:                                              ; preds = %385
  %409 = load i32, ptr %5, align 4, !tbaa !25
  %410 = icmp eq i32 %409, 1934642260
  br i1 %410, label %411, label %429

411:                                              ; preds = %408
  %412 = load ptr, ptr %3, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.png_struct_def, ptr %412, i32 0, i32 101
  %414 = load i32, ptr %413, align 8, !tbaa !22
  %415 = add i32 %414, 4
  %416 = zext i32 %415 to i64
  %417 = load ptr, ptr %3, align 8, !tbaa !5
  %418 = getelementptr inbounds %struct.png_struct_def, ptr %417, i32 0, i32 105
  %419 = load i64, ptr %418, align 8, !tbaa !21
  %420 = icmp ugt i64 %416, %419
  br i1 %420, label %421, label %423

421:                                              ; preds = %411
  %422 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %422)
  store i32 1, ptr %9, align 4
  br label %704

423:                                              ; preds = %411
  %424 = load ptr, ptr %3, align 8, !tbaa !5
  %425 = load ptr, ptr %4, align 8, !tbaa !5
  %426 = load ptr, ptr %3, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.png_struct_def, ptr %426, i32 0, i32 101
  %428 = load i32, ptr %427, align 8, !tbaa !22
  call void @png_handle_sPLT(ptr noundef %424, ptr noundef %425, i32 noundef %428)
  br label %689

429:                                              ; preds = %408
  %430 = load i32, ptr %5, align 4, !tbaa !25
  %431 = icmp eq i32 %430, 1951551059
  br i1 %431, label %432, label %450

432:                                              ; preds = %429
  %433 = load ptr, ptr %3, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.png_struct_def, ptr %433, i32 0, i32 101
  %435 = load i32, ptr %434, align 8, !tbaa !22
  %436 = add i32 %435, 4
  %437 = zext i32 %436 to i64
  %438 = load ptr, ptr %3, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.png_struct_def, ptr %438, i32 0, i32 105
  %440 = load i64, ptr %439, align 8, !tbaa !21
  %441 = icmp ugt i64 %437, %440
  br i1 %441, label %442, label %444

442:                                              ; preds = %432
  %443 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %443)
  store i32 1, ptr %9, align 4
  br label %704

444:                                              ; preds = %432
  %445 = load ptr, ptr %3, align 8, !tbaa !5
  %446 = load ptr, ptr %4, align 8, !tbaa !5
  %447 = load ptr, ptr %3, align 8, !tbaa !5
  %448 = getelementptr inbounds %struct.png_struct_def, ptr %447, i32 0, i32 101
  %449 = load i32, ptr %448, align 8, !tbaa !22
  call void @png_handle_tRNS(ptr noundef %445, ptr noundef %446, i32 noundef %449)
  br label %688

450:                                              ; preds = %429
  %451 = load i32, ptr %5, align 4, !tbaa !25
  %452 = icmp eq i32 %451, 1649100612
  br i1 %452, label %453, label %471

453:                                              ; preds = %450
  %454 = load ptr, ptr %3, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.png_struct_def, ptr %454, i32 0, i32 101
  %456 = load i32, ptr %455, align 8, !tbaa !22
  %457 = add i32 %456, 4
  %458 = zext i32 %457 to i64
  %459 = load ptr, ptr %3, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct.png_struct_def, ptr %459, i32 0, i32 105
  %461 = load i64, ptr %460, align 8, !tbaa !21
  %462 = icmp ugt i64 %458, %461
  br i1 %462, label %463, label %465

463:                                              ; preds = %453
  %464 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %464)
  store i32 1, ptr %9, align 4
  br label %704

465:                                              ; preds = %453
  %466 = load ptr, ptr %3, align 8, !tbaa !5
  %467 = load ptr, ptr %4, align 8, !tbaa !5
  %468 = load ptr, ptr %3, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.png_struct_def, ptr %468, i32 0, i32 101
  %470 = load i32, ptr %469, align 8, !tbaa !22
  call void @png_handle_bKGD(ptr noundef %466, ptr noundef %467, i32 noundef %470)
  br label %687

471:                                              ; preds = %450
  %472 = load i32, ptr %5, align 4, !tbaa !25
  %473 = icmp eq i32 %472, 1749635924
  br i1 %473, label %474, label %492

474:                                              ; preds = %471
  %475 = load ptr, ptr %3, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.png_struct_def, ptr %475, i32 0, i32 101
  %477 = load i32, ptr %476, align 8, !tbaa !22
  %478 = add i32 %477, 4
  %479 = zext i32 %478 to i64
  %480 = load ptr, ptr %3, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.png_struct_def, ptr %480, i32 0, i32 105
  %482 = load i64, ptr %481, align 8, !tbaa !21
  %483 = icmp ugt i64 %479, %482
  br i1 %483, label %484, label %486

484:                                              ; preds = %474
  %485 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %485)
  store i32 1, ptr %9, align 4
  br label %704

486:                                              ; preds = %474
  %487 = load ptr, ptr %3, align 8, !tbaa !5
  %488 = load ptr, ptr %4, align 8, !tbaa !5
  %489 = load ptr, ptr %3, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.png_struct_def, ptr %489, i32 0, i32 101
  %491 = load i32, ptr %490, align 8, !tbaa !22
  call void @png_handle_hIST(ptr noundef %487, ptr noundef %488, i32 noundef %491)
  br label %686

492:                                              ; preds = %471
  %493 = load i32, ptr %5, align 4, !tbaa !25
  %494 = icmp eq i32 %493, 1883789683
  br i1 %494, label %495, label %513

495:                                              ; preds = %492
  %496 = load ptr, ptr %3, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.png_struct_def, ptr %496, i32 0, i32 101
  %498 = load i32, ptr %497, align 8, !tbaa !22
  %499 = add i32 %498, 4
  %500 = zext i32 %499 to i64
  %501 = load ptr, ptr %3, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.png_struct_def, ptr %501, i32 0, i32 105
  %503 = load i64, ptr %502, align 8, !tbaa !21
  %504 = icmp ugt i64 %500, %503
  br i1 %504, label %505, label %507

505:                                              ; preds = %495
  %506 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %506)
  store i32 1, ptr %9, align 4
  br label %704

507:                                              ; preds = %495
  %508 = load ptr, ptr %3, align 8, !tbaa !5
  %509 = load ptr, ptr %4, align 8, !tbaa !5
  %510 = load ptr, ptr %3, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.png_struct_def, ptr %510, i32 0, i32 101
  %512 = load i32, ptr %511, align 8, !tbaa !22
  call void @png_handle_pHYs(ptr noundef %508, ptr noundef %509, i32 noundef %512)
  br label %685

513:                                              ; preds = %492
  %514 = load i32, ptr %5, align 4, !tbaa !25
  %515 = icmp eq i32 %514, 1866876531
  br i1 %515, label %516, label %534

516:                                              ; preds = %513
  %517 = load ptr, ptr %3, align 8, !tbaa !5
  %518 = getelementptr inbounds %struct.png_struct_def, ptr %517, i32 0, i32 101
  %519 = load i32, ptr %518, align 8, !tbaa !22
  %520 = add i32 %519, 4
  %521 = zext i32 %520 to i64
  %522 = load ptr, ptr %3, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.png_struct_def, ptr %522, i32 0, i32 105
  %524 = load i64, ptr %523, align 8, !tbaa !21
  %525 = icmp ugt i64 %521, %524
  br i1 %525, label %526, label %528

526:                                              ; preds = %516
  %527 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %527)
  store i32 1, ptr %9, align 4
  br label %704

528:                                              ; preds = %516
  %529 = load ptr, ptr %3, align 8, !tbaa !5
  %530 = load ptr, ptr %4, align 8, !tbaa !5
  %531 = load ptr, ptr %3, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.png_struct_def, ptr %531, i32 0, i32 101
  %533 = load i32, ptr %532, align 8, !tbaa !22
  call void @png_handle_oFFs(ptr noundef %529, ptr noundef %530, i32 noundef %533)
  br label %684

534:                                              ; preds = %513
  %535 = load i32, ptr %5, align 4, !tbaa !25
  %536 = icmp eq i32 %535, 1883455820
  br i1 %536, label %537, label %555

537:                                              ; preds = %534
  %538 = load ptr, ptr %3, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.png_struct_def, ptr %538, i32 0, i32 101
  %540 = load i32, ptr %539, align 8, !tbaa !22
  %541 = add i32 %540, 4
  %542 = zext i32 %541 to i64
  %543 = load ptr, ptr %3, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.png_struct_def, ptr %543, i32 0, i32 105
  %545 = load i64, ptr %544, align 8, !tbaa !21
  %546 = icmp ugt i64 %542, %545
  br i1 %546, label %547, label %549

547:                                              ; preds = %537
  %548 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %548)
  store i32 1, ptr %9, align 4
  br label %704

549:                                              ; preds = %537
  %550 = load ptr, ptr %3, align 8, !tbaa !5
  %551 = load ptr, ptr %4, align 8, !tbaa !5
  %552 = load ptr, ptr %3, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.png_struct_def, ptr %552, i32 0, i32 101
  %554 = load i32, ptr %553, align 8, !tbaa !22
  call void @png_handle_pCAL(ptr noundef %550, ptr noundef %551, i32 noundef %554)
  br label %683

555:                                              ; preds = %534
  %556 = load i32, ptr %5, align 4, !tbaa !25
  %557 = icmp eq i32 %556, 1933787468
  br i1 %557, label %558, label %576

558:                                              ; preds = %555
  %559 = load ptr, ptr %3, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.png_struct_def, ptr %559, i32 0, i32 101
  %561 = load i32, ptr %560, align 8, !tbaa !22
  %562 = add i32 %561, 4
  %563 = zext i32 %562 to i64
  %564 = load ptr, ptr %3, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.png_struct_def, ptr %564, i32 0, i32 105
  %566 = load i64, ptr %565, align 8, !tbaa !21
  %567 = icmp ugt i64 %563, %566
  br i1 %567, label %568, label %570

568:                                              ; preds = %558
  %569 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %569)
  store i32 1, ptr %9, align 4
  br label %704

570:                                              ; preds = %558
  %571 = load ptr, ptr %3, align 8, !tbaa !5
  %572 = load ptr, ptr %4, align 8, !tbaa !5
  %573 = load ptr, ptr %3, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.png_struct_def, ptr %573, i32 0, i32 101
  %575 = load i32, ptr %574, align 8, !tbaa !22
  call void @png_handle_sCAL(ptr noundef %571, ptr noundef %572, i32 noundef %575)
  br label %682

576:                                              ; preds = %555
  %577 = load i32, ptr %5, align 4, !tbaa !25
  %578 = icmp eq i32 %577, 1950960965
  br i1 %578, label %579, label %597

579:                                              ; preds = %576
  %580 = load ptr, ptr %3, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.png_struct_def, ptr %580, i32 0, i32 101
  %582 = load i32, ptr %581, align 8, !tbaa !22
  %583 = add i32 %582, 4
  %584 = zext i32 %583 to i64
  %585 = load ptr, ptr %3, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.png_struct_def, ptr %585, i32 0, i32 105
  %587 = load i64, ptr %586, align 8, !tbaa !21
  %588 = icmp ugt i64 %584, %587
  br i1 %588, label %589, label %591

589:                                              ; preds = %579
  %590 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %590)
  store i32 1, ptr %9, align 4
  br label %704

591:                                              ; preds = %579
  %592 = load ptr, ptr %3, align 8, !tbaa !5
  %593 = load ptr, ptr %4, align 8, !tbaa !5
  %594 = load ptr, ptr %3, align 8, !tbaa !5
  %595 = getelementptr inbounds %struct.png_struct_def, ptr %594, i32 0, i32 101
  %596 = load i32, ptr %595, align 8, !tbaa !22
  call void @png_handle_tIME(ptr noundef %592, ptr noundef %593, i32 noundef %596)
  br label %681

597:                                              ; preds = %576
  %598 = load i32, ptr %5, align 4, !tbaa !25
  %599 = icmp eq i32 %598, 1950701684
  br i1 %599, label %600, label %618

600:                                              ; preds = %597
  %601 = load ptr, ptr %3, align 8, !tbaa !5
  %602 = getelementptr inbounds %struct.png_struct_def, ptr %601, i32 0, i32 101
  %603 = load i32, ptr %602, align 8, !tbaa !22
  %604 = add i32 %603, 4
  %605 = zext i32 %604 to i64
  %606 = load ptr, ptr %3, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.png_struct_def, ptr %606, i32 0, i32 105
  %608 = load i64, ptr %607, align 8, !tbaa !21
  %609 = icmp ugt i64 %605, %608
  br i1 %609, label %610, label %612

610:                                              ; preds = %600
  %611 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %611)
  store i32 1, ptr %9, align 4
  br label %704

612:                                              ; preds = %600
  %613 = load ptr, ptr %3, align 8, !tbaa !5
  %614 = load ptr, ptr %4, align 8, !tbaa !5
  %615 = load ptr, ptr %3, align 8, !tbaa !5
  %616 = getelementptr inbounds %struct.png_struct_def, ptr %615, i32 0, i32 101
  %617 = load i32, ptr %616, align 8, !tbaa !22
  call void @png_handle_tEXt(ptr noundef %613, ptr noundef %614, i32 noundef %617)
  br label %680

618:                                              ; preds = %597
  %619 = load i32, ptr %5, align 4, !tbaa !25
  %620 = icmp eq i32 %619, 2052348020
  br i1 %620, label %621, label %639

621:                                              ; preds = %618
  %622 = load ptr, ptr %3, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.png_struct_def, ptr %622, i32 0, i32 101
  %624 = load i32, ptr %623, align 8, !tbaa !22
  %625 = add i32 %624, 4
  %626 = zext i32 %625 to i64
  %627 = load ptr, ptr %3, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.png_struct_def, ptr %627, i32 0, i32 105
  %629 = load i64, ptr %628, align 8, !tbaa !21
  %630 = icmp ugt i64 %626, %629
  br i1 %630, label %631, label %633

631:                                              ; preds = %621
  %632 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %632)
  store i32 1, ptr %9, align 4
  br label %704

633:                                              ; preds = %621
  %634 = load ptr, ptr %3, align 8, !tbaa !5
  %635 = load ptr, ptr %4, align 8, !tbaa !5
  %636 = load ptr, ptr %3, align 8, !tbaa !5
  %637 = getelementptr inbounds %struct.png_struct_def, ptr %636, i32 0, i32 101
  %638 = load i32, ptr %637, align 8, !tbaa !22
  call void @png_handle_zTXt(ptr noundef %634, ptr noundef %635, i32 noundef %638)
  br label %679

639:                                              ; preds = %618
  %640 = load i32, ptr %5, align 4, !tbaa !25
  %641 = icmp eq i32 %640, 1767135348
  br i1 %641, label %642, label %660

642:                                              ; preds = %639
  %643 = load ptr, ptr %3, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.png_struct_def, ptr %643, i32 0, i32 101
  %645 = load i32, ptr %644, align 8, !tbaa !22
  %646 = add i32 %645, 4
  %647 = zext i32 %646 to i64
  %648 = load ptr, ptr %3, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.png_struct_def, ptr %648, i32 0, i32 105
  %650 = load i64, ptr %649, align 8, !tbaa !21
  %651 = icmp ugt i64 %647, %650
  br i1 %651, label %652, label %654

652:                                              ; preds = %642
  %653 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %653)
  store i32 1, ptr %9, align 4
  br label %704

654:                                              ; preds = %642
  %655 = load ptr, ptr %3, align 8, !tbaa !5
  %656 = load ptr, ptr %4, align 8, !tbaa !5
  %657 = load ptr, ptr %3, align 8, !tbaa !5
  %658 = getelementptr inbounds %struct.png_struct_def, ptr %657, i32 0, i32 101
  %659 = load i32, ptr %658, align 8, !tbaa !22
  call void @png_handle_iTXt(ptr noundef %655, ptr noundef %656, i32 noundef %659)
  br label %678

660:                                              ; preds = %639
  %661 = load ptr, ptr %3, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.png_struct_def, ptr %661, i32 0, i32 101
  %663 = load i32, ptr %662, align 8, !tbaa !22
  %664 = add i32 %663, 4
  %665 = zext i32 %664 to i64
  %666 = load ptr, ptr %3, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.png_struct_def, ptr %666, i32 0, i32 105
  %668 = load i64, ptr %667, align 8, !tbaa !21
  %669 = icmp ugt i64 %665, %668
  br i1 %669, label %670, label %672

670:                                              ; preds = %660
  %671 = load ptr, ptr %3, align 8, !tbaa !5
  call void @png_push_save_buffer(ptr noundef %671)
  store i32 1, ptr %9, align 4
  br label %704

672:                                              ; preds = %660
  %673 = load ptr, ptr %3, align 8, !tbaa !5
  %674 = load ptr, ptr %4, align 8, !tbaa !5
  %675 = load ptr, ptr %3, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.png_struct_def, ptr %675, i32 0, i32 101
  %677 = load i32, ptr %676, align 8, !tbaa !22
  call void @png_handle_unknown(ptr noundef %673, ptr noundef %674, i32 noundef %677, i32 noundef 0)
  br label %678

678:                                              ; preds = %672, %654
  br label %679

679:                                              ; preds = %678, %633
  br label %680

680:                                              ; preds = %679, %612
  br label %681

681:                                              ; preds = %680, %591
  br label %682

682:                                              ; preds = %681, %570
  br label %683

683:                                              ; preds = %682, %549
  br label %684

684:                                              ; preds = %683, %528
  br label %685

685:                                              ; preds = %684, %507
  br label %686

686:                                              ; preds = %685, %486
  br label %687

687:                                              ; preds = %686, %465
  br label %688

688:                                              ; preds = %687, %444
  br label %689

689:                                              ; preds = %688, %423
  br label %690

690:                                              ; preds = %689, %402
  br label %691

691:                                              ; preds = %690, %379
  br label %692

692:                                              ; preds = %691, %358
  br label %693

693:                                              ; preds = %692, %335
  br label %694

694:                                              ; preds = %693, %312
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695, %235
  br label %697

697:                                              ; preds = %696, %219
  br label %698

698:                                              ; preds = %697, %178
  br label %699

699:                                              ; preds = %698, %157
  %700 = load ptr, ptr %3, align 8, !tbaa !5
  %701 = getelementptr inbounds %struct.png_struct_def, ptr %700, i32 0, i32 15
  %702 = load i32, ptr %701, align 4, !tbaa !9
  %703 = and i32 %702, -257
  store i32 %703, ptr %701, align 4, !tbaa !9
  store i32 0, ptr %9, align 4
  br label %704

704:                                              ; preds = %699, %670, %652, %631, %610, %589, %568, %547, %526, %505, %484, %463, %442, %421, %400, %377, %356, %333, %310, %282, %233, %203, %176, %155, %124, %66
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #4
  %705 = load i32, ptr %9, align 4
  switch i32 %705, label %707 [
    i32 0, label %706
    i32 1, label %706
  ]

706:                                              ; preds = %704, %704
  ret void

707:                                              ; preds = %704
  unreachable
}

; Function Attrs: nounwind uwtable
declare dso_local void @png_push_fill_buffer(ptr noundef, ptr noundef, i64 noundef) #0

declare i32 @png_get_uint_31(ptr noundef, ptr noundef) #3

declare void @png_reset_crc(ptr noundef) #3

declare void @png_crc_read(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_check_chunk_name(ptr noundef, i32 noundef) #3

declare void @png_benign_error(ptr noundef, ptr noundef) #3

declare void @png_handle_IHDR(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_IEND(ptr noundef, ptr noundef, i32 noundef) #3

; Function Attrs: nounwind uwtable
declare dso_local void @png_push_have_end(ptr noalias noundef, ptr noalias noundef) #0

declare i32 @png_chunk_unknown_handling(ptr noundef, i32 noundef) #3

declare void @png_handle_unknown(ptr noundef, ptr noundef, i32 noundef, i32 noundef) #3

declare void @png_handle_PLTE(ptr noundef, ptr noundef, i32 noundef) #3

; Function Attrs: nounwind uwtable
declare dso_local void @png_push_have_info(ptr noalias noundef, ptr noalias noundef) #0

declare void @png_handle_gAMA(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_sBIT(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_cHRM(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_sRGB(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_iCCP(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_sPLT(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_tRNS(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_bKGD(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_hIST(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_pHYs(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_oFFs(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_pCAL(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_sCAL(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_tIME(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_tEXt(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_zTXt(ptr noundef, ptr noundef, i32 noundef) #3

declare void @png_handle_iTXt(ptr noundef, ptr noundef, i32 noundef) #3

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 = { noreturn "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 = { "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 #4 = { nounwind }
attributes #5 = { noreturn }

!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, !12, i64 300}
!10 = !{!"png_struct_def", !7, i64 0, !6, i64 200, !6, i64 208, !11, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !6, i64 288, !7, i64 296, !7, i64 297, !12, i64 300, !12, i64 304, !12, i64 308, !12, i64 312, !13, i64 320, !6, i64 432, !12, i64 440, !12, i64 444, !12, i64 448, !12, i64 452, !12, i64 456, !12, i64 460, !12, i64 464, !12, i64 468, !12, i64 472, !12, i64 476, !12, i64 480, !12, i64 484, !12, i64 488, !12, i64 492, !12, i64 496, !12, i64 500, !12, i64 504, !12, i64 508, !12, i64 512, !12, i64 516, !11, i64 520, !12, i64 528, !12, i64 532, !12, i64 536, !6, i64 544, !6, i64 552, !6, i64 560, !6, i64 568, !6, i64 576, !6, i64 584, !11, i64 592, !12, i64 600, !12, i64 604, !6, i64 608, !14, i64 616, !12, i64 620, !14, i64 624, !7, i64 626, !7, i64 627, !7, i64 628, !7, i64 629, !7, i64 630, !7, i64 631, !7, i64 632, !7, i64 633, !7, i64 634, !7, i64 635, !7, i64 636, !7, i64 637, !7, i64 638, !7, i64 639, !14, i64 640, !7, i64 642, !12, i64 644, !15, i64 648, !15, i64 658, !6, i64 672, !12, i64 680, !12, i64 684, !12, i64 688, !12, i64 692, !6, i64 696, !6, i64 704, !6, i64 712, !6, i64 720, !6, i64 728, !6, i64 736, !16, i64 744, !16, i64 749, !6, i64 760, !15, i64 768, !6, i64 784, !6, i64 792, !6, i64 800, !6, i64 808, !6, i64 816, !6, i64 824, !6, i64 832, !6, i64 840, !6, i64 848, !12, i64 856, !12, i64 860, !11, i64 864, !11, i64 872, !11, i64 880, !11, i64 888, !12, i64 896, !12, i64 900, !6, i64 904, !6, i64 912, !7, i64 920, !7, i64 921, !6, i64 928, !6, i64 936, !6, i64 944, !6, i64 952, !6, i64 960, !7, i64 968, !7, i64 969, !12, i64 1000, !6, i64 1008, !6, i64 1016, !12, i64 1024, !12, i64 1028, !6, i64 1032, !7, i64 1040, !7, i64 1041, !14, i64 1042, !14, i64 1044, !12, i64 1048, !7, i64 1052, !6, i64 1056, !6, i64 1064, !6, i64 1072, !6, i64 1080, !6, i64 1088, !6, i64 1096, !6, i64 1104, !7, i64 1112, !12, i64 1116, !12, i64 1120, !12, i64 1124, !11, i64 1128, !17, i64 1136, !11, i64 1168, !6, i64 1176, !11, i64 1184, !12, i64 1192, !12, i64 1196, !6, i64 1200, !7, i64 1208, !18, i64 1240}
!11 = !{!"long", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"z_stream_s", !6, i64 0, !12, i64 8, !11, i64 16, !6, i64 24, !12, i64 32, !11, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !12, i64 88, !11, i64 96, !11, i64 104}
!14 = !{!"short", !7, i64 0}
!15 = !{!"png_color_16_struct", !7, i64 0, !14, i64 2, !14, i64 4, !14, i64 6, !14, i64 8}
!16 = !{!"png_color_8_struct", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 4}
!17 = !{!"png_unknown_chunk_t", !7, i64 0, !6, i64 8, !11, i64 16, !7, i64 24}
!18 = !{!"png_colorspace", !12, i64 0, !19, i64 4, !20, i64 36, !14, i64 72, !14, i64 74}
!19 = !{!"png_xy", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28}
!20 = !{!"png_XYZ", !12, i64 0, !12, i64 4, !12, i64 8, !12, i64 12, !12, i64 16, !12, i64 20, !12, i64 24, !12, i64 28, !12, i64 32}
!21 = !{!10, !11, i64 880}
!22 = !{!10, !12, i64 856}
!23 = !{!7, !7, i64 0}
!24 = !{!10, !12, i64 536}
!25 = !{!12, !12, i64 0}
!26 = !{!10, !7, i64 631}
!27 = !{!10, !12, i64 896}
!28 = !{!10, !12, i64 600}
!29 = !{!10, !7, i64 634}
!30 = !{!10, !12, i64 528}
!31 = !{!10, !12, i64 352}
!32 = !{!10, !6, i64 552}
!33 = !{!10, !6, i64 344}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@.str.4 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [20 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @png_push_save_buffer(ptr noalias noundef) local_unnamed_addr #0

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

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

; Function Attrs: noreturn
declare void @png_error(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local void @png_push_read_chunk(ptr noalias noundef %0, ptr noalias noundef %1) local_unnamed_addr #0 {
  %3 = alloca [4 x i8], align 1
  %4 = alloca [4 x i8], align 1
  %5 = getelementptr inbounds i8, ptr %0, i64 300
  %6 = load i32, ptr %5, align 4, !tbaa !5
  %7 = and i32 %6, 256
  %.not = icmp eq i32 %7, 0
  br i1 %.not, label %8, label %35

8:                                                ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #4
  %9 = getelementptr inbounds i8, ptr %0, i64 880
  %10 = load i64, ptr %9, align 8, !tbaa !20
  %11 = icmp ugt i64 %10, 7
  br i1 %11, label %.thread, label %34

.thread:                                          ; preds = %8
  call void @png_push_fill_buffer(ptr noundef nonnull %0, ptr noundef nonnull %3, i64 noundef 4)
  %12 = call i32 @png_get_uint_31(ptr noundef nonnull %0, ptr noundef nonnull %3) #4
  %13 = getelementptr inbounds i8, ptr %0, i64 856
  store i32 %12, ptr %13, align 8, !tbaa !21
  call void @png_reset_crc(ptr noundef nonnull %0) #4
  call void @png_crc_read(ptr noundef nonnull %0, ptr noundef nonnull %4, i32 noundef 4) #4
  %14 = load i8, ptr %4, align 1, !tbaa !22
  %15 = zext i8 %14 to i32
  %16 = shl nuw i32 %15, 24
  %17 = getelementptr inbounds i8, ptr %4, i64 1
  %18 = load i8, ptr %17, align 1, !tbaa !22
  %19 = zext i8 %18 to i32
  %20 = shl nuw nsw i32 %19, 16
  %21 = or disjoint i32 %20, %16
  %22 = getelementptr inbounds i8, ptr %4, i64 2
  %23 = load i8, ptr %22, align 1, !tbaa !22
  %24 = zext i8 %23 to i32
  %25 = shl nuw nsw i32 %24, 8
  %26 = or disjoint i32 %21, %25
  %27 = getelementptr inbounds i8, ptr %4, i64 3
  %28 = load i8, ptr %27, align 1, !tbaa !22
  %29 = zext i8 %28 to i32
  %30 = or disjoint i32 %26, %29
  %31 = getelementptr inbounds i8, ptr %0, i64 536
  store i32 %30, ptr %31, align 8, !tbaa !23
  call void @png_check_chunk_name(ptr noundef nonnull %0, i32 noundef %30) #4
  %32 = load i32, ptr %5, align 4, !tbaa !5
  %33 = or i32 %32, 256
  store i32 %33, ptr %5, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #4
  br label %35

34:                                               ; preds = %8
  tail call void @png_push_save_buffer(ptr noundef nonnull %0)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #4
  br label %241

35:                                               ; preds = %.thread, %2
  %36 = phi i32 [ %33, %.thread ], [ %6, %2 ]
  %37 = getelementptr inbounds i8, ptr %0, i64 536
  %38 = load i32, ptr %37, align 8, !tbaa !23
  switch i32 %38, label %84 [
    i32 1229209940, label %39
    i32 1229472850, label %63
    i32 1229278788, label %73
  ]

39:                                               ; preds = %35
  %40 = and i32 %36, 8
  %.not207 = icmp eq i32 %40, 0
  br i1 %.not207, label %43, label %41

41:                                               ; preds = %39
  %42 = or i32 %36, 8192
  store i32 %42, ptr %5, align 4, !tbaa !5
  br label %43

43:                                               ; preds = %41, %39
  %44 = phi i32 [ %42, %41 ], [ %36, %39 ]
  %45 = and i32 %44, 1
  %.not208 = icmp eq i32 %45, 0
  br i1 %.not208, label %46, label %47

46:                                               ; preds = %43
  call void @png_error(ptr noundef nonnull %0, ptr noundef nonnull @.str.4) #5
  unreachable

47:                                               ; preds = %43
  %48 = getelementptr inbounds i8, ptr %0, i64 631
  %49 = load i8, ptr %48, align 1, !tbaa !24
  %50 = icmp eq i8 %49, 3
  %51 = and i32 %44, 2
  %.not209 = icmp eq i32 %51, 0
  %or.cond = and i1 %.not209, %50
  br i1 %or.cond, label %52, label %53

52:                                               ; preds = %47
  call void @png_error(ptr noundef nonnull %0, ptr noundef nonnull @.str.5) #5
  unreachable

53:                                               ; preds = %47
  %54 = or i32 %44, 4
  store i32 %54, ptr %5, align 4, !tbaa !5
  %55 = and i32 %44, 8192
  %.not210 = icmp eq i32 %55, 0
  br i1 %.not210, label %56, label %60

56:                                               ; preds = %53
  %57 = getelementptr inbounds i8, ptr %0, i64 856
  %58 = load i32, ptr %57, align 8, !tbaa !21
  %59 = icmp eq i32 %58, 0
  br i1 %59, label %241, label %60

60:                                               ; preds = %56, %53
  %61 = and i32 %44, 8
  %.not211 = icmp eq i32 %61, 0
  br i1 %.not211, label %.thread215, label %62

62:                                               ; preds = %60
  call void @png_benign_error(ptr noundef nonnull %0, ptr noundef nonnull @.str.6) #4
  br label %.thread215

63:                                               ; preds = %35
  %64 = getelementptr inbounds i8, ptr %0, i64 856
  %65 = load i32, ptr %64, align 8, !tbaa !21
  %.not213 = icmp eq i32 %65, 13
  br i1 %.not213, label %67, label %66

66:                                               ; preds = %63
  call void @png_error(ptr noundef nonnull %0, ptr noundef nonnull @.str.7) #5
  unreachable

67:                                               ; preds = %63
  %68 = getelementptr inbounds i8, ptr %0, i64 880
  %69 = load i64, ptr %68, align 8, !tbaa !20
  %70 = icmp ult i64 %69, 17
  br i1 %70, label %71, label %72

71:                                               ; preds = %67
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

72:                                               ; preds = %67
  call void @png_handle_IHDR(ptr noundef nonnull %0, ptr noundef %1, i32 noundef 13) #4
  br label %238

73:                                               ; preds = %35
  %74 = getelementptr inbounds i8, ptr %0, i64 856
  %75 = load i32, ptr %74, align 8, !tbaa !21
  %76 = add i32 %75, 4
  %77 = zext i32 %76 to i64
  %78 = getelementptr inbounds i8, ptr %0, i64 880
  %79 = load i64, ptr %78, align 8, !tbaa !20
  %80 = icmp ult i64 %79, %77
  br i1 %80, label %81, label %82

81:                                               ; preds = %73
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

82:                                               ; preds = %73
  call void @png_handle_IEND(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %75) #4
  %83 = getelementptr inbounds i8, ptr %0, i64 896
  store i32 6, ptr %83, align 8, !tbaa !25
  call void @png_push_have_end(ptr noundef nonnull %0, ptr noundef %1)
  br label %238

84:                                               ; preds = %35
  %85 = call i32 @png_chunk_unknown_handling(ptr noundef nonnull %0, i32 noundef %38) #4
  %.not212 = icmp eq i32 %85, 0
  br i1 %.not212, label %102, label %87

.thread215:                                       ; preds = %62, %60
  %86 = call i32 @png_chunk_unknown_handling(ptr noundef nonnull %0, i32 noundef 1229209940) #4
  %.not212216 = icmp eq i32 %86, 0
  br i1 %.not212216, label %114, label %87

87:                                               ; preds = %.thread215, %84
  %88 = phi i32 [ %86, %.thread215 ], [ %85, %84 ]
  %89 = getelementptr inbounds i8, ptr %0, i64 856
  %90 = load i32, ptr %89, align 8, !tbaa !21
  %91 = add i32 %90, 4
  %92 = zext i32 %91 to i64
  %93 = getelementptr inbounds i8, ptr %0, i64 880
  %94 = load i64, ptr %93, align 8, !tbaa !20
  %95 = icmp ult i64 %94, %92
  br i1 %95, label %96, label %97

96:                                               ; preds = %87
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

97:                                               ; preds = %87
  call void @png_handle_unknown(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %90, i32 noundef %88) #4
  %98 = icmp eq i32 %38, 1347179589
  br i1 %98, label %99, label %238

99:                                               ; preds = %97
  %100 = load i32, ptr %5, align 4, !tbaa !5
  %101 = or i32 %100, 2
  store i32 %101, ptr %5, align 4, !tbaa !5
  br label %238

102:                                              ; preds = %84
  %103 = icmp eq i32 %38, 1347179589
  br i1 %103, label %104, label %142

104:                                              ; preds = %102
  %105 = getelementptr inbounds i8, ptr %0, i64 856
  %106 = load i32, ptr %105, align 8, !tbaa !21
  %107 = add i32 %106, 4
  %108 = zext i32 %107 to i64
  %109 = getelementptr inbounds i8, ptr %0, i64 880
  %110 = load i64, ptr %109, align 8, !tbaa !20
  %111 = icmp ult i64 %110, %108
  br i1 %111, label %112, label %113

112:                                              ; preds = %104
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

113:                                              ; preds = %104
  call void @png_handle_PLTE(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %106) #4
  br label %238

114:                                              ; preds = %.thread215
  %115 = getelementptr inbounds i8, ptr %0, i64 856
  %116 = load i32, ptr %115, align 8, !tbaa !21
  %117 = getelementptr inbounds i8, ptr %0, i64 600
  store i32 %116, ptr %117, align 8, !tbaa !26
  %118 = getelementptr inbounds i8, ptr %0, i64 896
  store i32 2, ptr %118, align 8, !tbaa !25
  call void @png_push_have_info(ptr noundef nonnull %0, ptr noundef %1)
  %119 = getelementptr inbounds i8, ptr %0, i64 634
  %120 = load i8, ptr %119, align 2, !tbaa !27
  %121 = icmp ugt i8 %120, 7
  %122 = getelementptr inbounds i8, ptr %0, i64 528
  %123 = load i32, ptr %122, align 8, !tbaa !28
  %124 = zext i32 %123 to i64
  br i1 %121, label %125, label %129

125:                                              ; preds = %114
  %126 = lshr i8 %120, 3
  %127 = zext nneg i8 %126 to i64
  %128 = mul nuw nsw i64 %124, %127
  br label %134

129:                                              ; preds = %114
  %130 = zext nneg i8 %120 to i64
  %131 = mul nuw nsw i64 %124, %130
  %132 = add nuw nsw i64 %131, 7
  %133 = lshr i64 %132, 3
  br label %134

134:                                              ; preds = %129, %125
  %135 = phi i64 [ %128, %125 ], [ %133, %129 ]
  %136 = trunc i64 %135 to i32
  %137 = add i32 %136, 1
  %138 = getelementptr inbounds i8, ptr %0, i64 352
  store i32 %137, ptr %138, align 8, !tbaa !29
  %139 = getelementptr inbounds i8, ptr %0, i64 552
  %140 = load ptr, ptr %139, align 8, !tbaa !30
  %141 = getelementptr inbounds i8, ptr %0, i64 344
  store ptr %140, ptr %141, align 8, !tbaa !31
  br label %241

142:                                              ; preds = %102
  %143 = load i32, ptr %37, align 8, !tbaa !23
  switch i32 %143, label %174 [
    i32 1732332865, label %144
    i32 1933723988, label %154
    i32 1665684045, label %164
  ]

144:                                              ; preds = %142
  %145 = getelementptr inbounds i8, ptr %0, i64 856
  %146 = load i32, ptr %145, align 8, !tbaa !21
  %147 = add i32 %146, 4
  %148 = zext i32 %147 to i64
  %149 = getelementptr inbounds i8, ptr %0, i64 880
  %150 = load i64, ptr %149, align 8, !tbaa !20
  %151 = icmp ult i64 %150, %148
  br i1 %151, label %152, label %153

152:                                              ; preds = %144
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

153:                                              ; preds = %144
  call void @png_handle_gAMA(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %146) #4
  br label %238

154:                                              ; preds = %142
  %155 = getelementptr inbounds i8, ptr %0, i64 856
  %156 = load i32, ptr %155, align 8, !tbaa !21
  %157 = add i32 %156, 4
  %158 = zext i32 %157 to i64
  %159 = getelementptr inbounds i8, ptr %0, i64 880
  %160 = load i64, ptr %159, align 8, !tbaa !20
  %161 = icmp ult i64 %160, %158
  br i1 %161, label %162, label %163

162:                                              ; preds = %154
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

163:                                              ; preds = %154
  call void @png_handle_sBIT(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %156) #4
  br label %238

164:                                              ; preds = %142
  %165 = getelementptr inbounds i8, ptr %0, i64 856
  %166 = load i32, ptr %165, align 8, !tbaa !21
  %167 = add i32 %166, 4
  %168 = zext i32 %167 to i64
  %169 = getelementptr inbounds i8, ptr %0, i64 880
  %170 = load i64, ptr %169, align 8, !tbaa !20
  %171 = icmp ult i64 %170, %168
  br i1 %171, label %172, label %173

172:                                              ; preds = %164
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

173:                                              ; preds = %164
  call void @png_handle_cHRM(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %166) #4
  br label %238

174:                                              ; preds = %142
  %175 = icmp eq i32 %38, 1934772034
  br i1 %175, label %176, label %186

176:                                              ; preds = %174
  %177 = getelementptr inbounds i8, ptr %0, i64 856
  %178 = load i32, ptr %177, align 8, !tbaa !21
  %179 = add i32 %178, 4
  %180 = zext i32 %179 to i64
  %181 = getelementptr inbounds i8, ptr %0, i64 880
  %182 = load i64, ptr %181, align 8, !tbaa !20
  %183 = icmp ult i64 %182, %180
  br i1 %183, label %184, label %185

184:                                              ; preds = %176
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

185:                                              ; preds = %176
  call void @png_handle_sRGB(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %178) #4
  br label %238

186:                                              ; preds = %174
  %187 = icmp eq i32 %143, 1766015824
  %188 = getelementptr inbounds i8, ptr %0, i64 856
  %189 = load i32, ptr %188, align 8, !tbaa !21
  %190 = add i32 %189, 4
  %191 = zext i32 %190 to i64
  %192 = getelementptr inbounds i8, ptr %0, i64 880
  %193 = load i64, ptr %192, align 8, !tbaa !20
  %194 = icmp ult i64 %193, %191
  br i1 %187, label %195, label %198

195:                                              ; preds = %186
  br i1 %194, label %196, label %197

196:                                              ; preds = %195
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

197:                                              ; preds = %195
  call void @png_handle_iCCP(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

198:                                              ; preds = %186
  switch i32 %38, label %235 [
    i32 1934642260, label %199
    i32 1951551059, label %202
    i32 1649100612, label %205
    i32 1749635924, label %208
    i32 1883789683, label %211
    i32 1866876531, label %214
    i32 1883455820, label %217
    i32 1933787468, label %220
    i32 1950960965, label %223
    i32 1950701684, label %226
    i32 2052348020, label %229
    i32 1767135348, label %232
  ]

199:                                              ; preds = %198
  br i1 %194, label %200, label %201

200:                                              ; preds = %199
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

201:                                              ; preds = %199
  call void @png_handle_sPLT(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

202:                                              ; preds = %198
  br i1 %194, label %203, label %204

203:                                              ; preds = %202
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

204:                                              ; preds = %202
  call void @png_handle_tRNS(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

205:                                              ; preds = %198
  br i1 %194, label %206, label %207

206:                                              ; preds = %205
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

207:                                              ; preds = %205
  call void @png_handle_bKGD(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

208:                                              ; preds = %198
  br i1 %194, label %209, label %210

209:                                              ; preds = %208
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

210:                                              ; preds = %208
  call void @png_handle_hIST(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

211:                                              ; preds = %198
  br i1 %194, label %212, label %213

212:                                              ; preds = %211
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

213:                                              ; preds = %211
  call void @png_handle_pHYs(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

214:                                              ; preds = %198
  br i1 %194, label %215, label %216

215:                                              ; preds = %214
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

216:                                              ; preds = %214
  call void @png_handle_oFFs(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

217:                                              ; preds = %198
  br i1 %194, label %218, label %219

218:                                              ; preds = %217
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

219:                                              ; preds = %217
  call void @png_handle_pCAL(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

220:                                              ; preds = %198
  br i1 %194, label %221, label %222

221:                                              ; preds = %220
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

222:                                              ; preds = %220
  call void @png_handle_sCAL(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

223:                                              ; preds = %198
  br i1 %194, label %224, label %225

224:                                              ; preds = %223
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

225:                                              ; preds = %223
  call void @png_handle_tIME(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

226:                                              ; preds = %198
  br i1 %194, label %227, label %228

227:                                              ; preds = %226
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

228:                                              ; preds = %226
  call void @png_handle_tEXt(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

229:                                              ; preds = %198
  br i1 %194, label %230, label %231

230:                                              ; preds = %229
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

231:                                              ; preds = %229
  call void @png_handle_zTXt(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

232:                                              ; preds = %198
  br i1 %194, label %233, label %234

233:                                              ; preds = %232
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

234:                                              ; preds = %232
  call void @png_handle_iTXt(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189) #4
  br label %238

235:                                              ; preds = %198
  br i1 %194, label %236, label %237

236:                                              ; preds = %235
  call void @png_push_save_buffer(ptr noundef nonnull %0)
  br label %241

237:                                              ; preds = %235
  call void @png_handle_unknown(ptr noundef nonnull %0, ptr noundef %1, i32 noundef %189, i32 noundef 0) #4
  br label %238

238:                                              ; preds = %82, %113, %153, %173, %197, %204, %210, %216, %222, %228, %234, %237, %231, %225, %219, %213, %207, %201, %185, %163, %97, %99, %72
  %239 = load i32, ptr %5, align 4, !tbaa !5
  %240 = and i32 %239, -257
  store i32 %240, ptr %5, align 4, !tbaa !5
  br label %241

241:                                              ; preds = %34, %56, %238, %236, %233, %230, %227, %224, %221, %218, %215, %212, %209, %206, %203, %200, %196, %184, %172, %162, %152, %134, %112, %96, %81, %71
  ret void
}

; Function Attrs: nounwind uwtable
declare dso_local void @png_push_fill_buffer(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #0

declare i32 @png_get_uint_31(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @png_reset_crc(ptr noundef) local_unnamed_addr #3

declare void @png_crc_read(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_check_chunk_name(ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_benign_error(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @png_handle_IHDR(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_IEND(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare dso_local void @png_push_have_end(ptr noalias noundef, ptr noalias noundef) local_unnamed_addr #0

declare i32 @png_chunk_unknown_handling(ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_unknown(ptr noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_PLTE(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare dso_local void @png_push_have_info(ptr noalias noundef, ptr noalias noundef) local_unnamed_addr #0

declare void @png_handle_gAMA(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_sBIT(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_cHRM(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_sRGB(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_iCCP(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_sPLT(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_tRNS(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_bKGD(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_hIST(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_pHYs(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_oFFs(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_pCAL(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_sCAL(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_tIME(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_tEXt(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_zTXt(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @png_handle_iTXt(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { noreturn "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 = { "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 #4 = { nounwind }
attributes #5 = { noreturn 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, !11, i64 300}
!6 = !{!"png_struct_def", !7, i64 0, !9, i64 200, !9, i64 208, !10, i64 216, !9, i64 224, !9, i64 232, !9, i64 240, !9, i64 248, !9, i64 256, !9, i64 264, !9, i64 272, !9, i64 280, !9, i64 288, !7, i64 296, !7, i64 297, !11, i64 300, !11, i64 304, !11, i64 308, !11, i64 312, !12, i64 320, !9, i64 432, !11, i64 440, !11, i64 444, !11, i64 448, !11, i64 452, !11, i64 456, !11, i64 460, !11, i64 464, !11, i64 468, !11, i64 472, !11, i64 476, !11, i64 480, !11, i64 484, !11, i64 488, !11, i64 492, !11, i64 496, !11, i64 500, !11, i64 504, !11, i64 508, !11, i64 512, !11, i64 516, !10, i64 520, !11, i64 528, !11, i64 532, !11, i64 536, !9, i64 544, !9, i64 552, !9, i64 560, !9, i64 568, !9, i64 576, !9, i64 584, !10, i64 592, !11, i64 600, !11, i64 604, !9, i64 608, !13, i64 616, !11, i64 620, !13, i64 624, !7, i64 626, !7, i64 627, !7, i64 628, !7, i64 629, !7, i64 630, !7, i64 631, !7, i64 632, !7, i64 633, !7, i64 634, !7, i64 635, !7, i64 636, !7, i64 637, !7, i64 638, !7, i64 639, !13, i64 640, !7, i64 642, !11, i64 644, !14, i64 648, !14, i64 658, !9, i64 672, !11, i64 680, !11, i64 684, !11, i64 688, !11, i64 692, !9, i64 696, !9, i64 704, !9, i64 712, !9, i64 720, !9, i64 728, !9, i64 736, !15, i64 744, !15, i64 749, !9, i64 760, !14, i64 768, !9, i64 784, !9, i64 792, !9, i64 800, !9, i64 808, !9, i64 816, !9, i64 824, !9, i64 832, !9, i64 840, !9, i64 848, !11, i64 856, !11, i64 860, !10, i64 864, !10, i64 872, !10, i64 880, !10, i64 888, !11, i64 896, !11, i64 900, !9, i64 904, !9, i64 912, !7, i64 920, !7, i64 921, !9, i64 928, !9, i64 936, !9, i64 944, !9, i64 952, !9, i64 960, !7, i64 968, !7, i64 969, !11, i64 1000, !9, i64 1008, !9, i64 1016, !11, i64 1024, !11, i64 1028, !9, i64 1032, !7, i64 1040, !7, i64 1041, !13, i64 1042, !13, i64 1044, !11, i64 1048, !7, i64 1052, !9, i64 1056, !9, i64 1064, !9, i64 1072, !9, i64 1080, !9, i64 1088, !9, i64 1096, !9, i64 1104, !7, i64 1112, !11, i64 1116, !11, i64 1120, !11, i64 1124, !10, i64 1128, !16, i64 1136, !10, i64 1168, !9, i64 1176, !10, i64 1184, !11, i64 1192, !11, i64 1196, !9, i64 1200, !7, i64 1208, !17, i64 1240}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!"any pointer", !7, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!"int", !7, i64 0}
!12 = !{!"z_stream_s", !9, i64 0, !11, i64 8, !10, i64 16, !9, i64 24, !11, i64 32, !10, i64 40, !9, i64 48, !9, i64 56, !9, i64 64, !9, i64 72, !9, i64 80, !11, i64 88, !10, i64 96, !10, i64 104}
!13 = !{!"short", !7, i64 0}
!14 = !{!"png_color_16_struct", !7, i64 0, !13, i64 2, !13, i64 4, !13, i64 6, !13, i64 8}
!15 = !{!"png_color_8_struct", !7, i64 0, !7, i64 1, !7, i64 2, !7, i64 3, !7, i64 4}
!16 = !{!"png_unknown_chunk_t", !7, i64 0, !9, i64 8, !10, i64 16, !7, i64 24}
!17 = !{!"png_colorspace", !11, i64 0, !18, i64 4, !19, i64 36, !13, i64 72, !13, i64 74}
!18 = !{!"png_xy", !11, i64 0, !11, i64 4, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !11, i64 24, !11, i64 28}
!19 = !{!"png_XYZ", !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}
!20 = !{!6, !10, i64 880}
!21 = !{!6, !11, i64 856}
!22 = !{!7, !7, i64 0}
!23 = !{!6, !11, i64 536}
!24 = !{!6, !7, i64 631}
!25 = !{!6, !11, i64 896}
!26 = !{!6, !11, i64 600}
!27 = !{!6, !7, i64 634}
!28 = !{!6, !11, i64 528}
!29 = !{!6, !11, i64 352}
!30 = !{!6, !9, i64 552}
!31 = !{!6, !9, i64 344}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass