; LLVM IR from venumb/ZSPACE :: cpp/depends/lodePNG/pngdetail.ll (Z14showHeaderInfoR4DataRK7Options)

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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%struct.Data = type <{ %"class.std::__cxx11::basic_string", %"class.std::vector", %"class.std::vector", i32, i32, %"class.lodepng::State", i32, i8, [3 x i8] }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.lodepng::State" = type { %struct.LodePNGState.base, [4 x i8] }
%struct.LodePNGState.base = type <{ ptr, %struct.LodePNGDecoderSettings, %struct.LodePNGEncoderSettings, %struct.LodePNGColorMode, %struct.LodePNGInfo, i32 }>
%struct.LodePNGDecoderSettings = type { %struct.LodePNGDecompressSettings, i32, i32, i32, i32, i32, i32 }
%struct.LodePNGDecompressSettings = type { i32, i32, ptr, ptr, ptr }
%struct.LodePNGEncoderSettings = type { %struct.LodePNGCompressSettings, i32, i32, i32, ptr, i32, i32, i32 }
%struct.LodePNGCompressSettings = type { i32, i32, i32, i32, i32, i32, ptr, ptr, ptr }
%struct.LodePNGColorMode = type { i32, i32, ptr, i64, i32, i32, i32, i32 }
%struct.LodePNGInfo = type { i32, i32, i32, %struct.LodePNGColorMode, i32, i32, i32, i32, i64, ptr, ptr, i64, ptr, ptr, ptr, ptr, i32, %struct.LodePNGTime, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, i32, [3 x ptr], [3 x i64] }
%struct.LodePNGTime = type { i32, i32, i32, i32, i32, i32 }
%struct.Options = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8 }
%struct.LodePNGState = type <{ ptr, %struct.LodePNGDecoderSettings, %struct.LodePNGEncoderSettings, %struct.LodePNGColorMode, %struct.LodePNGInfo, i32, [4 x i8] }>

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [9 x i8], align 1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #0

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15colorTypeStringB5cxx1116LodePNGColorType(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #0

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Data11loadInspectEv(ptr noundef nonnull align 8 dereferenceable(605)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15printICCDetailsPKhmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #1

declare i32 @printf(ptr noundef, ...) #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z14showHeaderInfoR4DataRK7Options(ptr noundef nonnull align 8 dereferenceable(605) %0, ptr noundef nonnull align 4 dereferenceable(36) %1) #1 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca double, align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca i64, align 8
  %14 = alloca i8, align 1
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %15 = load ptr, ptr %3, align 8, !tbaa !5
  call void @_ZN4Data11loadInspectEv(ptr noundef nonnull align 8 dereferenceable(605) %15)
  %16 = load ptr, ptr %3, align 8, !tbaa !5
  %17 = getelementptr inbounds %struct.Data, ptr %16, i32 0, i32 6
  %18 = load i32, ptr %17, align 8, !tbaa !9
  %19 = icmp ne i32 %18, 0
  br i1 %19, label %20, label %21

20:                                               ; preds = %2
  br label %530

21:                                               ; preds = %2
  %22 = load ptr, ptr %4, align 8, !tbaa !5
  %23 = getelementptr inbounds %struct.Options, ptr %22, i32 0, i32 22
  %24 = load i8, ptr %23, align 1, !tbaa !31, !range !35, !noundef !36
  %25 = trunc i8 %24 to i1
  br i1 %25, label %26, label %27

26:                                               ; preds = %21
  br label %28

27:                                               ; preds = %21
  br label %28

28:                                               ; preds = %27, %26
  %29 = phi ptr [ @_ZSt3hexRSt8ios_base, %26 ], [ @_ZSt3decRSt8ios_base, %27 ]
  %30 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef %29)
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #5
  %31 = load ptr, ptr %3, align 8, !tbaa !5
  %32 = getelementptr inbounds %struct.Data, ptr %31, i32 0, i32 5
  %33 = getelementptr inbounds %struct.LodePNGState, ptr %32, i32 0, i32 4
  store ptr %33, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #5
  %34 = load ptr, ptr %5, align 8, !tbaa !5
  %35 = getelementptr inbounds %struct.LodePNGInfo, ptr %34, i32 0, i32 3
  store ptr %35, ptr %6, align 8, !tbaa !5
  %36 = load ptr, ptr %4, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.Options, ptr %36, i32 0, i32 3
  %38 = load i8, ptr %37, align 1, !tbaa !37, !range !35, !noundef !36
  %39 = trunc i8 %38 to i1
  br i1 %39, label %40, label %163

40:                                               ; preds = %28
  %41 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.98)
  %42 = load ptr, ptr %3, align 8, !tbaa !5
  %43 = getelementptr inbounds %struct.Data, ptr %42, i32 0, i32 1
  %44 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %43) #5
  %45 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %41, i64 noundef %44)
  %46 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef @.str.9)
  %47 = load ptr, ptr %3, align 8, !tbaa !5
  %48 = getelementptr inbounds %struct.Data, ptr %47, i32 0, i32 1
  %49 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %48) #5
  %50 = udiv i64 %49, 1024
  %51 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %46, i64 noundef %50)
  %52 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef @.str.55)
  %53 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %54 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.153)
  %55 = load ptr, ptr %3, align 8, !tbaa !5
  %56 = getelementptr inbounds %struct.Data, ptr %55, i32 0, i32 3
  %57 = load i32, ptr %56, align 8, !tbaa !38
  %58 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %54, i32 noundef %57)
  %59 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %60 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.154)
  %61 = load ptr, ptr %3, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.Data, ptr %61, i32 0, i32 4
  %63 = load i32, ptr %62, align 4, !tbaa !39
  %64 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %60, i32 noundef %63)
  %65 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %66 = load ptr, ptr %4, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.Options, ptr %66, i32 0, i32 0
  %68 = load i8, ptr %67, align 4, !tbaa !40, !range !35, !noundef !36
  %69 = trunc i8 %68 to i1
  br i1 %69, label %70, label %88

70:                                               ; preds = %40
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #5
  %71 = load ptr, ptr %3, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.Data, ptr %71, i32 0, i32 1
  %73 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %72) #5
  %74 = uitofp i64 %73 to double
  %75 = load ptr, ptr %3, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct.Data, ptr %75, i32 0, i32 3
  %77 = load i32, ptr %76, align 8, !tbaa !38
  %78 = load ptr, ptr %3, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.Data, ptr %78, i32 0, i32 4
  %80 = load i32, ptr %79, align 4, !tbaa !39
  %81 = mul i32 %77, %80
  %82 = uitofp i32 %81 to double
  %83 = fdiv double %74, %82
  store double %83, ptr %7, align 8, !tbaa !41
  %84 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.155)
  %85 = load double, ptr %7, align 8, !tbaa !41
  %86 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %84, double noundef %85)
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #5
  br label %88

88:                                               ; preds = %70, %40
  %89 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.156)
  %90 = load ptr, ptr %5, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.LodePNGInfo, ptr %90, i32 0, i32 2
  %92 = load i32, ptr %91, align 8, !tbaa !43
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %89, i32 noundef %92)
  %94 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %95 = load ptr, ptr %4, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.Options, ptr %95, i32 0, i32 0
  %97 = load i8, ptr %96, align 4, !tbaa !40, !range !35, !noundef !36
  %98 = trunc i8 %97 to i1
  br i1 %98, label %99, label %112

99:                                               ; preds = %88
  %100 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.157)
  %101 = load ptr, ptr %5, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.LodePNGInfo, ptr %101, i32 0, i32 0
  %103 = load i32, ptr %102, align 8, !tbaa !44
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %100, i32 noundef %103)
  %105 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %106 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.158)
  %107 = load ptr, ptr %5, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.LodePNGInfo, ptr %107, i32 0, i32 1
  %109 = load i32, ptr %108, align 4, !tbaa !45
  %110 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %106, i32 noundef %109)
  %111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %112

112:                                              ; preds = %99, %88
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.159)
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #5
  %114 = load ptr, ptr %6, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.LodePNGColorMode, ptr %114, i32 0, i32 0
  %116 = load i32, ptr %115, align 8, !tbaa !46
  call void @_Z15colorTypeStringB5cxx1116LodePNGColorType(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %8, i32 noundef %116)
  %117 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %118 unwind label %158

118:                                              ; preds = %112
  %119 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %117, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %120 unwind label %158

120:                                              ; preds = %118
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  %121 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.160)
  %122 = load ptr, ptr %6, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.LodePNGColorMode, ptr %122, i32 0, i32 1
  %124 = load i32, ptr %123, align 4, !tbaa !47
  %125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %121, i32 noundef %124)
  %126 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %127 = load ptr, ptr %4, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.Options, ptr %127, i32 0, i32 0
  %129 = load i8, ptr %128, align 4, !tbaa !40, !range !35, !noundef !36
  %130 = trunc i8 %129 to i1
  br i1 %130, label %131, label %162

131:                                              ; preds = %120
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.161)
  %133 = load ptr, ptr %6, align 8, !tbaa !5
  %134 = call noundef i32 @_Z15lodepng_get_bppPK16LodePNGColorMode(ptr noundef %133)
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %132, i32 noundef %134)
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.162)
  %138 = load ptr, ptr %6, align 8, !tbaa !5
  %139 = call noundef i32 @_Z20lodepng_get_channelsPK16LodePNGColorMode(ptr noundef %138)
  %140 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %137, i32 noundef %139)
  %141 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.163)
  %143 = load ptr, ptr %6, align 8, !tbaa !5
  %144 = call noundef i32 @_Z25lodepng_is_greyscale_typePK16LodePNGColorMode(ptr noundef %143)
  %145 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %142, i32 noundef %144)
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %147 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.164)
  %148 = load ptr, ptr %6, align 8, !tbaa !5
  %149 = call noundef i32 @_Z22lodepng_can_have_alphaPK16LodePNGColorMode(ptr noundef %148)
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %147, i32 noundef %149)
  %151 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %152 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.165)
  %153 = load ptr, ptr %6, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.LodePNGColorMode, ptr %153, i32 0, i32 4
  %155 = load i32, ptr %154, align 8, !tbaa !48
  %156 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %152, i32 noundef %155)
  %157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %156, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %162

158:                                              ; preds = %118, %112
  %159 = landingpad { ptr, i32 }
          cleanup
  %160 = extractvalue { ptr, i32 } %159, 0
  store ptr %160, ptr %9, align 8
  %161 = extractvalue { ptr, i32 } %159, 1
  store i32 %161, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #5
  br label %531

162:                                              ; preds = %131, %120
  br label %163

163:                                              ; preds = %162, %28
  %164 = load ptr, ptr %4, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.Options, ptr %164, i32 0, i32 8
  %166 = load i8, ptr %165, align 4, !tbaa !49, !range !35, !noundef !36
  %167 = trunc i8 %166 to i1
  br i1 %167, label %168, label %375

168:                                              ; preds = %163
  %169 = load ptr, ptr %6, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.LodePNGColorMode, ptr %169, i32 0, i32 0
  %171 = load i32, ptr %170, align 8, !tbaa !46
  %172 = icmp eq i32 %171, 3
  br i1 %172, label %173, label %180

173:                                              ; preds = %168
  %174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.33)
  %175 = load ptr, ptr %6, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.LodePNGColorMode, ptr %175, i32 0, i32 3
  %177 = load i64, ptr %176, align 8, !tbaa !50
  %178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %174, i64 noundef %177)
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %178, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %180

180:                                              ; preds = %173, %168
  %181 = load ptr, ptr %6, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.LodePNGColorMode, ptr %181, i32 0, i32 4
  %183 = load i32, ptr %182, align 8, !tbaa !48
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %185, label %202

185:                                              ; preds = %180
  %186 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.166)
  %187 = load ptr, ptr %6, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.LodePNGColorMode, ptr %187, i32 0, i32 5
  %189 = load i32, ptr %188, align 4, !tbaa !51
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %186, i32 noundef %189)
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef @.str.39)
  %192 = load ptr, ptr %6, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.LodePNGColorMode, ptr %192, i32 0, i32 6
  %194 = load i32, ptr %193, align 8, !tbaa !52
  %195 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %191, i32 noundef %194)
  %196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %195, ptr noundef @.str.39)
  %197 = load ptr, ptr %6, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.LodePNGColorMode, ptr %197, i32 0, i32 7
  %199 = load i32, ptr %198, align 4, !tbaa !53
  %200 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %196, i32 noundef %199)
  %201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %202

202:                                              ; preds = %185, %180
  %203 = load ptr, ptr %5, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.LodePNGInfo, ptr %203, i32 0, i32 4
  %205 = load i32, ptr %204, align 8, !tbaa !54
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %207, label %237

207:                                              ; preds = %202
  %208 = load ptr, ptr %6, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.LodePNGColorMode, ptr %208, i32 0, i32 0
  %210 = load i32, ptr %209, align 8, !tbaa !46
  %211 = icmp eq i32 %210, 3
  br i1 %211, label %212, label %219

212:                                              ; preds = %207
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.167)
  %214 = load ptr, ptr %5, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.LodePNGInfo, ptr %214, i32 0, i32 5
  %216 = load i32, ptr %215, align 4, !tbaa !55
  %217 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %213, i32 noundef %216)
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %217, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %236

219:                                              ; preds = %207
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.168)
  %221 = load ptr, ptr %5, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.LodePNGInfo, ptr %221, i32 0, i32 5
  %223 = load i32, ptr %222, align 4, !tbaa !55
  %224 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %220, i32 noundef %223)
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %224, ptr noundef @.str.39)
  %226 = load ptr, ptr %5, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.LodePNGInfo, ptr %226, i32 0, i32 6
  %228 = load i32, ptr %227, align 8, !tbaa !56
  %229 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %225, i32 noundef %228)
  %230 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %229, ptr noundef @.str.39)
  %231 = load ptr, ptr %5, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.LodePNGInfo, ptr %231, i32 0, i32 7
  %233 = load i32, ptr %232, align 4, !tbaa !57
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %230, i32 noundef %233)
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %234, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %236

236:                                              ; preds = %219, %212
  br label %237

237:                                              ; preds = %236, %202
  %238 = load ptr, ptr %5, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.LodePNGInfo, ptr %238, i32 0, i32 22
  %240 = load i32, ptr %239, align 4, !tbaa !58
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %264

242:                                              ; preds = %237
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.169)
  %244 = load ptr, ptr %5, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.LodePNGInfo, ptr %244, i32 0, i32 23
  %246 = load i32, ptr %245, align 8, !tbaa !59
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %243, i32 noundef %246)
  %248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef @.str.9)
  %249 = load ptr, ptr %5, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.LodePNGInfo, ptr %249, i32 0, i32 23
  %251 = load i32, ptr %250, align 8, !tbaa !59
  %252 = uitofp i32 %251 to double
  %253 = fdiv double %252, 1.000000e+05
  %254 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %248, double noundef %253)
  %255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %254, ptr noundef @.str.39)
  %256 = load ptr, ptr %5, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.LodePNGInfo, ptr %256, i32 0, i32 23
  %258 = load i32, ptr %257, align 8, !tbaa !59
  %259 = uitofp i32 %258 to double
  %260 = fdiv double 1.000000e+05, %259
  %261 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %255, double noundef %260)
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %261, ptr noundef @.str.10)
  %263 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %262, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %264

264:                                              ; preds = %242, %237
  %265 = load ptr, ptr %5, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.LodePNGInfo, ptr %265, i32 0, i32 24
  %267 = load i32, ptr %266, align 4, !tbaa !60
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %327

269:                                              ; preds = %264
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.170)
  %271 = load ptr, ptr %5, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.LodePNGInfo, ptr %271, i32 0, i32 25
  %273 = load i32, ptr %272, align 8, !tbaa !61
  %274 = uitofp i32 %273 to double
  %275 = fdiv double %274, 1.000000e+05
  %276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %270, double noundef %275)
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %276, ptr noundef @.str.15)
  %278 = load ptr, ptr %5, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.LodePNGInfo, ptr %278, i32 0, i32 26
  %280 = load i32, ptr %279, align 4, !tbaa !62
  %281 = uitofp i32 %280 to double
  %282 = fdiv double %281, 1.000000e+05
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %277, double noundef %282)
  %284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %283, ptr noundef @.str.171)
  %285 = load ptr, ptr %5, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.LodePNGInfo, ptr %285, i32 0, i32 27
  %287 = load i32, ptr %286, align 8, !tbaa !63
  %288 = uitofp i32 %287 to double
  %289 = fdiv double %288, 1.000000e+05
  %290 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %284, double noundef %289)
  %291 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %290, ptr noundef @.str.15)
  %292 = load ptr, ptr %5, align 8, !tbaa !5
  %293 = getelementptr inbounds %struct.LodePNGInfo, ptr %292, i32 0, i32 28
  %294 = load i32, ptr %293, align 4, !tbaa !64
  %295 = uitofp i32 %294 to double
  %296 = fdiv double %295, 1.000000e+05
  %297 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %291, double noundef %296)
  %298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %297, ptr noundef @.str.172)
  %299 = load ptr, ptr %5, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.LodePNGInfo, ptr %299, i32 0, i32 29
  %301 = load i32, ptr %300, align 8, !tbaa !65
  %302 = uitofp i32 %301 to double
  %303 = fdiv double %302, 1.000000e+05
  %304 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %298, double noundef %303)
  %305 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef @.str.15)
  %306 = load ptr, ptr %5, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.LodePNGInfo, ptr %306, i32 0, i32 30
  %308 = load i32, ptr %307, align 4, !tbaa !66
  %309 = uitofp i32 %308 to double
  %310 = fdiv double %309, 1.000000e+05
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %305, double noundef %310)
  %312 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %311, ptr noundef @.str.173)
  %313 = load ptr, ptr %5, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.LodePNGInfo, ptr %313, i32 0, i32 31
  %315 = load i32, ptr %314, align 8, !tbaa !67
  %316 = uitofp i32 %315 to double
  %317 = fdiv double %316, 1.000000e+05
  %318 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %312, double noundef %317)
  %319 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %318, ptr noundef @.str.15)
  %320 = load ptr, ptr %5, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.LodePNGInfo, ptr %320, i32 0, i32 32
  %322 = load i32, ptr %321, align 4, !tbaa !68
  %323 = uitofp i32 %322 to double
  %324 = fdiv double %323, 1.000000e+05
  %325 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %319, double noundef %324)
  %326 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %325, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %327

327:                                              ; preds = %269, %264
  %328 = load ptr, ptr %5, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.LodePNGInfo, ptr %328, i32 0, i32 33
  %330 = load i32, ptr %329, align 8, !tbaa !69
  %331 = icmp ne i32 %330, 0
  br i1 %331, label %332, label %339

332:                                              ; preds = %327
  %333 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.174)
  %334 = load ptr, ptr %5, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.LodePNGInfo, ptr %334, i32 0, i32 34
  %336 = load i32, ptr %335, align 4, !tbaa !70
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %333, i32 noundef %336)
  %338 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %337, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %339

339:                                              ; preds = %332, %327
  %340 = load ptr, ptr %5, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.LodePNGInfo, ptr %340, i32 0, i32 35
  %342 = load i32, ptr %341, align 8, !tbaa !71
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %344, label %374

344:                                              ; preds = %339
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.175)
  %346 = load ptr, ptr %5, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.LodePNGInfo, ptr %346, i32 0, i32 38
  %348 = load i32, ptr %347, align 8, !tbaa !72
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %345, i32 noundef %348)
  %350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef @.str.176)
  %351 = load ptr, ptr %5, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.LodePNGInfo, ptr %351, i32 0, i32 36
  %353 = load ptr, ptr %352, align 8, !tbaa !73
  %354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef %353)
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %356 = load ptr, ptr %4, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.Options, ptr %356, i32 0, i32 0
  %358 = load i8, ptr %357, align 4, !tbaa !40, !range !35, !noundef !36
  %359 = trunc i8 %358 to i1
  br i1 %359, label %360, label %373

360:                                              ; preds = %344
  %361 = load ptr, ptr %4, align 8, !tbaa !5
  %362 = getelementptr inbounds %struct.Options, ptr %361, i32 0, i32 5
  %363 = load i8, ptr %362, align 1, !tbaa !74, !range !35, !noundef !36
  %364 = trunc i8 %363 to i1
  br i1 %364, label %373, label %365

365:                                              ; preds = %360
  %366 = load ptr, ptr %4, align 8, !tbaa !5
  %367 = getelementptr inbounds %struct.Options, ptr %366, i32 0, i32 6
  %368 = load i8, ptr %367, align 2, !tbaa !75, !range !35, !noundef !36
  %369 = trunc i8 %368 to i1
  br i1 %369, label %373, label %370

370:                                              ; preds = %365
  %371 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.177)
  %372 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %371, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %373

373:                                              ; preds = %370, %365, %360, %344
  br label %374

374:                                              ; preds = %373, %339
  br label %375

375:                                              ; preds = %374, %163
  %376 = load ptr, ptr %5, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.LodePNGInfo, ptr %376, i32 0, i32 35
  %378 = load i32, ptr %377, align 8, !tbaa !71
  %379 = icmp ne i32 %378, 0
  br i1 %379, label %380, label %423

380:                                              ; preds = %375
  %381 = load ptr, ptr %4, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.Options, ptr %381, i32 0, i32 5
  %383 = load i8, ptr %382, align 1, !tbaa !74, !range !35, !noundef !36
  %384 = trunc i8 %383 to i1
  br i1 %384, label %385, label %423

385:                                              ; preds = %380
  %386 = load ptr, ptr %4, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.Options, ptr %386, i32 0, i32 3
  %388 = load i8, ptr %387, align 1, !tbaa !37, !range !35, !noundef !36
  %389 = trunc i8 %388 to i1
  br i1 %389, label %402, label %390

390:                                              ; preds = %385
  %391 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.178)
  %392 = load ptr, ptr %5, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.LodePNGInfo, ptr %392, i32 0, i32 38
  %394 = load i32, ptr %393, align 8, !tbaa !72
  %395 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %391, i32 noundef %394)
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %395, ptr noundef @.str.179)
  %397 = load ptr, ptr %5, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.LodePNGInfo, ptr %397, i32 0, i32 36
  %399 = load ptr, ptr %398, align 8, !tbaa !73
  %400 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %396, ptr noundef %399)
  %401 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %400, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %402

402:                                              ; preds = %390, %385
  %403 = load ptr, ptr %5, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.LodePNGInfo, ptr %403, i32 0, i32 37
  %405 = load ptr, ptr %404, align 8, !tbaa !76
  %406 = load ptr, ptr %5, align 8, !tbaa !5
  %407 = getelementptr inbounds %struct.LodePNGInfo, ptr %406, i32 0, i32 38
  %408 = load i32, ptr %407, align 8, !tbaa !72
  %409 = zext i32 %408 to i64
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #5
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.180, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %410 unwind label %414

410:                                              ; preds = %402
  invoke void @_Z15printICCDetailsPKhmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %405, i64 noundef %409, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %411 unwind label %418

411:                                              ; preds = %410
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #5
  %412 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.181)
  %413 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %412, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %423

414:                                              ; preds = %402
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %9, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %10, align 4
  br label %422

418:                                              ; preds = %410
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %9, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #5
  br label %422

422:                                              ; preds = %418, %414
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #5
  br label %531

423:                                              ; preds = %411, %380, %375
  %424 = load ptr, ptr %5, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.LodePNGInfo, ptr %424, i32 0, i32 35
  %426 = load i32, ptr %425, align 8, !tbaa !71
  %427 = icmp ne i32 %426, 0
  br i1 %427, label %428, label %489

428:                                              ; preds = %423
  %429 = load ptr, ptr %4, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.Options, ptr %429, i32 0, i32 6
  %431 = load i8, ptr %430, align 2, !tbaa !75, !range !35, !noundef !36
  %432 = trunc i8 %431 to i1
  br i1 %432, label %433, label %489

433:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #5
  store i64 0, ptr %13, align 8, !tbaa !77
  br label %434

434:                                              ; preds = %484, %433
  %435 = load i64, ptr %13, align 8, !tbaa !77
  %436 = load ptr, ptr %5, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.LodePNGInfo, ptr %436, i32 0, i32 38
  %438 = load i32, ptr %437, align 8, !tbaa !72
  %439 = zext i32 %438 to i64
  %440 = icmp ult i64 %435, %439
  br i1 %440, label %442, label %441

441:                                              ; preds = %434
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #5
  br label %487

442:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #5
  %443 = load ptr, ptr %5, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct.LodePNGInfo, ptr %443, i32 0, i32 37
  %445 = load ptr, ptr %444, align 8, !tbaa !76
  %446 = load i64, ptr %13, align 8, !tbaa !77
  %447 = getelementptr inbounds i8, ptr %445, i64 %446
  %448 = load i8, ptr %447, align 1, !tbaa !78
  store i8 %448, ptr %14, align 1, !tbaa !78
  %449 = load i8, ptr %14, align 1, !tbaa !78
  %450 = zext i8 %449 to i32
  %451 = icmp sgt i32 %450, 32
  br i1 %451, label %452, label %465

452:                                              ; preds = %442
  %453 = load i8, ptr %14, align 1, !tbaa !78
  %454 = zext i8 %453 to i32
  %455 = icmp slt i32 %454, 127
  br i1 %455, label %456, label %465

456:                                              ; preds = %452
  %457 = load ptr, ptr %4, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.Options, ptr %457, i32 0, i32 11
  %459 = load i32, ptr %458, align 4, !tbaa !79
  %460 = icmp eq i32 %459, 1
  br i1 %460, label %461, label %465

461:                                              ; preds = %456
  %462 = load i8, ptr %14, align 1, !tbaa !78
  %463 = zext i8 %462 to i32
  %464 = call i32 (ptr, ...) @printf(ptr noundef @.str.182, i32 noundef %463)
  br label %469

465:                                              ; preds = %456, %452, %442
  %466 = load i8, ptr %14, align 1, !tbaa !78
  %467 = zext i8 %466 to i32
  %468 = call i32 (ptr, ...) @printf(ptr noundef @.str.183, i32 noundef %467)
  br label %469

469:                                              ; preds = %465, %461
  %470 = load i64, ptr %13, align 8, !tbaa !77
  %471 = urem i64 %470, 32
  %472 = icmp eq i64 %471, 31
  br i1 %472, label %473, label %483

473:                                              ; preds = %469
  %474 = load i64, ptr %13, align 8, !tbaa !77
  %475 = add i64 %474, 1
  %476 = load ptr, ptr %5, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.LodePNGInfo, ptr %476, i32 0, i32 38
  %478 = load i32, ptr %477, align 8, !tbaa !72
  %479 = zext i32 %478 to i64
  %480 = icmp ne i64 %475, %479
  br i1 %480, label %481, label %483

481:                                              ; preds = %473
  %482 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %483

483:                                              ; preds = %481, %473, %469
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #5
  br label %484

484:                                              ; preds = %483
  %485 = load i64, ptr %13, align 8, !tbaa !77
  %486 = add i64 %485, 1
  store i64 %486, ptr %13, align 8, !tbaa !77
  br label %434, !llvm.loop !80

487:                                              ; preds = %441
  %488 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %489

489:                                              ; preds = %487, %428, %423
  %490 = load ptr, ptr %4, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.Options, ptr %490, i32 0, i32 8
  %492 = load i8, ptr %491, align 4, !tbaa !49, !range !35, !noundef !36
  %493 = trunc i8 %492 to i1
  br i1 %493, label %494, label %529

494:                                              ; preds = %489
  %495 = load ptr, ptr %4, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.Options, ptr %495, i32 0, i32 0
  %497 = load i8, ptr %496, align 4, !tbaa !40, !range !35, !noundef !36
  %498 = trunc i8 %497 to i1
  br i1 %498, label %499, label %506

499:                                              ; preds = %494
  %500 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.184)
  %501 = load ptr, ptr %5, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.LodePNGInfo, ptr %501, i32 0, i32 18
  %503 = load i32, ptr %502, align 4, !tbaa !82
  %504 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %500, i32 noundef %503)
  %505 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %504, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %506

506:                                              ; preds = %499, %494
  %507 = load ptr, ptr %5, align 8, !tbaa !5
  %508 = getelementptr inbounds %struct.LodePNGInfo, ptr %507, i32 0, i32 18
  %509 = load i32, ptr %508, align 4, !tbaa !82
  %510 = icmp ne i32 %509, 0
  br i1 %510, label %511, label %528

511:                                              ; preds = %506
  %512 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.185)
  %513 = load ptr, ptr %5, align 8, !tbaa !5
  %514 = getelementptr inbounds %struct.LodePNGInfo, ptr %513, i32 0, i32 19
  %515 = load i32, ptr %514, align 8, !tbaa !83
  %516 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %512, i32 noundef %515)
  %517 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %516, ptr noundef @.str.186)
  %518 = load ptr, ptr %5, align 8, !tbaa !5
  %519 = getelementptr inbounds %struct.LodePNGInfo, ptr %518, i32 0, i32 20
  %520 = load i32, ptr %519, align 4, !tbaa !84
  %521 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %517, i32 noundef %520)
  %522 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %521, ptr noundef @.str.187)
  %523 = load ptr, ptr %5, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.LodePNGInfo, ptr %523, i32 0, i32 21
  %525 = load i32, ptr %524, align 8, !tbaa !85
  %526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %522, i32 noundef %525)
  %527 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %526, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %528

528:                                              ; preds = %511, %506
  br label %529

529:                                              ; preds = %528, %489
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  br label %530

530:                                              ; preds = %529, %20
  ret void

531:                                              ; preds = %422, %158
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #5
  br label %532

532:                                              ; preds = %531
  %533 = load ptr, ptr %9, align 8
  %534 = load i32, ptr %10, align 4
  %535 = insertvalue { ptr, i32 } poison, ptr %533, 0
  %536 = insertvalue { ptr, i32 } %535, i32 %534, 1
  resume { ptr, i32 } %536
}

declare noundef i32 @_Z15lodepng_get_bppPK16LodePNGColorMode(ptr noundef) #4

declare noundef i32 @_Z20lodepng_get_channelsPK16LodePNGColorMode(ptr noundef) #4

declare noundef i32 @_Z25lodepng_is_greyscale_typePK16LodePNGColorMode(ptr noundef) #4

declare noundef i32 @_Z22lodepng_can_have_alphaPK16LodePNGColorMode(ptr noundef) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

attributes #0 = { inlinehint mustprogress 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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress 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 #4 = { "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 #5 = { 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++ TBAA"}
!9 = !{!10, !18, i64 600}
!10 = !{!"_ZTS4Data", !11, i64 0, !14, i64 32, !14, i64 56, !18, i64 80, !18, i64 84, !19, i64 88, !18, i64 600, !30, i64 604}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !12, i64 0, !13, i64 8, !7, i64 16}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!"_ZTSSt6vectorIhSaIhEE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!18 = !{!"int", !7, i64 0}
!19 = !{!"_ZTSN7lodepng5StateE", !20, i64 0}
!20 = !{!"_ZTS12LodePNGState", !21, i64 8, !23, i64 64, !26, i64 152, !28, i64 192, !18, i64 504}
!21 = !{!"_ZTS22LodePNGDecoderSettings", !22, i64 0, !18, i64 32, !18, i64 36, !18, i64 40, !18, i64 44, !18, i64 48, !18, i64 52}
!22 = !{!"_ZTS25LodePNGDecompressSettings", !18, i64 0, !18, i64 4, !6, i64 8, !6, i64 16, !6, i64 24}
!23 = !{!"_ZTS22LodePNGEncoderSettings", !24, i64 0, !18, i64 48, !18, i64 52, !25, i64 56, !6, i64 64, !18, i64 72, !18, i64 76, !18, i64 80}
!24 = !{!"_ZTS23LodePNGCompressSettings", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12, !18, i64 16, !18, i64 20, !6, i64 24, !6, i64 32, !6, i64 40}
!25 = !{!"_ZTS21LodePNGFilterStrategy", !7, i64 0}
!26 = !{!"_ZTS16LodePNGColorMode", !27, i64 0, !18, i64 4, !6, i64 8, !13, i64 16, !18, i64 24, !18, i64 28, !18, i64 32, !18, i64 36}
!27 = !{!"_ZTS16LodePNGColorType", !7, i64 0}
!28 = !{!"_ZTS11LodePNGInfo", !18, i64 0, !18, i64 4, !18, i64 8, !26, i64 16, !18, i64 56, !18, i64 60, !18, i64 64, !18, i64 68, !13, i64 72, !6, i64 80, !6, i64 88, !13, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !18, i64 136, !29, i64 140, !18, i64 164, !18, i64 168, !18, i64 172, !18, i64 176, !18, i64 180, !18, i64 184, !18, i64 188, !18, i64 192, !18, i64 196, !18, i64 200, !18, i64 204, !18, i64 208, !18, i64 212, !18, i64 216, !18, i64 220, !18, i64 224, !18, i64 228, !18, i64 232, !6, i64 240, !6, i64 248, !18, i64 256, !7, i64 264, !7, i64 288}
!29 = !{!"_ZTS11LodePNGTime", !18, i64 0, !18, i64 4, !18, i64 8, !18, i64 12, !18, i64 16, !18, i64 20}
!30 = !{!"bool", !7, i64 0}
!31 = !{!32, !30, i64 35}
!32 = !{!"_ZTS7Options", !30, i64 0, !30, i64 1, !30, i64 2, !30, i64 3, !30, i64 4, !30, i64 5, !30, i64 6, !30, i64 7, !30, i64 8, !30, i64 9, !30, i64 10, !33, i64 12, !30, i64 16, !34, i64 20, !18, i64 24, !30, i64 28, !30, i64 29, !30, i64 30, !30, i64 31, !30, i64 32, !30, i64 33, !30, i64 34, !30, i64 35}
!33 = !{!"_ZTS9HexFormat", !7, i64 0}
!34 = !{!"_ZTS10RenderMode", !7, i64 0}
!35 = !{i8 0, i8 2}
!36 = !{}
!37 = !{!32, !30, i64 3}
!38 = !{!10, !18, i64 80}
!39 = !{!10, !18, i64 84}
!40 = !{!32, !30, i64 0}
!41 = !{!42, !42, i64 0}
!42 = !{!"double", !7, i64 0}
!43 = !{!28, !18, i64 8}
!44 = !{!28, !18, i64 0}
!45 = !{!28, !18, i64 4}
!46 = !{!26, !27, i64 0}
!47 = !{!26, !18, i64 4}
!48 = !{!26, !18, i64 24}
!49 = !{!32, !30, i64 8}
!50 = !{!26, !13, i64 16}
!51 = !{!26, !18, i64 28}
!52 = !{!26, !18, i64 32}
!53 = !{!26, !18, i64 36}
!54 = !{!28, !18, i64 56}
!55 = !{!28, !18, i64 60}
!56 = !{!28, !18, i64 64}
!57 = !{!28, !18, i64 68}
!58 = !{!28, !18, i64 180}
!59 = !{!28, !18, i64 184}
!60 = !{!28, !18, i64 188}
!61 = !{!28, !18, i64 192}
!62 = !{!28, !18, i64 196}
!63 = !{!28, !18, i64 200}
!64 = !{!28, !18, i64 204}
!65 = !{!28, !18, i64 208}
!66 = !{!28, !18, i64 212}
!67 = !{!28, !18, i64 216}
!68 = !{!28, !18, i64 220}
!69 = !{!28, !18, i64 224}
!70 = !{!28, !18, i64 228}
!71 = !{!28, !18, i64 232}
!72 = !{!28, !18, i64 256}
!73 = !{!28, !6, i64 240}
!74 = !{!32, !30, i64 5}
!75 = !{!32, !30, i64 6}
!76 = !{!28, !6, i64 248}
!77 = !{!13, !13, i64 0}
!78 = !{!7, !7, i64 0}
!79 = !{!32, !33, i64 12}
!80 = distinct !{!80, !81}
!81 = !{!"llvm.loop.mustprogress"}
!82 = !{!28, !18, i64 164}
!83 = !{!28, !18, i64 168}
!84 = !{!28, !18, i64 172}
!85 = !{!28, !18, i64 176}


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

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.153 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.154 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.155 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.156 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.157 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.158 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.159 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.160 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.161 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.162 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.163 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.177 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.178 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.179 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.181 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.182 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.183 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.184 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.185 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.186 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [9 x i8], align 1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #0

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15colorTypeStringB5cxx1116LodePNGColorType(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #0

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #0

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Data11loadInspectEv(ptr noundef nonnull align 8 dereferenceable(605)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15printICCDetailsPKhmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z14showHeaderInfoR4DataRK7Options(ptr noundef nonnull align 8 dereferenceable(605) %0, ptr nocapture noundef nonnull readonly align 4 dereferenceable(36) %1) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  tail call void @_ZN4Data11loadInspectEv(ptr noundef nonnull align 8 dereferenceable(605) %0)
  %6 = getelementptr inbounds i8, ptr %0, i64 600
  %7 = load i32, ptr %6, align 8, !tbaa !5
  %.not = icmp eq i32 %7, 0
  br i1 %.not, label %8, label %358

8:                                                ; preds = %2
  %9 = getelementptr inbounds i8, ptr %1, i64 35
  %10 = load i8, ptr %9, align 1, !tbaa !30, !range !34, !noundef !35
  %11 = trunc nuw i8 %10 to i1
  %_ZSt3hexRSt8ios_base._ZSt3decRSt8ios_base = select i1 %11, ptr @_ZSt3hexRSt8ios_base, ptr @_ZSt3decRSt8ios_base
  %12 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull %_ZSt3hexRSt8ios_base._ZSt3decRSt8ios_base)
  %13 = getelementptr inbounds i8, ptr %0, i64 280
  %14 = getelementptr inbounds i8, ptr %0, i64 296
  %15 = getelementptr inbounds i8, ptr %1, i64 3
  %16 = load i8, ptr %15, align 1, !tbaa !36, !range !34, !noundef !35
  %17 = trunc nuw i8 %16 to i1
  br i1 %17, label %18, label %108

18:                                               ; preds = %8
  %19 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.98)
  %20 = getelementptr inbounds i8, ptr %0, i64 32
  %21 = tail call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #6
  %22 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %19, i64 noundef %21)
  %23 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull @.str.9)
  %24 = tail call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #6
  %25 = lshr i64 %24, 10
  %26 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %23, i64 noundef %25)
  %27 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull @.str.55)
  %28 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %29 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.153)
  %30 = getelementptr inbounds i8, ptr %0, i64 80
  %31 = load i32, ptr %30, align 8, !tbaa !37
  %32 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %29, i32 noundef %31)
  %33 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %34 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.154)
  %35 = getelementptr inbounds i8, ptr %0, i64 84
  %36 = load i32, ptr %35, align 4, !tbaa !38
  %37 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %34, i32 noundef %36)
  %38 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %39 = load i8, ptr %1, align 4, !tbaa !39, !range !34, !noundef !35
  %40 = trunc nuw i8 %39 to i1
  br i1 %40, label %41, label %52

41:                                               ; preds = %18
  %42 = tail call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %20) #6
  %43 = uitofp i64 %42 to double
  %44 = load i32, ptr %30, align 8, !tbaa !37
  %45 = load i32, ptr %35, align 4, !tbaa !38
  %46 = mul i32 %45, %44
  %47 = uitofp i32 %46 to double
  %48 = fdiv double %43, %47
  %49 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.155)
  %50 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %49, double noundef %48)
  %51 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %52

52:                                               ; preds = %41, %18
  %53 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.156)
  %54 = getelementptr inbounds i8, ptr %0, i64 288
  %55 = load i32, ptr %54, align 8, !tbaa !40
  %56 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %53, i32 noundef %55)
  %57 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %58 = load i8, ptr %1, align 4, !tbaa !39, !range !34, !noundef !35
  %59 = trunc nuw i8 %58 to i1
  br i1 %59, label %60, label %70

60:                                               ; preds = %52
  %61 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.157)
  %62 = load i32, ptr %13, align 8, !tbaa !41
  %63 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %61, i32 noundef %62)
  %64 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %65 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.158)
  %66 = getelementptr inbounds i8, ptr %0, i64 284
  %67 = load i32, ptr %66, align 4, !tbaa !42
  %68 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %65, i32 noundef %67)
  %69 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %70

70:                                               ; preds = %60, %52
  %71 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.159)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  %72 = load i32, ptr %14, align 8, !tbaa !43
  call void @_Z15colorTypeStringB5cxx1116LodePNGColorType(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, i32 noundef %72)
  %73 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %74 unwind label %106

74:                                               ; preds = %70
  %75 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %76 unwind label %106

76:                                               ; preds = %74
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  %77 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.160)
  %78 = getelementptr inbounds i8, ptr %0, i64 300
  %79 = load i32, ptr %78, align 4, !tbaa !44
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %77, i32 noundef %79)
  %81 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %82 = load i8, ptr %1, align 4, !tbaa !39, !range !34, !noundef !35
  %83 = trunc nuw i8 %82 to i1
  br i1 %83, label %84, label %108

84:                                               ; preds = %76
  %85 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.161)
  %86 = call noundef i32 @_Z15lodepng_get_bppPK16LodePNGColorMode(ptr noundef nonnull %14)
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %85, i32 noundef %86)
  %88 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %89 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.162)
  %90 = call noundef i32 @_Z20lodepng_get_channelsPK16LodePNGColorMode(ptr noundef nonnull %14)
  %91 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %89, i32 noundef %90)
  %92 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.163)
  %94 = call noundef i32 @_Z25lodepng_is_greyscale_typePK16LodePNGColorMode(ptr noundef nonnull %14)
  %95 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %93, i32 noundef %94)
  %96 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %97 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.164)
  %98 = call noundef i32 @_Z22lodepng_can_have_alphaPK16LodePNGColorMode(ptr noundef nonnull %14)
  %99 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %97, i32 noundef %98)
  %100 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.165)
  %102 = getelementptr inbounds i8, ptr %0, i64 320
  %103 = load i32, ptr %102, align 8, !tbaa !45
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %101, i32 noundef %103)
  %105 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %108

106:                                              ; preds = %74, %70
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br label %359

108:                                              ; preds = %76, %84, %8
  %109 = getelementptr inbounds i8, ptr %1, i64 8
  %110 = load i8, ptr %109, align 4, !tbaa !46, !range !34, !noundef !35
  %111 = trunc nuw i8 %110 to i1
  br i1 %111, label %112, label %268

112:                                              ; preds = %108
  %113 = load i32, ptr %14, align 8, !tbaa !43
  %114 = icmp eq i32 %113, 3
  br i1 %114, label %115, label %121

115:                                              ; preds = %112
  %116 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.33)
  %117 = getelementptr inbounds i8, ptr %0, i64 312
  %118 = load i64, ptr %117, align 8, !tbaa !47
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %116, i64 noundef %118)
  %120 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %121

121:                                              ; preds = %115, %112
  %122 = getelementptr inbounds i8, ptr %0, i64 320
  %123 = load i32, ptr %122, align 8, !tbaa !45
  %.not97 = icmp eq i32 %123, 0
  br i1 %.not97, label %138, label %124

124:                                              ; preds = %121
  %125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.166)
  %126 = getelementptr inbounds i8, ptr %0, i64 324
  %127 = load i32, ptr %126, align 4, !tbaa !48
  %128 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %125, i32 noundef %127)
  %129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef nonnull @.str.39)
  %130 = getelementptr inbounds i8, ptr %0, i64 328
  %131 = load i32, ptr %130, align 8, !tbaa !49
  %132 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %129, i32 noundef %131)
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull @.str.39)
  %134 = getelementptr inbounds i8, ptr %0, i64 332
  %135 = load i32, ptr %134, align 4, !tbaa !50
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %133, i32 noundef %135)
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %136, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %138

138:                                              ; preds = %124, %121
  %139 = getelementptr inbounds i8, ptr %0, i64 336
  %140 = load i32, ptr %139, align 8, !tbaa !51
  %.not98 = icmp eq i32 %140, 0
  br i1 %.not98, label %160, label %141

141:                                              ; preds = %138
  %142 = load i32, ptr %14, align 8, !tbaa !43
  %143 = icmp eq i32 %142, 3
  %144 = getelementptr inbounds i8, ptr %0, i64 340
  br i1 %143, label %145, label %147

145:                                              ; preds = %141
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.167)
  br label %.sink.split

147:                                              ; preds = %141
  %148 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.168)
  %149 = load i32, ptr %144, align 4, !tbaa !52
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %148, i32 noundef %149)
  %151 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef nonnull @.str.39)
  %152 = getelementptr inbounds i8, ptr %0, i64 344
  %153 = load i32, ptr %152, align 8, !tbaa !53
  %154 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %151, i32 noundef %153)
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %154, ptr noundef nonnull @.str.39)
  %156 = getelementptr inbounds i8, ptr %0, i64 348
  br label %.sink.split

.sink.split:                                      ; preds = %147, %145
  %.sink = phi ptr [ %144, %145 ], [ %156, %147 ]
  %.sink121 = phi ptr [ %146, %145 ], [ %155, %147 ]
  %157 = load i32, ptr %.sink, align 4, !tbaa !54
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %.sink121, i32 noundef %157)
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %160

160:                                              ; preds = %.sink.split, %138
  %161 = getelementptr inbounds i8, ptr %0, i64 460
  %162 = load i32, ptr %161, align 4, !tbaa !55
  %.not99 = icmp eq i32 %162, 0
  br i1 %.not99, label %180, label %163

163:                                              ; preds = %160
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.169)
  %165 = getelementptr inbounds i8, ptr %0, i64 464
  %166 = load i32, ptr %165, align 8, !tbaa !56
  %167 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %164, i32 noundef %166)
  %168 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef nonnull @.str.9)
  %169 = load i32, ptr %165, align 8, !tbaa !56
  %170 = uitofp i32 %169 to double
  %171 = fdiv double %170, 1.000000e+05
  %172 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %168, double noundef %171)
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull @.str.39)
  %174 = load i32, ptr %165, align 8, !tbaa !56
  %175 = uitofp i32 %174 to double
  %176 = fdiv double 1.000000e+05, %175
  %177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %173, double noundef %176)
  %178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef nonnull @.str.10)
  %179 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %178, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %180

180:                                              ; preds = %163, %160
  %181 = getelementptr inbounds i8, ptr %0, i64 468
  %182 = load i32, ptr %181, align 4, !tbaa !57
  %.not100 = icmp eq i32 %182, 0
  br i1 %.not100, label %233, label %183

183:                                              ; preds = %180
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.170)
  %185 = getelementptr inbounds i8, ptr %0, i64 472
  %186 = load i32, ptr %185, align 8, !tbaa !58
  %187 = uitofp i32 %186 to double
  %188 = fdiv double %187, 1.000000e+05
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %184, double noundef %188)
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef nonnull @.str.15)
  %191 = getelementptr inbounds i8, ptr %0, i64 476
  %192 = load i32, ptr %191, align 4, !tbaa !59
  %193 = uitofp i32 %192 to double
  %194 = fdiv double %193, 1.000000e+05
  %195 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %190, double noundef %194)
  %196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %195, ptr noundef nonnull @.str.171)
  %197 = getelementptr inbounds i8, ptr %0, i64 480
  %198 = load i32, ptr %197, align 8, !tbaa !60
  %199 = uitofp i32 %198 to double
  %200 = fdiv double %199, 1.000000e+05
  %201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %196, double noundef %200)
  %202 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef nonnull @.str.15)
  %203 = getelementptr inbounds i8, ptr %0, i64 484
  %204 = load i32, ptr %203, align 4, !tbaa !61
  %205 = uitofp i32 %204 to double
  %206 = fdiv double %205, 1.000000e+05
  %207 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %202, double noundef %206)
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %207, ptr noundef nonnull @.str.172)
  %209 = getelementptr inbounds i8, ptr %0, i64 488
  %210 = load i32, ptr %209, align 8, !tbaa !62
  %211 = uitofp i32 %210 to double
  %212 = fdiv double %211, 1.000000e+05
  %213 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %208, double noundef %212)
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %213, ptr noundef nonnull @.str.15)
  %215 = getelementptr inbounds i8, ptr %0, i64 492
  %216 = load i32, ptr %215, align 4, !tbaa !63
  %217 = uitofp i32 %216 to double
  %218 = fdiv double %217, 1.000000e+05
  %219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %214, double noundef %218)
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %219, ptr noundef nonnull @.str.173)
  %221 = getelementptr inbounds i8, ptr %0, i64 496
  %222 = load i32, ptr %221, align 8, !tbaa !64
  %223 = uitofp i32 %222 to double
  %224 = fdiv double %223, 1.000000e+05
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %220, double noundef %224)
  %226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef nonnull @.str.15)
  %227 = getelementptr inbounds i8, ptr %0, i64 500
  %228 = load i32, ptr %227, align 4, !tbaa !65
  %229 = uitofp i32 %228 to double
  %230 = fdiv double %229, 1.000000e+05
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %226, double noundef %230)
  %232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %233

233:                                              ; preds = %183, %180
  %234 = getelementptr inbounds i8, ptr %0, i64 504
  %235 = load i32, ptr %234, align 8, !tbaa !66
  %.not101 = icmp eq i32 %235, 0
  br i1 %.not101, label %242, label %236

236:                                              ; preds = %233
  %237 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.174)
  %238 = getelementptr inbounds i8, ptr %0, i64 508
  %239 = load i32, ptr %238, align 4, !tbaa !67
  %240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %237, i32 noundef %239)
  %241 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %242

242:                                              ; preds = %236, %233
  %243 = getelementptr inbounds i8, ptr %0, i64 512
  %244 = load i32, ptr %243, align 8, !tbaa !68
  %.not102 = icmp eq i32 %244, 0
  br i1 %.not102, label %268, label %245

245:                                              ; preds = %242
  %246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.175)
  %247 = getelementptr inbounds i8, ptr %0, i64 536
  %248 = load i32, ptr %247, align 8, !tbaa !69
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %246, i32 noundef %248)
  %250 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %249, ptr noundef nonnull @.str.176)
  %251 = getelementptr inbounds i8, ptr %0, i64 520
  %252 = load ptr, ptr %251, align 8, !tbaa !70
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef %252)
  %254 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %253, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %255 = load i8, ptr %1, align 4, !tbaa !39, !range !34, !noundef !35
  %256 = trunc nuw i8 %255 to i1
  br i1 %256, label %257, label %268

257:                                              ; preds = %245
  %258 = getelementptr inbounds i8, ptr %1, i64 5
  %259 = load i8, ptr %258, align 1, !tbaa !71, !range !34, !noundef !35
  %260 = trunc nuw i8 %259 to i1
  br i1 %260, label %268, label %261

261:                                              ; preds = %257
  %262 = getelementptr inbounds i8, ptr %1, i64 6
  %263 = load i8, ptr %262, align 2, !tbaa !72, !range !34, !noundef !35
  %264 = trunc nuw i8 %263 to i1
  br i1 %264, label %268, label %265

265:                                              ; preds = %261
  %266 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.177)
  %267 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %266, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %268

268:                                              ; preds = %242, %265, %261, %257, %245, %108
  %269 = getelementptr inbounds i8, ptr %0, i64 512
  %270 = load i32, ptr %269, align 8, !tbaa !68
  %.not103 = icmp eq i32 %270, 0
  br i1 %.not103, label %.thread, label %271

271:                                              ; preds = %268
  %272 = getelementptr inbounds i8, ptr %1, i64 5
  %273 = load i8, ptr %272, align 1, !tbaa !71, !range !34, !noundef !35
  %274 = trunc nuw i8 %273 to i1
  br i1 %274, label %275, label %.thread119

275:                                              ; preds = %271
  %276 = load i8, ptr %15, align 1, !tbaa !36, !range !34, !noundef !35
  %277 = trunc nuw i8 %276 to i1
  br i1 %277, label %288, label %278

278:                                              ; preds = %275
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.178)
  %280 = getelementptr inbounds i8, ptr %0, i64 536
  %281 = load i32, ptr %280, align 8, !tbaa !69
  %282 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %279, i32 noundef %281)
  %283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef nonnull @.str.179)
  %284 = getelementptr inbounds i8, ptr %0, i64 520
  %285 = load ptr, ptr %284, align 8, !tbaa !70
  %286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %283, ptr noundef %285)
  %287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %288

288:                                              ; preds = %278, %275
  %289 = getelementptr inbounds i8, ptr %0, i64 528
  %290 = load ptr, ptr %289, align 8, !tbaa !73
  %291 = getelementptr inbounds i8, ptr %0, i64 536
  %292 = load i32, ptr %291, align 8, !tbaa !69
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.180, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %293 unwind label %295

293:                                              ; preds = %288
  %294 = zext i32 %292 to i64
  invoke void @_Z15printICCDetailsPKhmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %290, i64 noundef %294, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %300 unwind label %297

295:                                              ; preds = %288
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %299

297:                                              ; preds = %293
  %298 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %299

299:                                              ; preds = %297, %295
  %.pn = phi { ptr, i32 } [ %298, %297 ], [ %296, %295 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  br label %359

300:                                              ; preds = %293
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  %301 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.181)
  %302 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %301, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %.pr.pre = load i32, ptr %269, align 8, !tbaa !68
  %303 = icmp eq i32 %.pr.pre, 0
  br i1 %303, label %.thread, label %.thread119

.thread119:                                       ; preds = %271, %300
  %304 = getelementptr inbounds i8, ptr %1, i64 6
  %305 = load i8, ptr %304, align 2, !tbaa !72, !range !34, !noundef !35
  %306 = trunc nuw i8 %305 to i1
  br i1 %306, label %.preheader, label %.thread

.preheader:                                       ; preds = %.thread119
  %307 = getelementptr inbounds i8, ptr %0, i64 536
  %308 = load i32, ptr %307, align 8, !tbaa !69
  %.not114 = icmp eq i32 %308, 0
  br i1 %.not114, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader
  %309 = getelementptr inbounds i8, ptr %0, i64 528
  %310 = getelementptr inbounds i8, ptr %1, i64 12
  br label %312

._crit_edge:                                      ; preds = %._crit_edge117, %.preheader
  %311 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %.thread

312:                                              ; preds = %.lr.ph, %._crit_edge117
  %.093113 = phi i64 [ 0, %.lr.ph ], [ %323, %._crit_edge117 ]
  %313 = load ptr, ptr %309, align 8, !tbaa !73
  %314 = getelementptr inbounds i8, ptr %313, i64 %.093113
  %315 = load i8, ptr %314, align 1, !tbaa !74
  %316 = zext i8 %315 to i32
  %317 = add i8 %315, -33
  %or.cond = icmp ult i8 %317, 94
  %318 = load i32, ptr %310, align 4
  %319 = icmp eq i32 %318, 1
  %or.cond111 = select i1 %or.cond, i1 %319, i1 false
  %.str.182..str.183 = select i1 %or.cond111, ptr @.str.182, ptr @.str.183
  %320 = call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) %.str.182..str.183, i32 noundef %316)
  %321 = and i64 %.093113, 31
  %322 = icmp ne i64 %321, 31
  %.pre116 = load i32, ptr %307, align 8, !tbaa !69
  %323 = add nuw nsw i64 %.093113, 1
  %324 = zext i32 %.pre116 to i64
  %.not108 = icmp eq i64 %323, %324
  %or.cond123 = select i1 %322, i1 true, i1 %.not108
  br i1 %or.cond123, label %._crit_edge117, label %325

325:                                              ; preds = %312
  %326 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %.pre = load i32, ptr %307, align 8, !tbaa !69
  br label %._crit_edge117

._crit_edge117:                                   ; preds = %312, %325
  %327 = phi i32 [ %.pre, %325 ], [ %.pre116, %312 ]
  %328 = zext i32 %327 to i64
  %329 = icmp ult i64 %323, %328
  br i1 %329, label %312, label %._crit_edge, !llvm.loop !75

.thread:                                          ; preds = %268, %._crit_edge, %.thread119, %300
  %330 = load i8, ptr %109, align 4, !tbaa !46, !range !34, !noundef !35
  %331 = trunc nuw i8 %330 to i1
  br i1 %331, label %332, label %358

332:                                              ; preds = %.thread
  %333 = load i8, ptr %1, align 4, !tbaa !39, !range !34, !noundef !35
  %334 = trunc nuw i8 %333 to i1
  br i1 %334, label %335, label %341

335:                                              ; preds = %332
  %336 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.184)
  %337 = getelementptr inbounds i8, ptr %0, i64 444
  %338 = load i32, ptr %337, align 4, !tbaa !77
  %339 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %336, i32 noundef %338)
  %340 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %339, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %341

341:                                              ; preds = %335, %332
  %342 = getelementptr inbounds i8, ptr %0, i64 444
  %343 = load i32, ptr %342, align 4, !tbaa !77
  %.not107 = icmp eq i32 %343, 0
  br i1 %.not107, label %358, label %344

344:                                              ; preds = %341
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.185)
  %346 = getelementptr inbounds i8, ptr %0, i64 448
  %347 = load i32, ptr %346, align 8, !tbaa !78
  %348 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %345, i32 noundef %347)
  %349 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %348, ptr noundef nonnull @.str.186)
  %350 = getelementptr inbounds i8, ptr %0, i64 452
  %351 = load i32, ptr %350, align 4, !tbaa !79
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %349, i32 noundef %351)
  %353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %352, ptr noundef nonnull @.str.187)
  %354 = getelementptr inbounds i8, ptr %0, i64 456
  %355 = load i32, ptr %354, align 8, !tbaa !80
  %356 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %353, i32 noundef %355)
  %357 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %356, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %358

358:                                              ; preds = %.thread, %344, %341, %2
  ret void

359:                                              ; preds = %299, %106
  %.pn.pn = phi { ptr, i32 } [ %.pn, %299 ], [ %107, %106 ]
  resume { ptr, i32 } %.pn.pn
}

declare noundef i32 @_Z15lodepng_get_bppPK16LodePNGColorMode(ptr noundef) local_unnamed_addr #5

declare noundef i32 @_Z20lodepng_get_channelsPK16LodePNGColorMode(ptr noundef) local_unnamed_addr #5

declare noundef i32 @_Z25lodepng_is_greyscale_typePK16LodePNGColorMode(ptr noundef) local_unnamed_addr #5

declare noundef i32 @_Z22lodepng_can_have_alphaPK16LodePNGColorMode(ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

attributes #0 = { inlinehint mustprogress 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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress 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 #4 = { nofree nounwind "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 #5 = { "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 #6 = { 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, !17, i64 600}
!6 = !{!"_ZTS4Data", !7, i64 0, !13, i64 32, !13, i64 56, !17, i64 80, !17, i64 84, !18, i64 88, !17, i64 600, !29, i64 604}
!7 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !8, i64 0, !12, i64 8, !10, i64 16}
!8 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !9, i64 0}
!9 = !{!"any pointer", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"long", !10, i64 0}
!13 = !{!"_ZTSSt6vectorIhSaIhEE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !9, i64 0, !9, i64 8, !9, i64 16}
!17 = !{!"int", !10, i64 0}
!18 = !{!"_ZTSN7lodepng5StateE", !19, i64 0}
!19 = !{!"_ZTS12LodePNGState", !20, i64 8, !22, i64 64, !25, i64 152, !27, i64 192, !17, i64 504}
!20 = !{!"_ZTS22LodePNGDecoderSettings", !21, i64 0, !17, i64 32, !17, i64 36, !17, i64 40, !17, i64 44, !17, i64 48, !17, i64 52}
!21 = !{!"_ZTS25LodePNGDecompressSettings", !17, i64 0, !17, i64 4, !9, i64 8, !9, i64 16, !9, i64 24}
!22 = !{!"_ZTS22LodePNGEncoderSettings", !23, i64 0, !17, i64 48, !17, i64 52, !24, i64 56, !9, i64 64, !17, i64 72, !17, i64 76, !17, i64 80}
!23 = !{!"_ZTS23LodePNGCompressSettings", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !17, i64 16, !17, i64 20, !9, i64 24, !9, i64 32, !9, i64 40}
!24 = !{!"_ZTS21LodePNGFilterStrategy", !10, i64 0}
!25 = !{!"_ZTS16LodePNGColorMode", !26, i64 0, !17, i64 4, !9, i64 8, !12, i64 16, !17, i64 24, !17, i64 28, !17, i64 32, !17, i64 36}
!26 = !{!"_ZTS16LodePNGColorType", !10, i64 0}
!27 = !{!"_ZTS11LodePNGInfo", !17, i64 0, !17, i64 4, !17, i64 8, !25, i64 16, !17, i64 56, !17, i64 60, !17, i64 64, !17, i64 68, !12, i64 72, !9, i64 80, !9, i64 88, !12, i64 96, !9, i64 104, !9, i64 112, !9, i64 120, !9, i64 128, !17, i64 136, !28, i64 140, !17, i64 164, !17, i64 168, !17, i64 172, !17, i64 176, !17, i64 180, !17, i64 184, !17, i64 188, !17, i64 192, !17, i64 196, !17, i64 200, !17, i64 204, !17, i64 208, !17, i64 212, !17, i64 216, !17, i64 220, !17, i64 224, !17, i64 228, !17, i64 232, !9, i64 240, !9, i64 248, !17, i64 256, !10, i64 264, !10, i64 288}
!28 = !{!"_ZTS11LodePNGTime", !17, i64 0, !17, i64 4, !17, i64 8, !17, i64 12, !17, i64 16, !17, i64 20}
!29 = !{!"bool", !10, i64 0}
!30 = !{!31, !29, i64 35}
!31 = !{!"_ZTS7Options", !29, i64 0, !29, i64 1, !29, i64 2, !29, i64 3, !29, i64 4, !29, i64 5, !29, i64 6, !29, i64 7, !29, i64 8, !29, i64 9, !29, i64 10, !32, i64 12, !29, i64 16, !33, i64 20, !17, i64 24, !29, i64 28, !29, i64 29, !29, i64 30, !29, i64 31, !29, i64 32, !29, i64 33, !29, i64 34, !29, i64 35}
!32 = !{!"_ZTS9HexFormat", !10, i64 0}
!33 = !{!"_ZTS10RenderMode", !10, i64 0}
!34 = !{i8 0, i8 2}
!35 = !{}
!36 = !{!31, !29, i64 3}
!37 = !{!6, !17, i64 80}
!38 = !{!6, !17, i64 84}
!39 = !{!31, !29, i64 0}
!40 = !{!27, !17, i64 8}
!41 = !{!27, !17, i64 0}
!42 = !{!27, !17, i64 4}
!43 = !{!25, !26, i64 0}
!44 = !{!25, !17, i64 4}
!45 = !{!25, !17, i64 24}
!46 = !{!31, !29, i64 8}
!47 = !{!25, !12, i64 16}
!48 = !{!25, !17, i64 28}
!49 = !{!25, !17, i64 32}
!50 = !{!25, !17, i64 36}
!51 = !{!27, !17, i64 56}
!52 = !{!27, !17, i64 60}
!53 = !{!27, !17, i64 64}
!54 = !{!17, !17, i64 0}
!55 = !{!27, !17, i64 180}
!56 = !{!27, !17, i64 184}
!57 = !{!27, !17, i64 188}
!58 = !{!27, !17, i64 192}
!59 = !{!27, !17, i64 196}
!60 = !{!27, !17, i64 200}
!61 = !{!27, !17, i64 204}
!62 = !{!27, !17, i64 208}
!63 = !{!27, !17, i64 212}
!64 = !{!27, !17, i64 216}
!65 = !{!27, !17, i64 220}
!66 = !{!27, !17, i64 224}
!67 = !{!27, !17, i64 228}
!68 = !{!27, !17, i64 232}
!69 = !{!27, !17, i64 256}
!70 = !{!27, !9, i64 240}
!71 = !{!31, !29, i64 5}
!72 = !{!31, !29, i64 6}
!73 = !{!27, !9, i64 248}
!74 = !{!10, !10, i64 0}
!75 = distinct !{!75, !76}
!76 = !{!"llvm.loop.mustprogress"}
!77 = !{!27, !17, i64 164}
!78 = !{!27, !17, i64 168}
!79 = !{!27, !17, i64 172}
!80 = !{!27, !17, i64 176}


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