; LLVM IR from venumb/ZSPACE :: cpp/depends/lodePNG/lodepng_unittest.ll (Z14testComplexPNGv)

; 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::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 }
%"class.std::allocator" = type { 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.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [31 x i8], align 1
@LODEPNG_VERSION_STRING = external global ptr, align 8
@.str.235 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z4failv() #0

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

declare i32 @__gxx_personality_v0(...)

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

; 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)) #2

; 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) #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0 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)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z16assertNoPNGErrorjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #0

; 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 #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #2

; 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 nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 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 nounwind uwtable
declare dso_local void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #0

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

declare void @_ZN7lodepng5StateC1Ev(ptr noundef nonnull align 8 dereferenceable(508)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508)) unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z16createComplexPNGRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(24)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z17extractChunkNamesB5cxx11RKSt6vectorIhSaIhEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #0

; Function Attrs: mustprogress uwtable
define dso_local void @_Z14testComplexPNGv() #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.std::vector", align 8
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca %"class.lodepng::State", align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::vector", align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca i1, align 1
  %19 = alloca i1, align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca i1, align 1
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca i1, align 1
  %24 = alloca i1, align 1
  %25 = alloca i1, align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca i32, align 4
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i32, align 4
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca i32, align 4
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca i32, align 4
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca i32, align 4
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca i32, align 4
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca i32, align 4
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator", align 1
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca i32, align 4
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::allocator", align 1
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca i32, align 4
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::allocator", align 1
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca i32, align 4
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::allocator", align 1
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca i32, align 4
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::allocator", align 1
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca i32, align 4
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::allocator", align 1
  %140 = alloca %"class.std::__cxx11::basic_string", align 8
  %141 = alloca i32, align 4
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::__cxx11::basic_string", align 8
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::__cxx11::basic_string", align 8
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca %"class.std::allocator", align 1
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca i32, align 4
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::allocator", align 1
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca i32, align 4
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::allocator", align 1
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca %"class.std::allocator", align 1
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca %"class.std::__cxx11::basic_string", align 8
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca %"class.std::__cxx11::basic_string", align 8
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::allocator", align 1
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca i32, align 4
  %180 = alloca %"class.std::__cxx11::basic_string", align 8
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::allocator", align 1
  %183 = alloca %"class.std::__cxx11::basic_string", align 8
  %184 = alloca %"class.std::allocator", align 1
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca %"class.std::__cxx11::basic_string", align 8
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca %"class.std::__cxx11::basic_string", align 8
  %190 = alloca %"class.std::allocator", align 1
  %191 = alloca %"class.std::__cxx11::basic_string", align 8
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::allocator", align 1
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::__cxx11::basic_string", align 8
  %196 = alloca %"class.std::allocator", align 1
  %197 = alloca %"class.std::__cxx11::basic_string", align 8
  %198 = alloca %"class.std::allocator", align 1
  %199 = alloca %"class.std::__cxx11::basic_string", align 8
  %200 = alloca %"class.std::allocator", align 1
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::__cxx11::basic_string", align 8
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::__cxx11::basic_string", align 8
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::allocator", align 1
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::allocator", align 1
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::__cxx11::basic_string", align 8
  %212 = alloca %"class.std::allocator", align 1
  %213 = alloca %"class.std::__cxx11::basic_string", align 8
  %214 = alloca %"class.std::allocator", align 1
  %215 = alloca %"class.std::__cxx11::basic_string", align 8
  %216 = alloca %"class.std::allocator", align 1
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.std::__cxx11::basic_string", align 8
  %219 = alloca %"class.std::__cxx11::basic_string", align 8
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::allocator", align 1
  %223 = alloca %"class.std::__cxx11::basic_string", align 8
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::allocator", align 1
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca %"class.std::allocator", align 1
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::allocator", align 1
  %231 = alloca %"class.std::__cxx11::basic_string", align 8
  %232 = alloca %"class.std::allocator", align 1
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.std::__cxx11::basic_string", align 8
  %235 = alloca %"class.std::__cxx11::basic_string", align 8
  %236 = alloca %"class.std::__cxx11::basic_string", align 8
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca %"class.std::allocator", align 1
  %239 = alloca %"class.std::__cxx11::basic_string", align 8
  %240 = alloca %"class.std::__cxx11::basic_string", align 8
  %241 = alloca %"class.std::allocator", align 1
  %242 = alloca %"class.std::__cxx11::basic_string", align 8
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca %"class.std::allocator", align 1
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::allocator", align 1
  %247 = alloca %"class.std::__cxx11::basic_string", align 8
  %248 = alloca %"class.std::allocator", align 1
  %249 = alloca %"class.std::__cxx11::basic_string", align 8
  %250 = alloca %"class.std::__cxx11::basic_string", align 8
  %251 = alloca %"class.std::__cxx11::basic_string", align 8
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca %"class.std::allocator", align 1
  %255 = alloca %"class.std::__cxx11::basic_string", align 8
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca %"class.std::allocator", align 1
  %258 = alloca %"class.std::__cxx11::basic_string", align 8
  %259 = alloca %"class.std::__cxx11::basic_string", align 8
  %260 = alloca %"class.std::allocator", align 1
  %261 = alloca %"class.std::__cxx11::basic_string", align 8
  %262 = alloca %"class.std::allocator", align 1
  %263 = alloca %"class.std::__cxx11::basic_string", align 8
  %264 = alloca %"class.std::allocator", align 1
  %265 = alloca %"class.std::__cxx11::basic_string", align 8
  %266 = alloca %"class.std::__cxx11::basic_string", align 8
  %267 = alloca %"class.std::__cxx11::basic_string", align 8
  %268 = alloca %"class.std::__cxx11::basic_string", align 8
  %269 = alloca %"class.std::__cxx11::basic_string", align 8
  %270 = alloca %"class.std::allocator", align 1
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca %"class.std::__cxx11::basic_string", align 8
  %273 = alloca %"class.std::allocator", align 1
  %274 = alloca %"class.std::__cxx11::basic_string", align 8
  %275 = alloca %"class.std::__cxx11::basic_string", align 8
  %276 = alloca %"class.std::allocator", align 1
  %277 = alloca %"class.std::__cxx11::basic_string", align 8
  %278 = alloca %"class.std::__cxx11::basic_string", align 8
  %279 = alloca %"class.std::__cxx11::basic_string", align 8
  %280 = alloca %"class.std::__cxx11::basic_string", align 8
  %281 = alloca %"class.std::__cxx11::basic_string", align 8
  %282 = alloca %"class.std::allocator", align 1
  %283 = alloca %"class.std::__cxx11::basic_string", align 8
  %284 = alloca i32, align 4
  %285 = alloca %"class.std::__cxx11::basic_string", align 8
  %286 = alloca %"class.std::__cxx11::basic_string", align 8
  %287 = alloca %"class.std::allocator", align 1
  %288 = alloca %"class.std::__cxx11::basic_string", align 8
  %289 = alloca %"class.std::allocator", align 1
  %290 = alloca %"class.std::__cxx11::basic_string", align 8
  %291 = alloca %"class.std::__cxx11::basic_string", align 8
  %292 = alloca %"class.std::__cxx11::basic_string", align 8
  %293 = alloca %"class.std::__cxx11::basic_string", align 8
  %294 = alloca %"class.std::__cxx11::basic_string", align 8
  %295 = alloca %"class.std::allocator", align 1
  %296 = alloca %"class.std::__cxx11::basic_string", align 8
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca %"class.std::allocator", align 1
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.std::__cxx11::basic_string", align 8
  %301 = alloca %"class.std::allocator", align 1
  %302 = alloca %"class.std::__cxx11::basic_string", align 8
  %303 = alloca %"class.std::allocator", align 1
  %304 = alloca %"class.std::__cxx11::basic_string", align 8
  %305 = alloca %"class.std::allocator", align 1
  %306 = alloca %"class.std::__cxx11::basic_string", align 8
  %307 = alloca %"class.std::__cxx11::basic_string", align 8
  %308 = alloca %"class.std::__cxx11::basic_string", align 8
  %309 = alloca %"class.std::__cxx11::basic_string", align 8
  %310 = alloca %"class.std::__cxx11::basic_string", align 8
  %311 = alloca %"class.std::allocator", align 1
  %312 = alloca %"class.std::__cxx11::basic_string", align 8
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.std::allocator", align 1
  %315 = alloca %"class.std::__cxx11::basic_string", align 8
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca %"class.std::allocator", align 1
  %318 = alloca %"class.std::__cxx11::basic_string", align 8
  %319 = alloca %"class.std::allocator", align 1
  %320 = alloca %"class.std::__cxx11::basic_string", align 8
  %321 = alloca %"class.std::allocator", align 1
  %322 = alloca %"class.std::__cxx11::basic_string", align 8
  %323 = alloca %"class.std::__cxx11::basic_string", align 8
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca %"class.std::__cxx11::basic_string", align 8
  %326 = alloca %"class.std::__cxx11::basic_string", align 8
  %327 = alloca %"class.std::allocator", align 1
  %328 = alloca %"class.std::__cxx11::basic_string", align 8
  %329 = alloca %"class.std::__cxx11::basic_string", align 8
  %330 = alloca %"class.std::allocator", align 1
  %331 = alloca %"class.std::__cxx11::basic_string", align 8
  %332 = alloca %"class.std::__cxx11::basic_string", align 8
  %333 = alloca %"class.std::allocator", align 1
  %334 = alloca %"class.std::__cxx11::basic_string", align 8
  %335 = alloca %"class.std::allocator", align 1
  %336 = alloca %"class.std::__cxx11::basic_string", align 8
  %337 = alloca %"class.std::allocator", align 1
  %338 = alloca %"class.std::__cxx11::basic_string", align 8
  %339 = alloca %"class.std::__cxx11::basic_string", align 8
  %340 = alloca %"class.std::__cxx11::basic_string", align 8
  %341 = alloca %"class.std::__cxx11::basic_string", align 8
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::allocator", align 1
  %344 = alloca %"class.std::__cxx11::basic_string", align 8
  %345 = alloca %"class.std::__cxx11::basic_string", align 8
  %346 = alloca %"class.std::allocator", align 1
  %347 = alloca %"class.std::__cxx11::basic_string", align 8
  %348 = alloca %"class.std::__cxx11::basic_string", align 8
  %349 = alloca %"class.std::allocator", align 1
  %350 = alloca %"class.std::__cxx11::basic_string", align 8
  %351 = alloca %"class.std::allocator", align 1
  %352 = alloca %"class.std::__cxx11::basic_string", align 8
  %353 = alloca %"class.std::allocator", align 1
  %354 = alloca %"class.std::__cxx11::basic_string", align 8
  %355 = alloca %"class.std::__cxx11::basic_string", align 8
  %356 = alloca %"class.std::__cxx11::basic_string", align 8
  %357 = alloca %"class.std::__cxx11::basic_string", align 8
  %358 = alloca %"class.std::__cxx11::basic_string", align 8
  %359 = alloca %"class.std::allocator", align 1
  %360 = alloca %"class.std::__cxx11::basic_string", align 8
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca %"class.std::allocator", align 1
  %363 = alloca %"class.std::__cxx11::basic_string", align 8
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::allocator", align 1
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca %"class.std::allocator", align 1
  %368 = alloca %"class.std::__cxx11::basic_string", align 8
  %369 = alloca %"class.std::allocator", align 1
  %370 = alloca %"class.std::__cxx11::basic_string", align 8
  %371 = alloca %"class.std::__cxx11::basic_string", align 8
  %372 = alloca %"class.std::__cxx11::basic_string", align 8
  %373 = alloca %"class.std::__cxx11::basic_string", align 8
  %374 = alloca %"class.std::__cxx11::basic_string", align 8
  %375 = alloca %"class.std::allocator", align 1
  %376 = alloca %"class.std::__cxx11::basic_string", align 8
  %377 = alloca %"class.std::__cxx11::basic_string", align 8
  %378 = alloca %"class.std::allocator", align 1
  %379 = alloca %"class.std::__cxx11::basic_string", align 8
  %380 = alloca %"class.std::__cxx11::basic_string", align 8
  %381 = alloca %"class.std::allocator", align 1
  %382 = alloca %"class.std::__cxx11::basic_string", align 8
  %383 = alloca %"class.std::allocator", align 1
  %384 = alloca %"class.std::__cxx11::basic_string", align 8
  %385 = alloca %"class.std::allocator", align 1
  %386 = alloca %"class.std::__cxx11::basic_string", align 8
  %387 = alloca %"class.std::__cxx11::basic_string", align 8
  %388 = alloca %"class.std::__cxx11::basic_string", align 8
  %389 = alloca %"class.std::__cxx11::basic_string", align 8
  %390 = alloca %"class.std::__cxx11::basic_string", align 8
  %391 = alloca %"class.std::allocator", align 1
  %392 = alloca %"class.std::__cxx11::basic_string", align 8
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::allocator", align 1
  %395 = alloca %"class.std::__cxx11::basic_string", align 8
  %396 = alloca %"class.std::__cxx11::basic_string", align 8
  %397 = alloca %"class.std::allocator", align 1
  %398 = alloca %"class.std::__cxx11::basic_string", align 8
  %399 = alloca %"class.std::allocator", align 1
  %400 = alloca %"class.std::__cxx11::basic_string", align 8
  %401 = alloca %"class.std::allocator", align 1
  %402 = alloca %"class.std::__cxx11::basic_string", align 8
  %403 = alloca %"class.std::__cxx11::basic_string", align 8
  %404 = alloca %"class.std::__cxx11::basic_string", align 8
  %405 = alloca %"class.std::__cxx11::basic_string", align 8
  %406 = alloca %"class.std::__cxx11::basic_string", align 8
  %407 = alloca %"class.std::allocator", align 1
  %408 = alloca %"class.std::__cxx11::basic_string", align 8
  %409 = alloca %"class.std::__cxx11::basic_string", align 8
  %410 = alloca %"class.std::allocator", align 1
  %411 = alloca %"class.std::__cxx11::basic_string", align 8
  %412 = alloca %"class.std::__cxx11::basic_string", align 8
  %413 = alloca %"class.std::allocator", align 1
  %414 = alloca %"class.lodepng::State", align 8
  %415 = alloca i32, align 4
  %416 = alloca i32, align 4
  %417 = alloca %"class.std::vector", align 8
  %418 = alloca i32, align 4
  %419 = alloca %"class.std::__cxx11::basic_string", align 8
  %420 = alloca %"class.std::__cxx11::basic_string", align 8
  %421 = alloca %"class.std::__cxx11::basic_string", align 8
  %422 = alloca %"class.std::allocator", align 1
  %423 = alloca %"class.std::__cxx11::basic_string", align 8
  %424 = alloca %"class.std::__cxx11::basic_string", align 8
  %425 = alloca %"class.std::allocator", align 1
  %426 = alloca %"class.std::allocator", align 1
  %427 = alloca i1, align 1
  %428 = alloca i1, align 1
  %429 = alloca %"class.std::__cxx11::basic_string", align 8
  %430 = alloca i1, align 1
  %431 = alloca %"class.std::allocator", align 1
  %432 = alloca i1, align 1
  %433 = alloca i1, align 1
  %434 = alloca i1, align 1
  %435 = alloca %"class.std::__cxx11::basic_string", align 8
  %436 = alloca %"class.std::__cxx11::basic_string", align 8
  %437 = alloca %"class.std::__cxx11::basic_string", align 8
  %438 = alloca %"class.std::__cxx11::basic_string", align 8
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.std::allocator", align 1
  %441 = alloca %"class.std::__cxx11::basic_string", align 8
  %442 = alloca i32, align 4
  %443 = alloca %"class.std::__cxx11::basic_string", align 8
  %444 = alloca %"class.std::__cxx11::basic_string", align 8
  %445 = alloca %"class.std::__cxx11::basic_string", align 8
  %446 = alloca %"class.std::__cxx11::basic_string", align 8
  %447 = alloca %"class.std::__cxx11::basic_string", align 8
  %448 = alloca %"class.std::__cxx11::basic_string", align 8
  %449 = alloca %"class.std::allocator", align 1
  %450 = alloca %"class.std::__cxx11::basic_string", align 8
  %451 = alloca i32, align 4
  %452 = alloca %"class.std::__cxx11::basic_string", align 8
  %453 = alloca %"class.std::__cxx11::basic_string", align 8
  %454 = alloca %"class.std::__cxx11::basic_string", align 8
  %455 = alloca %"class.std::__cxx11::basic_string", align 8
  %456 = alloca %"class.std::__cxx11::basic_string", align 8
  %457 = alloca %"class.std::__cxx11::basic_string", align 8
  %458 = alloca %"class.std::allocator", align 1
  %459 = alloca %"class.std::__cxx11::basic_string", align 8
  %460 = alloca i32, align 4
  %461 = alloca %"class.std::__cxx11::basic_string", align 8
  %462 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.187)
  %463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %462, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 24, ptr %1) #7
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  invoke void @_Z16createComplexPNGRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %464 unwind label %527

464:                                              ; preds = %0
  call void @llvm.lifetime.start.p0(i64 512, ptr %4) #7
  invoke void @_ZN7lodepng5StateC1Ev(ptr noundef nonnull align 8 dereferenceable(508) %4)
          to label %465 unwind label %531

465:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %466 = getelementptr inbounds %struct.LodePNGState, ptr %4, i32 0, i32 4
  store ptr %466, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #7
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  %467 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 0) #7
  %468 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %469 = invoke noundef i32 @_ZN7lodepng6decodeERSt6vectorIhSaIhEERjS4_RNS_5StateEPKhm(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 4 dereferenceable(4) %6, ptr noundef nonnull align 4 dereferenceable(4) %7, ptr noundef nonnull align 8 dereferenceable(508) %4, ptr noundef %467, i64 noundef %468)
          to label %470 unwind label %535

470:                                              ; preds = %465
  store i32 %469, ptr %9, align 4, !tbaa !9
  %471 = load i32, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %472 unwind label %539

472:                                              ; preds = %470
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.188)
          to label %473 unwind label %543

473:                                              ; preds = %472
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  store i1 false, ptr %18, align 1
  store i1 false, ptr %19, align 1
  store i1 false, ptr %21, align 1
  store i1 false, ptr %23, align 1
  store i1 false, ptr %24, align 1
  store i1 false, ptr %25, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %474 unwind label %547

474:                                              ; preds = %473
  %475 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br i1 %475, label %476, label %478

476:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #7
  store i1 true, ptr %18, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  store i1 true, ptr %19, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %477 unwind label %551

477:                                              ; preds = %476
  br label %481

478:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #7
  store i1 true, ptr %21, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #7
  store i1 true, ptr %23, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  store i1 true, ptr %24, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %479 unwind label %555

479:                                              ; preds = %478
  store i1 true, ptr %25, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef @.str.3, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %480 unwind label %559

480:                                              ; preds = %479
  br label %481

481:                                              ; preds = %480, %477
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %482 unwind label %563

482:                                              ; preds = %481
  invoke void @_Z16assertNoPNGErrorjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %471, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %483 unwind label %567

483:                                              ; preds = %482
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  %484 = load i1, ptr %25, align 1
  br i1 %484, label %485, label %486

485:                                              ; preds = %483
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %486

486:                                              ; preds = %485, %483
  %487 = load i1, ptr %24, align 1
  br i1 %487, label %488, label %489

488:                                              ; preds = %486
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  br label %489

489:                                              ; preds = %488, %486
  %490 = load i1, ptr %23, align 1
  br i1 %490, label %491, label %492

491:                                              ; preds = %489
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #7
  br label %492

492:                                              ; preds = %491, %489
  %493 = load i1, ptr %21, align 1
  br i1 %493, label %494, label %495

494:                                              ; preds = %492
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  br label %495

495:                                              ; preds = %494, %492
  %496 = load i1, ptr %19, align 1
  br i1 %496, label %497, label %498

497:                                              ; preds = %495
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  br label %498

498:                                              ; preds = %497, %495
  %499 = load i1, ptr %18, align 1
  br i1 %499, label %500, label %501

500:                                              ; preds = %498
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  br label %501

501:                                              ; preds = %500, %498
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  %502 = load i32, ptr %6, align 4, !tbaa !9
  %503 = icmp ne i32 16, %502
  br i1 %503, label %504, label %644

504:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %505 unwind label %596

505:                                              ; preds = %504
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.189)
          to label %506 unwind label %600

506:                                              ; preds = %505
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.3)
          to label %507 unwind label %604

507:                                              ; preds = %506
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.190)
          to label %508 unwind label %608

508:                                              ; preds = %507
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.18)
          to label %509 unwind label %612

509:                                              ; preds = %508
  %510 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %511 unwind label %616

511:                                              ; preds = %509
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  %512 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %513 unwind label %535

513:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  store i32 16, ptr %33, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %514 unwind label %625

514:                                              ; preds = %513
  %515 = 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) %512, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %516 unwind label %629

516:                                              ; preds = %514
  %517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %515, ptr noundef @.str.20)
          to label %518 unwind label %629

518:                                              ; preds = %516
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %519 unwind label %633

519:                                              ; preds = %518
  %520 = 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) %517, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %521 unwind label %637

521:                                              ; preds = %519
  %522 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %520, ptr noundef @.str.21)
          to label %523 unwind label %637

523:                                              ; preds = %521
  %524 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %522, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %525 unwind label %637

525:                                              ; preds = %523
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  invoke void @_Z4failv()
          to label %526 unwind label %535

526:                                              ; preds = %525
  br label %644

527:                                              ; preds = %0
  %528 = landingpad { ptr, i32 }
          cleanup
  %529 = extractvalue { ptr, i32 } %528, 0
  store ptr %529, ptr %2, align 8
  %530 = extractvalue { ptr, i32 } %528, 1
  store i32 %530, ptr %3, align 4
  br label %3820

531:                                              ; preds = %464
  %532 = landingpad { ptr, i32 }
          cleanup
  %533 = extractvalue { ptr, i32 } %532, 0
  store ptr %533, ptr %2, align 8
  %534 = extractvalue { ptr, i32 } %532, 1
  store i32 %534, ptr %3, align 4
  br label %3545

535:                                              ; preds = %1694, %1678, %1616, %1600, %1538, %1522, %1460, %1444, %1382, %1365, %1302, %1285, %1222, %1205, %1142, %1125, %1062, %1045, %982, %965, %902, %886, %824, %808, %746, %730, %668, %654, %525, %511, %465
  %536 = landingpad { ptr, i32 }
          cleanup
  %537 = extractvalue { ptr, i32 } %536, 0
  store ptr %537, ptr %2, align 8
  %538 = extractvalue { ptr, i32 } %536, 1
  store i32 %538, ptr %3, align 4
  br label %3544

539:                                              ; preds = %470
  %540 = landingpad { ptr, i32 }
          cleanup
  %541 = extractvalue { ptr, i32 } %540, 0
  store ptr %541, ptr %2, align 8
  %542 = extractvalue { ptr, i32 } %540, 1
  store i32 %542, ptr %3, align 4
  br label %595

543:                                              ; preds = %472
  %544 = landingpad { ptr, i32 }
          cleanup
  %545 = extractvalue { ptr, i32 } %544, 0
  store ptr %545, ptr %2, align 8
  %546 = extractvalue { ptr, i32 } %544, 1
  store i32 %546, ptr %3, align 4
  br label %594

547:                                              ; preds = %473
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %2, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %3, align 4
  br label %593

551:                                              ; preds = %476
  %552 = landingpad { ptr, i32 }
          cleanup
  %553 = extractvalue { ptr, i32 } %552, 0
  store ptr %553, ptr %2, align 8
  %554 = extractvalue { ptr, i32 } %552, 1
  store i32 %554, ptr %3, align 4
  br label %586

555:                                              ; preds = %478
  %556 = landingpad { ptr, i32 }
          cleanup
  %557 = extractvalue { ptr, i32 } %556, 0
  store ptr %557, ptr %2, align 8
  %558 = extractvalue { ptr, i32 } %556, 1
  store i32 %558, ptr %3, align 4
  br label %576

559:                                              ; preds = %479
  %560 = landingpad { ptr, i32 }
          cleanup
  %561 = extractvalue { ptr, i32 } %560, 0
  store ptr %561, ptr %2, align 8
  %562 = extractvalue { ptr, i32 } %560, 1
  store i32 %562, ptr %3, align 4
  br label %572

563:                                              ; preds = %481
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %2, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %3, align 4
  br label %571

567:                                              ; preds = %482
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %2, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %571

571:                                              ; preds = %567, %563
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %572

572:                                              ; preds = %571, %559
  %573 = load i1, ptr %25, align 1
  br i1 %573, label %574, label %575

574:                                              ; preds = %572
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %575

575:                                              ; preds = %574, %572
  br label %576

576:                                              ; preds = %575, %555
  %577 = load i1, ptr %24, align 1
  br i1 %577, label %578, label %579

578:                                              ; preds = %576
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  br label %579

579:                                              ; preds = %578, %576
  %580 = load i1, ptr %23, align 1
  br i1 %580, label %581, label %582

581:                                              ; preds = %579
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #7
  br label %582

582:                                              ; preds = %581, %579
  %583 = load i1, ptr %21, align 1
  br i1 %583, label %584, label %585

584:                                              ; preds = %582
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  br label %585

585:                                              ; preds = %584, %582
  br label %586

586:                                              ; preds = %585, %551
  %587 = load i1, ptr %19, align 1
  br i1 %587, label %588, label %589

588:                                              ; preds = %586
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  br label %589

589:                                              ; preds = %588, %586
  %590 = load i1, ptr %18, align 1
  br i1 %590, label %591, label %592

591:                                              ; preds = %589
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #7
  br label %592

592:                                              ; preds = %591, %589
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %593

593:                                              ; preds = %592, %547
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %594

594:                                              ; preds = %593, %543
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %595

595:                                              ; preds = %594, %539
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  br label %3544

596:                                              ; preds = %504
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %2, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %3, align 4
  br label %624

600:                                              ; preds = %505
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %2, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %3, align 4
  br label %623

604:                                              ; preds = %506
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %2, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %3, align 4
  br label %622

608:                                              ; preds = %507
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %2, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %3, align 4
  br label %621

612:                                              ; preds = %508
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %2, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %3, align 4
  br label %620

616:                                              ; preds = %509
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %2, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %620

620:                                              ; preds = %616, %612
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %621

621:                                              ; preds = %620, %608
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %622

622:                                              ; preds = %621, %604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %623

623:                                              ; preds = %622, %600
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %624

624:                                              ; preds = %623, %596
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #7
  br label %3544

625:                                              ; preds = %513
  %626 = landingpad { ptr, i32 }
          cleanup
  %627 = extractvalue { ptr, i32 } %626, 0
  store ptr %627, ptr %2, align 8
  %628 = extractvalue { ptr, i32 } %626, 1
  store i32 %628, ptr %3, align 4
  br label %643

629:                                              ; preds = %516, %514
  %630 = landingpad { ptr, i32 }
          cleanup
  %631 = extractvalue { ptr, i32 } %630, 0
  store ptr %631, ptr %2, align 8
  %632 = extractvalue { ptr, i32 } %630, 1
  store i32 %632, ptr %3, align 4
  br label %642

633:                                              ; preds = %518
  %634 = landingpad { ptr, i32 }
          cleanup
  %635 = extractvalue { ptr, i32 } %634, 0
  store ptr %635, ptr %2, align 8
  %636 = extractvalue { ptr, i32 } %634, 1
  store i32 %636, ptr %3, align 4
  br label %641

637:                                              ; preds = %523, %521, %519
  %638 = landingpad { ptr, i32 }
          cleanup
  %639 = extractvalue { ptr, i32 } %638, 0
  store ptr %639, ptr %2, align 8
  %640 = extractvalue { ptr, i32 } %638, 1
  store i32 %640, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %641

641:                                              ; preds = %637, %633
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  br label %642

642:                                              ; preds = %641, %629
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  br label %643

643:                                              ; preds = %642, %625
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #7
  br label %3544

644:                                              ; preds = %526, %501
  %645 = load i32, ptr %7, align 4, !tbaa !9
  %646 = icmp ne i32 17, %645
  br i1 %646, label %647, label %718

647:                                              ; preds = %644
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %648 unwind label %670

648:                                              ; preds = %647
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.191)
          to label %649 unwind label %674

649:                                              ; preds = %648
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.3)
          to label %650 unwind label %678

650:                                              ; preds = %649
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.192)
          to label %651 unwind label %682

651:                                              ; preds = %650
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.18)
          to label %652 unwind label %686

652:                                              ; preds = %651
  %653 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %654 unwind label %690

654:                                              ; preds = %652
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  %655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %656 unwind label %535

656:                                              ; preds = %654
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  store i32 17, ptr %42, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %657 unwind label %699

657:                                              ; preds = %656
  %658 = 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) %655, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %659 unwind label %703

659:                                              ; preds = %657
  %660 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %658, ptr noundef @.str.20)
          to label %661 unwind label %703

661:                                              ; preds = %659
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %662 unwind label %707

662:                                              ; preds = %661
  %663 = 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) %660, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %664 unwind label %711

664:                                              ; preds = %662
  %665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %663, ptr noundef @.str.21)
          to label %666 unwind label %711

666:                                              ; preds = %664
  %667 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %665, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %668 unwind label %711

668:                                              ; preds = %666
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  invoke void @_Z4failv()
          to label %669 unwind label %535

669:                                              ; preds = %668
  br label %718

670:                                              ; preds = %647
  %671 = landingpad { ptr, i32 }
          cleanup
  %672 = extractvalue { ptr, i32 } %671, 0
  store ptr %672, ptr %2, align 8
  %673 = extractvalue { ptr, i32 } %671, 1
  store i32 %673, ptr %3, align 4
  br label %698

674:                                              ; preds = %648
  %675 = landingpad { ptr, i32 }
          cleanup
  %676 = extractvalue { ptr, i32 } %675, 0
  store ptr %676, ptr %2, align 8
  %677 = extractvalue { ptr, i32 } %675, 1
  store i32 %677, ptr %3, align 4
  br label %697

678:                                              ; preds = %649
  %679 = landingpad { ptr, i32 }
          cleanup
  %680 = extractvalue { ptr, i32 } %679, 0
  store ptr %680, ptr %2, align 8
  %681 = extractvalue { ptr, i32 } %679, 1
  store i32 %681, ptr %3, align 4
  br label %696

682:                                              ; preds = %650
  %683 = landingpad { ptr, i32 }
          cleanup
  %684 = extractvalue { ptr, i32 } %683, 0
  store ptr %684, ptr %2, align 8
  %685 = extractvalue { ptr, i32 } %683, 1
  store i32 %685, ptr %3, align 4
  br label %695

686:                                              ; preds = %651
  %687 = landingpad { ptr, i32 }
          cleanup
  %688 = extractvalue { ptr, i32 } %687, 0
  store ptr %688, ptr %2, align 8
  %689 = extractvalue { ptr, i32 } %687, 1
  store i32 %689, ptr %3, align 4
  br label %694

690:                                              ; preds = %652
  %691 = landingpad { ptr, i32 }
          cleanup
  %692 = extractvalue { ptr, i32 } %691, 0
  store ptr %692, ptr %2, align 8
  %693 = extractvalue { ptr, i32 } %691, 1
  store i32 %693, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %694

694:                                              ; preds = %690, %686
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %695

695:                                              ; preds = %694, %682
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %696

696:                                              ; preds = %695, %678
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %697

697:                                              ; preds = %696, %674
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %698

698:                                              ; preds = %697, %670
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  br label %3544

699:                                              ; preds = %656
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %2, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %3, align 4
  br label %717

703:                                              ; preds = %659, %657
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %2, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %3, align 4
  br label %716

707:                                              ; preds = %661
  %708 = landingpad { ptr, i32 }
          cleanup
  %709 = extractvalue { ptr, i32 } %708, 0
  store ptr %709, ptr %2, align 8
  %710 = extractvalue { ptr, i32 } %708, 1
  store i32 %710, ptr %3, align 4
  br label %715

711:                                              ; preds = %666, %664, %662
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %2, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %715

715:                                              ; preds = %711, %707
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #7
  br label %716

716:                                              ; preds = %715, %703
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %717

717:                                              ; preds = %716, %699
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  br label %3544

718:                                              ; preds = %669, %644
  %719 = load ptr, ptr %5, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.LodePNGInfo, ptr %719, i32 0, i32 4
  %721 = load i32, ptr %720, align 8, !tbaa !11
  %722 = icmp ne i32 1, %721
  br i1 %722, label %723, label %796

723:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %724 unwind label %748

724:                                              ; preds = %723
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef @.str.193)
          to label %725 unwind label %752

725:                                              ; preds = %724
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.3)
          to label %726 unwind label %756

726:                                              ; preds = %725
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.194)
          to label %727 unwind label %760

727:                                              ; preds = %726
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.18)
          to label %728 unwind label %764

728:                                              ; preds = %727
  %729 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %730 unwind label %768

730:                                              ; preds = %728
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  %731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %732 unwind label %535

732:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #7
  store i32 1, ptr %51, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %733 unwind label %777

733:                                              ; preds = %732
  %734 = 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) %731, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %735 unwind label %781

735:                                              ; preds = %733
  %736 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %734, ptr noundef @.str.20)
          to label %737 unwind label %781

737:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #7
  %738 = load ptr, ptr %5, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.LodePNGInfo, ptr %738, i32 0, i32 4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 4 dereferenceable(4) %739)
          to label %740 unwind label %785

740:                                              ; preds = %737
  %741 = 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) %736, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %742 unwind label %789

742:                                              ; preds = %740
  %743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %741, ptr noundef @.str.21)
          to label %744 unwind label %789

744:                                              ; preds = %742
  %745 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %743, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %746 unwind label %789

746:                                              ; preds = %744
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  invoke void @_Z4failv()
          to label %747 unwind label %535

747:                                              ; preds = %746
  br label %796

748:                                              ; preds = %723
  %749 = landingpad { ptr, i32 }
          cleanup
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %2, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %3, align 4
  br label %776

752:                                              ; preds = %724
  %753 = landingpad { ptr, i32 }
          cleanup
  %754 = extractvalue { ptr, i32 } %753, 0
  store ptr %754, ptr %2, align 8
  %755 = extractvalue { ptr, i32 } %753, 1
  store i32 %755, ptr %3, align 4
  br label %775

756:                                              ; preds = %725
  %757 = landingpad { ptr, i32 }
          cleanup
  %758 = extractvalue { ptr, i32 } %757, 0
  store ptr %758, ptr %2, align 8
  %759 = extractvalue { ptr, i32 } %757, 1
  store i32 %759, ptr %3, align 4
  br label %774

760:                                              ; preds = %726
  %761 = landingpad { ptr, i32 }
          cleanup
  %762 = extractvalue { ptr, i32 } %761, 0
  store ptr %762, ptr %2, align 8
  %763 = extractvalue { ptr, i32 } %761, 1
  store i32 %763, ptr %3, align 4
  br label %773

764:                                              ; preds = %727
  %765 = landingpad { ptr, i32 }
          cleanup
  %766 = extractvalue { ptr, i32 } %765, 0
  store ptr %766, ptr %2, align 8
  %767 = extractvalue { ptr, i32 } %765, 1
  store i32 %767, ptr %3, align 4
  br label %772

768:                                              ; preds = %728
  %769 = landingpad { ptr, i32 }
          cleanup
  %770 = extractvalue { ptr, i32 } %769, 0
  store ptr %770, ptr %2, align 8
  %771 = extractvalue { ptr, i32 } %769, 1
  store i32 %771, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %772

772:                                              ; preds = %768, %764
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %773

773:                                              ; preds = %772, %760
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %774

774:                                              ; preds = %773, %756
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %775

775:                                              ; preds = %774, %752
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  br label %776

776:                                              ; preds = %775, %748
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  br label %3544

777:                                              ; preds = %732
  %778 = landingpad { ptr, i32 }
          cleanup
  %779 = extractvalue { ptr, i32 } %778, 0
  store ptr %779, ptr %2, align 8
  %780 = extractvalue { ptr, i32 } %778, 1
  store i32 %780, ptr %3, align 4
  br label %795

781:                                              ; preds = %735, %733
  %782 = landingpad { ptr, i32 }
          cleanup
  %783 = extractvalue { ptr, i32 } %782, 0
  store ptr %783, ptr %2, align 8
  %784 = extractvalue { ptr, i32 } %782, 1
  store i32 %784, ptr %3, align 4
  br label %794

785:                                              ; preds = %737
  %786 = landingpad { ptr, i32 }
          cleanup
  %787 = extractvalue { ptr, i32 } %786, 0
  store ptr %787, ptr %2, align 8
  %788 = extractvalue { ptr, i32 } %786, 1
  store i32 %788, ptr %3, align 4
  br label %793

789:                                              ; preds = %744, %742, %740
  %790 = landingpad { ptr, i32 }
          cleanup
  %791 = extractvalue { ptr, i32 } %790, 0
  store ptr %791, ptr %2, align 8
  %792 = extractvalue { ptr, i32 } %790, 1
  store i32 %792, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %793

793:                                              ; preds = %789, %785
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  br label %794

794:                                              ; preds = %793, %781
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %795

795:                                              ; preds = %794, %777
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  br label %3544

796:                                              ; preds = %747, %718
  %797 = load ptr, ptr %5, align 8, !tbaa !5
  %798 = getelementptr inbounds %struct.LodePNGInfo, ptr %797, i32 0, i32 5
  %799 = load i32, ptr %798, align 4, !tbaa !17
  %800 = icmp ne i32 127, %799
  br i1 %800, label %801, label %874

801:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %802 unwind label %826

802:                                              ; preds = %801
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.195)
          to label %803 unwind label %830

803:                                              ; preds = %802
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.3)
          to label %804 unwind label %834

804:                                              ; preds = %803
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.196)
          to label %805 unwind label %838

805:                                              ; preds = %804
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef @.str.18)
          to label %806 unwind label %842

806:                                              ; preds = %805
  %807 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %808 unwind label %846

808:                                              ; preds = %806
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #7
  %809 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %810 unwind label %535

810:                                              ; preds = %808
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  store i32 127, ptr %60, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %811 unwind label %855

811:                                              ; preds = %810
  %812 = 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) %809, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %813 unwind label %859

813:                                              ; preds = %811
  %814 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %812, ptr noundef @.str.20)
          to label %815 unwind label %859

815:                                              ; preds = %813
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #7
  %816 = load ptr, ptr %5, align 8, !tbaa !5
  %817 = getelementptr inbounds %struct.LodePNGInfo, ptr %816, i32 0, i32 5
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 4 dereferenceable(4) %817)
          to label %818 unwind label %863

818:                                              ; preds = %815
  %819 = 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) %814, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %820 unwind label %867

820:                                              ; preds = %818
  %821 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %819, ptr noundef @.str.21)
          to label %822 unwind label %867

822:                                              ; preds = %820
  %823 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %821, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %824 unwind label %867

824:                                              ; preds = %822
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #7
  invoke void @_Z4failv()
          to label %825 unwind label %535

825:                                              ; preds = %824
  br label %874

826:                                              ; preds = %801
  %827 = landingpad { ptr, i32 }
          cleanup
  %828 = extractvalue { ptr, i32 } %827, 0
  store ptr %828, ptr %2, align 8
  %829 = extractvalue { ptr, i32 } %827, 1
  store i32 %829, ptr %3, align 4
  br label %854

830:                                              ; preds = %802
  %831 = landingpad { ptr, i32 }
          cleanup
  %832 = extractvalue { ptr, i32 } %831, 0
  store ptr %832, ptr %2, align 8
  %833 = extractvalue { ptr, i32 } %831, 1
  store i32 %833, ptr %3, align 4
  br label %853

834:                                              ; preds = %803
  %835 = landingpad { ptr, i32 }
          cleanup
  %836 = extractvalue { ptr, i32 } %835, 0
  store ptr %836, ptr %2, align 8
  %837 = extractvalue { ptr, i32 } %835, 1
  store i32 %837, ptr %3, align 4
  br label %852

838:                                              ; preds = %804
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %2, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %3, align 4
  br label %851

842:                                              ; preds = %805
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %2, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %3, align 4
  br label %850

846:                                              ; preds = %806
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %2, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %850

850:                                              ; preds = %846, %842
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %851

851:                                              ; preds = %850, %838
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %852

852:                                              ; preds = %851, %834
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %853

853:                                              ; preds = %852, %830
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %854

854:                                              ; preds = %853, %826
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #7
  br label %3544

855:                                              ; preds = %810
  %856 = landingpad { ptr, i32 }
          cleanup
  %857 = extractvalue { ptr, i32 } %856, 0
  store ptr %857, ptr %2, align 8
  %858 = extractvalue { ptr, i32 } %856, 1
  store i32 %858, ptr %3, align 4
  br label %873

859:                                              ; preds = %813, %811
  %860 = landingpad { ptr, i32 }
          cleanup
  %861 = extractvalue { ptr, i32 } %860, 0
  store ptr %861, ptr %2, align 8
  %862 = extractvalue { ptr, i32 } %860, 1
  store i32 %862, ptr %3, align 4
  br label %872

863:                                              ; preds = %815
  %864 = landingpad { ptr, i32 }
          cleanup
  %865 = extractvalue { ptr, i32 } %864, 0
  store ptr %865, ptr %2, align 8
  %866 = extractvalue { ptr, i32 } %864, 1
  store i32 %866, ptr %3, align 4
  br label %871

867:                                              ; preds = %822, %820, %818
  %868 = landingpad { ptr, i32 }
          cleanup
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %2, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %871

871:                                              ; preds = %867, %863
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  br label %872

872:                                              ; preds = %871, %859
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %873

873:                                              ; preds = %872, %855
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #7
  br label %3544

874:                                              ; preds = %825, %796
  %875 = load ptr, ptr %5, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.LodePNGInfo, ptr %875, i32 0, i32 16
  %877 = load i32, ptr %876, align 8, !tbaa !18
  %878 = icmp ne i32 1, %877
  br i1 %878, label %879, label %952

879:                                              ; preds = %874
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %880 unwind label %904

880:                                              ; preds = %879
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.197)
          to label %881 unwind label %908

881:                                              ; preds = %880
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.3)
          to label %882 unwind label %912

882:                                              ; preds = %881
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef @.str.198)
          to label %883 unwind label %916

883:                                              ; preds = %882
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.18)
          to label %884 unwind label %920

884:                                              ; preds = %883
  %885 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %886 unwind label %924

886:                                              ; preds = %884
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  %887 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %888 unwind label %535

888:                                              ; preds = %886
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #7
  store i32 1, ptr %69, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 4 dereferenceable(4) %69)
          to label %889 unwind label %933

889:                                              ; preds = %888
  %890 = 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) %887, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %891 unwind label %937

891:                                              ; preds = %889
  %892 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %890, ptr noundef @.str.20)
          to label %893 unwind label %937

893:                                              ; preds = %891
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #7
  %894 = load ptr, ptr %5, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.LodePNGInfo, ptr %894, i32 0, i32 16
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 4 dereferenceable(4) %895)
          to label %896 unwind label %941

896:                                              ; preds = %893
  %897 = 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) %892, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %898 unwind label %945

898:                                              ; preds = %896
  %899 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %897, ptr noundef @.str.21)
          to label %900 unwind label %945

900:                                              ; preds = %898
  %901 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %899, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %902 unwind label %945

902:                                              ; preds = %900
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  invoke void @_Z4failv()
          to label %903 unwind label %535

903:                                              ; preds = %902
  br label %952

904:                                              ; preds = %879
  %905 = landingpad { ptr, i32 }
          cleanup
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %2, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %3, align 4
  br label %932

908:                                              ; preds = %880
  %909 = landingpad { ptr, i32 }
          cleanup
  %910 = extractvalue { ptr, i32 } %909, 0
  store ptr %910, ptr %2, align 8
  %911 = extractvalue { ptr, i32 } %909, 1
  store i32 %911, ptr %3, align 4
  br label %931

912:                                              ; preds = %881
  %913 = landingpad { ptr, i32 }
          cleanup
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %2, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %3, align 4
  br label %930

916:                                              ; preds = %882
  %917 = landingpad { ptr, i32 }
          cleanup
  %918 = extractvalue { ptr, i32 } %917, 0
  store ptr %918, ptr %2, align 8
  %919 = extractvalue { ptr, i32 } %917, 1
  store i32 %919, ptr %3, align 4
  br label %929

920:                                              ; preds = %883
  %921 = landingpad { ptr, i32 }
          cleanup
  %922 = extractvalue { ptr, i32 } %921, 0
  store ptr %922, ptr %2, align 8
  %923 = extractvalue { ptr, i32 } %921, 1
  store i32 %923, ptr %3, align 4
  br label %928

924:                                              ; preds = %884
  %925 = landingpad { ptr, i32 }
          cleanup
  %926 = extractvalue { ptr, i32 } %925, 0
  store ptr %926, ptr %2, align 8
  %927 = extractvalue { ptr, i32 } %925, 1
  store i32 %927, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %928

928:                                              ; preds = %924, %920
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %929

929:                                              ; preds = %928, %916
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %930

930:                                              ; preds = %929, %912
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %931

931:                                              ; preds = %930, %908
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %932

932:                                              ; preds = %931, %904
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %3544

933:                                              ; preds = %888
  %934 = landingpad { ptr, i32 }
          cleanup
  %935 = extractvalue { ptr, i32 } %934, 0
  store ptr %935, ptr %2, align 8
  %936 = extractvalue { ptr, i32 } %934, 1
  store i32 %936, ptr %3, align 4
  br label %951

937:                                              ; preds = %891, %889
  %938 = landingpad { ptr, i32 }
          cleanup
  %939 = extractvalue { ptr, i32 } %938, 0
  store ptr %939, ptr %2, align 8
  %940 = extractvalue { ptr, i32 } %938, 1
  store i32 %940, ptr %3, align 4
  br label %950

941:                                              ; preds = %893
  %942 = landingpad { ptr, i32 }
          cleanup
  %943 = extractvalue { ptr, i32 } %942, 0
  store ptr %943, ptr %2, align 8
  %944 = extractvalue { ptr, i32 } %942, 1
  store i32 %944, ptr %3, align 4
  br label %949

945:                                              ; preds = %900, %898, %896
  %946 = landingpad { ptr, i32 }
          cleanup
  %947 = extractvalue { ptr, i32 } %946, 0
  store ptr %947, ptr %2, align 8
  %948 = extractvalue { ptr, i32 } %946, 1
  store i32 %948, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %949

949:                                              ; preds = %945, %941
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %950

950:                                              ; preds = %949, %937
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %951

951:                                              ; preds = %950, %933
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  br label %3544

952:                                              ; preds = %903, %874
  %953 = load ptr, ptr %5, align 8, !tbaa !5
  %954 = getelementptr inbounds %struct.LodePNGInfo, ptr %953, i32 0, i32 17
  %955 = getelementptr inbounds %struct.LodePNGTime, ptr %954, i32 0, i32 0
  %956 = load i32, ptr %955, align 4, !tbaa !19
  %957 = icmp ne i32 2012, %956
  br i1 %957, label %958, label %1032

958:                                              ; preds = %952
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %959 unwind label %984

959:                                              ; preds = %958
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.199)
          to label %960 unwind label %988

960:                                              ; preds = %959
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef @.str.3)
          to label %961 unwind label %992

961:                                              ; preds = %960
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.200)
          to label %962 unwind label %996

962:                                              ; preds = %961
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str.18)
          to label %963 unwind label %1000

963:                                              ; preds = %962
  %964 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %965 unwind label %1004

965:                                              ; preds = %963
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  %966 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %967 unwind label %535

967:                                              ; preds = %965
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #7
  store i32 2012, ptr %78, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 4 dereferenceable(4) %78)
          to label %968 unwind label %1013

968:                                              ; preds = %967
  %969 = 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) %966, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %970 unwind label %1017

970:                                              ; preds = %968
  %971 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %969, ptr noundef @.str.20)
          to label %972 unwind label %1017

972:                                              ; preds = %970
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #7
  %973 = load ptr, ptr %5, align 8, !tbaa !5
  %974 = getelementptr inbounds %struct.LodePNGInfo, ptr %973, i32 0, i32 17
  %975 = getelementptr inbounds %struct.LodePNGTime, ptr %974, i32 0, i32 0
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 4 dereferenceable(4) %975)
          to label %976 unwind label %1021

976:                                              ; preds = %972
  %977 = 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) %971, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %978 unwind label %1025

978:                                              ; preds = %976
  %979 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %977, ptr noundef @.str.21)
          to label %980 unwind label %1025

980:                                              ; preds = %978
  %981 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %979, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %982 unwind label %1025

982:                                              ; preds = %980
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #7
  invoke void @_Z4failv()
          to label %983 unwind label %535

983:                                              ; preds = %982
  br label %1032

984:                                              ; preds = %958
  %985 = landingpad { ptr, i32 }
          cleanup
  %986 = extractvalue { ptr, i32 } %985, 0
  store ptr %986, ptr %2, align 8
  %987 = extractvalue { ptr, i32 } %985, 1
  store i32 %987, ptr %3, align 4
  br label %1012

988:                                              ; preds = %959
  %989 = landingpad { ptr, i32 }
          cleanup
  %990 = extractvalue { ptr, i32 } %989, 0
  store ptr %990, ptr %2, align 8
  %991 = extractvalue { ptr, i32 } %989, 1
  store i32 %991, ptr %3, align 4
  br label %1011

992:                                              ; preds = %960
  %993 = landingpad { ptr, i32 }
          cleanup
  %994 = extractvalue { ptr, i32 } %993, 0
  store ptr %994, ptr %2, align 8
  %995 = extractvalue { ptr, i32 } %993, 1
  store i32 %995, ptr %3, align 4
  br label %1010

996:                                              ; preds = %961
  %997 = landingpad { ptr, i32 }
          cleanup
  %998 = extractvalue { ptr, i32 } %997, 0
  store ptr %998, ptr %2, align 8
  %999 = extractvalue { ptr, i32 } %997, 1
  store i32 %999, ptr %3, align 4
  br label %1009

1000:                                             ; preds = %962
  %1001 = landingpad { ptr, i32 }
          cleanup
  %1002 = extractvalue { ptr, i32 } %1001, 0
  store ptr %1002, ptr %2, align 8
  %1003 = extractvalue { ptr, i32 } %1001, 1
  store i32 %1003, ptr %3, align 4
  br label %1008

1004:                                             ; preds = %963
  %1005 = landingpad { ptr, i32 }
          cleanup
  %1006 = extractvalue { ptr, i32 } %1005, 0
  store ptr %1006, ptr %2, align 8
  %1007 = extractvalue { ptr, i32 } %1005, 1
  store i32 %1007, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %1008

1008:                                             ; preds = %1004, %1000
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #7
  br label %1009

1009:                                             ; preds = %1008, %996
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %1010

1010:                                             ; preds = %1009, %992
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %1011

1011:                                             ; preds = %1010, %988
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %1012

1012:                                             ; preds = %1011, %984
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  br label %3544

1013:                                             ; preds = %967
  %1014 = landingpad { ptr, i32 }
          cleanup
  %1015 = extractvalue { ptr, i32 } %1014, 0
  store ptr %1015, ptr %2, align 8
  %1016 = extractvalue { ptr, i32 } %1014, 1
  store i32 %1016, ptr %3, align 4
  br label %1031

1017:                                             ; preds = %970, %968
  %1018 = landingpad { ptr, i32 }
          cleanup
  %1019 = extractvalue { ptr, i32 } %1018, 0
  store ptr %1019, ptr %2, align 8
  %1020 = extractvalue { ptr, i32 } %1018, 1
  store i32 %1020, ptr %3, align 4
  br label %1030

1021:                                             ; preds = %972
  %1022 = landingpad { ptr, i32 }
          cleanup
  %1023 = extractvalue { ptr, i32 } %1022, 0
  store ptr %1023, ptr %2, align 8
  %1024 = extractvalue { ptr, i32 } %1022, 1
  store i32 %1024, ptr %3, align 4
  br label %1029

1025:                                             ; preds = %980, %978, %976
  %1026 = landingpad { ptr, i32 }
          cleanup
  %1027 = extractvalue { ptr, i32 } %1026, 0
  store ptr %1027, ptr %2, align 8
  %1028 = extractvalue { ptr, i32 } %1026, 1
  store i32 %1028, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %1029

1029:                                             ; preds = %1025, %1021
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  br label %1030

1030:                                             ; preds = %1029, %1017
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %1031

1031:                                             ; preds = %1030, %1013
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #7
  br label %3544

1032:                                             ; preds = %983, %952
  %1033 = load ptr, ptr %5, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.LodePNGInfo, ptr %1033, i32 0, i32 17
  %1035 = getelementptr inbounds %struct.LodePNGTime, ptr %1034, i32 0, i32 1
  %1036 = load i32, ptr %1035, align 4, !tbaa !20
  %1037 = icmp ne i32 1, %1036
  br i1 %1037, label %1038, label %1112

1038:                                             ; preds = %1032
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %1039 unwind label %1064

1039:                                             ; preds = %1038
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.201)
          to label %1040 unwind label %1068

1040:                                             ; preds = %1039
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str.3)
          to label %1041 unwind label %1072

1041:                                             ; preds = %1040
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef @.str.202)
          to label %1042 unwind label %1076

1042:                                             ; preds = %1041
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.18)
          to label %1043 unwind label %1080

1043:                                             ; preds = %1042
  %1044 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %1045 unwind label %1084

1045:                                             ; preds = %1043
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #7
  %1046 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1047 unwind label %535

1047:                                             ; preds = %1045
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #7
  store i32 1, ptr %87, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 4 dereferenceable(4) %87)
          to label %1048 unwind label %1093

1048:                                             ; preds = %1047
  %1049 = 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) %1046, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1050 unwind label %1097

1050:                                             ; preds = %1048
  %1051 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1049, ptr noundef @.str.20)
          to label %1052 unwind label %1097

1052:                                             ; preds = %1050
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #7
  %1053 = load ptr, ptr %5, align 8, !tbaa !5
  %1054 = getelementptr inbounds %struct.LodePNGInfo, ptr %1053, i32 0, i32 17
  %1055 = getelementptr inbounds %struct.LodePNGTime, ptr %1054, i32 0, i32 1
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 4 dereferenceable(4) %1055)
          to label %1056 unwind label %1101

1056:                                             ; preds = %1052
  %1057 = 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) %1051, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %1058 unwind label %1105

1058:                                             ; preds = %1056
  %1059 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1057, ptr noundef @.str.21)
          to label %1060 unwind label %1105

1060:                                             ; preds = %1058
  %1061 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1059, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1062 unwind label %1105

1062:                                             ; preds = %1060
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  invoke void @_Z4failv()
          to label %1063 unwind label %535

1063:                                             ; preds = %1062
  br label %1112

1064:                                             ; preds = %1038
  %1065 = landingpad { ptr, i32 }
          cleanup
  %1066 = extractvalue { ptr, i32 } %1065, 0
  store ptr %1066, ptr %2, align 8
  %1067 = extractvalue { ptr, i32 } %1065, 1
  store i32 %1067, ptr %3, align 4
  br label %1092

1068:                                             ; preds = %1039
  %1069 = landingpad { ptr, i32 }
          cleanup
  %1070 = extractvalue { ptr, i32 } %1069, 0
  store ptr %1070, ptr %2, align 8
  %1071 = extractvalue { ptr, i32 } %1069, 1
  store i32 %1071, ptr %3, align 4
  br label %1091

1072:                                             ; preds = %1040
  %1073 = landingpad { ptr, i32 }
          cleanup
  %1074 = extractvalue { ptr, i32 } %1073, 0
  store ptr %1074, ptr %2, align 8
  %1075 = extractvalue { ptr, i32 } %1073, 1
  store i32 %1075, ptr %3, align 4
  br label %1090

1076:                                             ; preds = %1041
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %2, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %3, align 4
  br label %1089

1080:                                             ; preds = %1042
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %2, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %3, align 4
  br label %1088

1084:                                             ; preds = %1043
  %1085 = landingpad { ptr, i32 }
          cleanup
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %2, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  br label %1088

1088:                                             ; preds = %1084, %1080
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  br label %1089

1089:                                             ; preds = %1088, %1076
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %1090

1090:                                             ; preds = %1089, %1072
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %1091

1091:                                             ; preds = %1090, %1068
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %1092

1092:                                             ; preds = %1091, %1064
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #7
  br label %3544

1093:                                             ; preds = %1047
  %1094 = landingpad { ptr, i32 }
          cleanup
  %1095 = extractvalue { ptr, i32 } %1094, 0
  store ptr %1095, ptr %2, align 8
  %1096 = extractvalue { ptr, i32 } %1094, 1
  store i32 %1096, ptr %3, align 4
  br label %1111

1097:                                             ; preds = %1050, %1048
  %1098 = landingpad { ptr, i32 }
          cleanup
  %1099 = extractvalue { ptr, i32 } %1098, 0
  store ptr %1099, ptr %2, align 8
  %1100 = extractvalue { ptr, i32 } %1098, 1
  store i32 %1100, ptr %3, align 4
  br label %1110

1101:                                             ; preds = %1052
  %1102 = landingpad { ptr, i32 }
          cleanup
  %1103 = extractvalue { ptr, i32 } %1102, 0
  store ptr %1103, ptr %2, align 8
  %1104 = extractvalue { ptr, i32 } %1102, 1
  store i32 %1104, ptr %3, align 4
  br label %1109

1105:                                             ; preds = %1060, %1058, %1056
  %1106 = landingpad { ptr, i32 }
          cleanup
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %2, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  br label %1109

1109:                                             ; preds = %1105, %1101
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  br label %1110

1110:                                             ; preds = %1109, %1097
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  br label %1111

1111:                                             ; preds = %1110, %1093
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  br label %3544

1112:                                             ; preds = %1063, %1032
  %1113 = load ptr, ptr %5, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.LodePNGInfo, ptr %1113, i32 0, i32 17
  %1115 = getelementptr inbounds %struct.LodePNGTime, ptr %1114, i32 0, i32 2
  %1116 = load i32, ptr %1115, align 4, !tbaa !21
  %1117 = icmp ne i32 2, %1116
  br i1 %1117, label %1118, label %1192

1118:                                             ; preds = %1112
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %1119 unwind label %1144

1119:                                             ; preds = %1118
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.203)
          to label %1120 unwind label %1148

1120:                                             ; preds = %1119
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @.str.3)
          to label %1121 unwind label %1152

1121:                                             ; preds = %1120
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.204)
          to label %1122 unwind label %1156

1122:                                             ; preds = %1121
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @.str.18)
          to label %1123 unwind label %1160

1123:                                             ; preds = %1122
  %1124 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %1125 unwind label %1164

1125:                                             ; preds = %1123
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #7
  %1126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1127 unwind label %535

1127:                                             ; preds = %1125
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #7
  store i32 2, ptr %96, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 4 dereferenceable(4) %96)
          to label %1128 unwind label %1173

1128:                                             ; preds = %1127
  %1129 = 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) %1126, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %1130 unwind label %1177

1130:                                             ; preds = %1128
  %1131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1129, ptr noundef @.str.20)
          to label %1132 unwind label %1177

1132:                                             ; preds = %1130
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #7
  %1133 = load ptr, ptr %5, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.LodePNGInfo, ptr %1133, i32 0, i32 17
  %1135 = getelementptr inbounds %struct.LodePNGTime, ptr %1134, i32 0, i32 2
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 4 dereferenceable(4) %1135)
          to label %1136 unwind label %1181

1136:                                             ; preds = %1132
  %1137 = 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) %1131, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %1138 unwind label %1185

1138:                                             ; preds = %1136
  %1139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1137, ptr noundef @.str.21)
          to label %1140 unwind label %1185

1140:                                             ; preds = %1138
  %1141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1139, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1142 unwind label %1185

1142:                                             ; preds = %1140
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  invoke void @_Z4failv()
          to label %1143 unwind label %535

1143:                                             ; preds = %1142
  br label %1192

1144:                                             ; preds = %1118
  %1145 = landingpad { ptr, i32 }
          cleanup
  %1146 = extractvalue { ptr, i32 } %1145, 0
  store ptr %1146, ptr %2, align 8
  %1147 = extractvalue { ptr, i32 } %1145, 1
  store i32 %1147, ptr %3, align 4
  br label %1172

1148:                                             ; preds = %1119
  %1149 = landingpad { ptr, i32 }
          cleanup
  %1150 = extractvalue { ptr, i32 } %1149, 0
  store ptr %1150, ptr %2, align 8
  %1151 = extractvalue { ptr, i32 } %1149, 1
  store i32 %1151, ptr %3, align 4
  br label %1171

1152:                                             ; preds = %1120
  %1153 = landingpad { ptr, i32 }
          cleanup
  %1154 = extractvalue { ptr, i32 } %1153, 0
  store ptr %1154, ptr %2, align 8
  %1155 = extractvalue { ptr, i32 } %1153, 1
  store i32 %1155, ptr %3, align 4
  br label %1170

1156:                                             ; preds = %1121
  %1157 = landingpad { ptr, i32 }
          cleanup
  %1158 = extractvalue { ptr, i32 } %1157, 0
  store ptr %1158, ptr %2, align 8
  %1159 = extractvalue { ptr, i32 } %1157, 1
  store i32 %1159, ptr %3, align 4
  br label %1169

1160:                                             ; preds = %1122
  %1161 = landingpad { ptr, i32 }
          cleanup
  %1162 = extractvalue { ptr, i32 } %1161, 0
  store ptr %1162, ptr %2, align 8
  %1163 = extractvalue { ptr, i32 } %1161, 1
  store i32 %1163, ptr %3, align 4
  br label %1168

1164:                                             ; preds = %1123
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %2, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  br label %1168

1168:                                             ; preds = %1164, %1160
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  br label %1169

1169:                                             ; preds = %1168, %1156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %1170

1170:                                             ; preds = %1169, %1152
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %1171

1171:                                             ; preds = %1170, %1148
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %1172

1172:                                             ; preds = %1171, %1144
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #7
  br label %3544

1173:                                             ; preds = %1127
  %1174 = landingpad { ptr, i32 }
          cleanup
  %1175 = extractvalue { ptr, i32 } %1174, 0
  store ptr %1175, ptr %2, align 8
  %1176 = extractvalue { ptr, i32 } %1174, 1
  store i32 %1176, ptr %3, align 4
  br label %1191

1177:                                             ; preds = %1130, %1128
  %1178 = landingpad { ptr, i32 }
          cleanup
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %2, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %3, align 4
  br label %1190

1181:                                             ; preds = %1132
  %1182 = landingpad { ptr, i32 }
          cleanup
  %1183 = extractvalue { ptr, i32 } %1182, 0
  store ptr %1183, ptr %2, align 8
  %1184 = extractvalue { ptr, i32 } %1182, 1
  store i32 %1184, ptr %3, align 4
  br label %1189

1185:                                             ; preds = %1140, %1138, %1136
  %1186 = landingpad { ptr, i32 }
          cleanup
  %1187 = extractvalue { ptr, i32 } %1186, 0
  store ptr %1187, ptr %2, align 8
  %1188 = extractvalue { ptr, i32 } %1186, 1
  store i32 %1188, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  br label %1189

1189:                                             ; preds = %1185, %1181
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #7
  br label %1190

1190:                                             ; preds = %1189, %1177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  br label %1191

1191:                                             ; preds = %1190, %1173
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  br label %3544

1192:                                             ; preds = %1143, %1112
  %1193 = load ptr, ptr %5, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.LodePNGInfo, ptr %1193, i32 0, i32 17
  %1195 = getelementptr inbounds %struct.LodePNGTime, ptr %1194, i32 0, i32 3
  %1196 = load i32, ptr %1195, align 4, !tbaa !22
  %1197 = icmp ne i32 3, %1196
  br i1 %1197, label %1198, label %1272

1198:                                             ; preds = %1192
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %1199 unwind label %1224

1199:                                             ; preds = %1198
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef @.str.205)
          to label %1200 unwind label %1228

1200:                                             ; preds = %1199
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef @.str.3)
          to label %1201 unwind label %1232

1201:                                             ; preds = %1200
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef @.str.206)
          to label %1202 unwind label %1236

1202:                                             ; preds = %1201
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.18)
          to label %1203 unwind label %1240

1203:                                             ; preds = %1202
  %1204 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %1205 unwind label %1244

1205:                                             ; preds = %1203
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #7
  %1206 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1207 unwind label %535

1207:                                             ; preds = %1205
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #7
  store i32 3, ptr %105, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef nonnull align 4 dereferenceable(4) %105)
          to label %1208 unwind label %1253

1208:                                             ; preds = %1207
  %1209 = 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) %1206, ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %1210 unwind label %1257

1210:                                             ; preds = %1208
  %1211 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1209, ptr noundef @.str.20)
          to label %1212 unwind label %1257

1212:                                             ; preds = %1210
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #7
  %1213 = load ptr, ptr %5, align 8, !tbaa !5
  %1214 = getelementptr inbounds %struct.LodePNGInfo, ptr %1213, i32 0, i32 17
  %1215 = getelementptr inbounds %struct.LodePNGTime, ptr %1214, i32 0, i32 3
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 4 dereferenceable(4) %1215)
          to label %1216 unwind label %1261

1216:                                             ; preds = %1212
  %1217 = 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) %1211, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %1218 unwind label %1265

1218:                                             ; preds = %1216
  %1219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1217, ptr noundef @.str.21)
          to label %1220 unwind label %1265

1220:                                             ; preds = %1218
  %1221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1219, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1222 unwind label %1265

1222:                                             ; preds = %1220
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #7
  invoke void @_Z4failv()
          to label %1223 unwind label %535

1223:                                             ; preds = %1222
  br label %1272

1224:                                             ; preds = %1198
  %1225 = landingpad { ptr, i32 }
          cleanup
  %1226 = extractvalue { ptr, i32 } %1225, 0
  store ptr %1226, ptr %2, align 8
  %1227 = extractvalue { ptr, i32 } %1225, 1
  store i32 %1227, ptr %3, align 4
  br label %1252

1228:                                             ; preds = %1199
  %1229 = landingpad { ptr, i32 }
          cleanup
  %1230 = extractvalue { ptr, i32 } %1229, 0
  store ptr %1230, ptr %2, align 8
  %1231 = extractvalue { ptr, i32 } %1229, 1
  store i32 %1231, ptr %3, align 4
  br label %1251

1232:                                             ; preds = %1200
  %1233 = landingpad { ptr, i32 }
          cleanup
  %1234 = extractvalue { ptr, i32 } %1233, 0
  store ptr %1234, ptr %2, align 8
  %1235 = extractvalue { ptr, i32 } %1233, 1
  store i32 %1235, ptr %3, align 4
  br label %1250

1236:                                             ; preds = %1201
  %1237 = landingpad { ptr, i32 }
          cleanup
  %1238 = extractvalue { ptr, i32 } %1237, 0
  store ptr %1238, ptr %2, align 8
  %1239 = extractvalue { ptr, i32 } %1237, 1
  store i32 %1239, ptr %3, align 4
  br label %1249

1240:                                             ; preds = %1202
  %1241 = landingpad { ptr, i32 }
          cleanup
  %1242 = extractvalue { ptr, i32 } %1241, 0
  store ptr %1242, ptr %2, align 8
  %1243 = extractvalue { ptr, i32 } %1241, 1
  store i32 %1243, ptr %3, align 4
  br label %1248

1244:                                             ; preds = %1203
  %1245 = landingpad { ptr, i32 }
          cleanup
  %1246 = extractvalue { ptr, i32 } %1245, 0
  store ptr %1246, ptr %2, align 8
  %1247 = extractvalue { ptr, i32 } %1245, 1
  store i32 %1247, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  br label %1248

1248:                                             ; preds = %1244, %1240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  br label %1249

1249:                                             ; preds = %1248, %1236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1250

1250:                                             ; preds = %1249, %1232
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1251

1251:                                             ; preds = %1250, %1228
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  br label %1252

1252:                                             ; preds = %1251, %1224
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #7
  br label %3544

1253:                                             ; preds = %1207
  %1254 = landingpad { ptr, i32 }
          cleanup
  %1255 = extractvalue { ptr, i32 } %1254, 0
  store ptr %1255, ptr %2, align 8
  %1256 = extractvalue { ptr, i32 } %1254, 1
  store i32 %1256, ptr %3, align 4
  br label %1271

1257:                                             ; preds = %1210, %1208
  %1258 = landingpad { ptr, i32 }
          cleanup
  %1259 = extractvalue { ptr, i32 } %1258, 0
  store ptr %1259, ptr %2, align 8
  %1260 = extractvalue { ptr, i32 } %1258, 1
  store i32 %1260, ptr %3, align 4
  br label %1270

1261:                                             ; preds = %1212
  %1262 = landingpad { ptr, i32 }
          cleanup
  %1263 = extractvalue { ptr, i32 } %1262, 0
  store ptr %1263, ptr %2, align 8
  %1264 = extractvalue { ptr, i32 } %1262, 1
  store i32 %1264, ptr %3, align 4
  br label %1269

1265:                                             ; preds = %1220, %1218, %1216
  %1266 = landingpad { ptr, i32 }
          cleanup
  %1267 = extractvalue { ptr, i32 } %1266, 0
  store ptr %1267, ptr %2, align 8
  %1268 = extractvalue { ptr, i32 } %1266, 1
  store i32 %1268, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  br label %1269

1269:                                             ; preds = %1265, %1261
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #7
  br label %1270

1270:                                             ; preds = %1269, %1257
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  br label %1271

1271:                                             ; preds = %1270, %1253
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #7
  br label %3544

1272:                                             ; preds = %1223, %1192
  %1273 = load ptr, ptr %5, align 8, !tbaa !5
  %1274 = getelementptr inbounds %struct.LodePNGInfo, ptr %1273, i32 0, i32 17
  %1275 = getelementptr inbounds %struct.LodePNGTime, ptr %1274, i32 0, i32 4
  %1276 = load i32, ptr %1275, align 4, !tbaa !23
  %1277 = icmp ne i32 4, %1276
  br i1 %1277, label %1278, label %1352

1278:                                             ; preds = %1272
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %1279 unwind label %1304

1279:                                             ; preds = %1278
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %110, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef @.str.207)
          to label %1280 unwind label %1308

1280:                                             ; preds = %1279
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str.3)
          to label %1281 unwind label %1312

1281:                                             ; preds = %1280
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef @.str.208)
          to label %1282 unwind label %1316

1282:                                             ; preds = %1281
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef @.str.18)
          to label %1283 unwind label %1320

1283:                                             ; preds = %1282
  %1284 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %1285 unwind label %1324

1285:                                             ; preds = %1283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #7
  %1286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1287 unwind label %535

1287:                                             ; preds = %1285
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #7
  store i32 4, ptr %114, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %113, ptr noundef nonnull align 4 dereferenceable(4) %114)
          to label %1288 unwind label %1333

1288:                                             ; preds = %1287
  %1289 = 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) %1286, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %1290 unwind label %1337

1290:                                             ; preds = %1288
  %1291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1289, ptr noundef @.str.20)
          to label %1292 unwind label %1337

1292:                                             ; preds = %1290
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #7
  %1293 = load ptr, ptr %5, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.LodePNGInfo, ptr %1293, i32 0, i32 17
  %1295 = getelementptr inbounds %struct.LodePNGTime, ptr %1294, i32 0, i32 4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %115, ptr noundef nonnull align 4 dereferenceable(4) %1295)
          to label %1296 unwind label %1341

1296:                                             ; preds = %1292
  %1297 = 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) %1291, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %1298 unwind label %1345

1298:                                             ; preds = %1296
  %1299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1297, ptr noundef @.str.21)
          to label %1300 unwind label %1345

1300:                                             ; preds = %1298
  %1301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1299, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1302 unwind label %1345

1302:                                             ; preds = %1300
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #7
  invoke void @_Z4failv()
          to label %1303 unwind label %535

1303:                                             ; preds = %1302
  br label %1352

1304:                                             ; preds = %1278
  %1305 = landingpad { ptr, i32 }
          cleanup
  %1306 = extractvalue { ptr, i32 } %1305, 0
  store ptr %1306, ptr %2, align 8
  %1307 = extractvalue { ptr, i32 } %1305, 1
  store i32 %1307, ptr %3, align 4
  br label %1332

1308:                                             ; preds = %1279
  %1309 = landingpad { ptr, i32 }
          cleanup
  %1310 = extractvalue { ptr, i32 } %1309, 0
  store ptr %1310, ptr %2, align 8
  %1311 = extractvalue { ptr, i32 } %1309, 1
  store i32 %1311, ptr %3, align 4
  br label %1331

1312:                                             ; preds = %1280
  %1313 = landingpad { ptr, i32 }
          cleanup
  %1314 = extractvalue { ptr, i32 } %1313, 0
  store ptr %1314, ptr %2, align 8
  %1315 = extractvalue { ptr, i32 } %1313, 1
  store i32 %1315, ptr %3, align 4
  br label %1330

1316:                                             ; preds = %1281
  %1317 = landingpad { ptr, i32 }
          cleanup
  %1318 = extractvalue { ptr, i32 } %1317, 0
  store ptr %1318, ptr %2, align 8
  %1319 = extractvalue { ptr, i32 } %1317, 1
  store i32 %1319, ptr %3, align 4
  br label %1329

1320:                                             ; preds = %1282
  %1321 = landingpad { ptr, i32 }
          cleanup
  %1322 = extractvalue { ptr, i32 } %1321, 0
  store ptr %1322, ptr %2, align 8
  %1323 = extractvalue { ptr, i32 } %1321, 1
  store i32 %1323, ptr %3, align 4
  br label %1328

1324:                                             ; preds = %1283
  %1325 = landingpad { ptr, i32 }
          cleanup
  %1326 = extractvalue { ptr, i32 } %1325, 0
  store ptr %1326, ptr %2, align 8
  %1327 = extractvalue { ptr, i32 } %1325, 1
  store i32 %1327, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  br label %1328

1328:                                             ; preds = %1324, %1320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1329

1329:                                             ; preds = %1328, %1316
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1330

1330:                                             ; preds = %1329, %1312
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  br label %1331

1331:                                             ; preds = %1330, %1308
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  br label %1332

1332:                                             ; preds = %1331, %1304
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #7
  br label %3544

1333:                                             ; preds = %1287
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %2, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %3, align 4
  br label %1351

1337:                                             ; preds = %1290, %1288
  %1338 = landingpad { ptr, i32 }
          cleanup
  %1339 = extractvalue { ptr, i32 } %1338, 0
  store ptr %1339, ptr %2, align 8
  %1340 = extractvalue { ptr, i32 } %1338, 1
  store i32 %1340, ptr %3, align 4
  br label %1350

1341:                                             ; preds = %1292
  %1342 = landingpad { ptr, i32 }
          cleanup
  %1343 = extractvalue { ptr, i32 } %1342, 0
  store ptr %1343, ptr %2, align 8
  %1344 = extractvalue { ptr, i32 } %1342, 1
  store i32 %1344, ptr %3, align 4
  br label %1349

1345:                                             ; preds = %1300, %1298, %1296
  %1346 = landingpad { ptr, i32 }
          cleanup
  %1347 = extractvalue { ptr, i32 } %1346, 0
  store ptr %1347, ptr %2, align 8
  %1348 = extractvalue { ptr, i32 } %1346, 1
  store i32 %1348, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  br label %1349

1349:                                             ; preds = %1345, %1341
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #7
  br label %1350

1350:                                             ; preds = %1349, %1337
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  br label %1351

1351:                                             ; preds = %1350, %1333
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #7
  br label %3544

1352:                                             ; preds = %1303, %1272
  %1353 = load ptr, ptr %5, align 8, !tbaa !5
  %1354 = getelementptr inbounds %struct.LodePNGInfo, ptr %1353, i32 0, i32 17
  %1355 = getelementptr inbounds %struct.LodePNGTime, ptr %1354, i32 0, i32 5
  %1356 = load i32, ptr %1355, align 4, !tbaa !24
  %1357 = icmp ne i32 5, %1356
  br i1 %1357, label %1358, label %1432

1358:                                             ; preds = %1352
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %1359 unwind label %1384

1359:                                             ; preds = %1358
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %119, ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef @.str.209)
          to label %1360 unwind label %1388

1360:                                             ; preds = %1359
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %118, ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef @.str.3)
          to label %1361 unwind label %1392

1361:                                             ; preds = %1360
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str.210)
          to label %1362 unwind label %1396

1362:                                             ; preds = %1361
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef @.str.18)
          to label %1363 unwind label %1400

1363:                                             ; preds = %1362
  %1364 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %1365 unwind label %1404

1365:                                             ; preds = %1363
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #7
  %1366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1367 unwind label %535

1367:                                             ; preds = %1365
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #7
  store i32 5, ptr %123, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %122, ptr noundef nonnull align 4 dereferenceable(4) %123)
          to label %1368 unwind label %1413

1368:                                             ; preds = %1367
  %1369 = 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) %1366, ptr noundef nonnull align 8 dereferenceable(32) %122)
          to label %1370 unwind label %1417

1370:                                             ; preds = %1368
  %1371 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1369, ptr noundef @.str.20)
          to label %1372 unwind label %1417

1372:                                             ; preds = %1370
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #7
  %1373 = load ptr, ptr %5, align 8, !tbaa !5
  %1374 = getelementptr inbounds %struct.LodePNGInfo, ptr %1373, i32 0, i32 17
  %1375 = getelementptr inbounds %struct.LodePNGTime, ptr %1374, i32 0, i32 5
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %124, ptr noundef nonnull align 4 dereferenceable(4) %1375)
          to label %1376 unwind label %1421

1376:                                             ; preds = %1372
  %1377 = 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) %1371, ptr noundef nonnull align 8 dereferenceable(32) %124)
          to label %1378 unwind label %1425

1378:                                             ; preds = %1376
  %1379 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1377, ptr noundef @.str.21)
          to label %1380 unwind label %1425

1380:                                             ; preds = %1378
  %1381 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1379, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1382 unwind label %1425

1382:                                             ; preds = %1380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #7
  invoke void @_Z4failv()
          to label %1383 unwind label %535

1383:                                             ; preds = %1382
  br label %1432

1384:                                             ; preds = %1358
  %1385 = landingpad { ptr, i32 }
          cleanup
  %1386 = extractvalue { ptr, i32 } %1385, 0
  store ptr %1386, ptr %2, align 8
  %1387 = extractvalue { ptr, i32 } %1385, 1
  store i32 %1387, ptr %3, align 4
  br label %1412

1388:                                             ; preds = %1359
  %1389 = landingpad { ptr, i32 }
          cleanup
  %1390 = extractvalue { ptr, i32 } %1389, 0
  store ptr %1390, ptr %2, align 8
  %1391 = extractvalue { ptr, i32 } %1389, 1
  store i32 %1391, ptr %3, align 4
  br label %1411

1392:                                             ; preds = %1360
  %1393 = landingpad { ptr, i32 }
          cleanup
  %1394 = extractvalue { ptr, i32 } %1393, 0
  store ptr %1394, ptr %2, align 8
  %1395 = extractvalue { ptr, i32 } %1393, 1
  store i32 %1395, ptr %3, align 4
  br label %1410

1396:                                             ; preds = %1361
  %1397 = landingpad { ptr, i32 }
          cleanup
  %1398 = extractvalue { ptr, i32 } %1397, 0
  store ptr %1398, ptr %2, align 8
  %1399 = extractvalue { ptr, i32 } %1397, 1
  store i32 %1399, ptr %3, align 4
  br label %1409

1400:                                             ; preds = %1362
  %1401 = landingpad { ptr, i32 }
          cleanup
  %1402 = extractvalue { ptr, i32 } %1401, 0
  store ptr %1402, ptr %2, align 8
  %1403 = extractvalue { ptr, i32 } %1401, 1
  store i32 %1403, ptr %3, align 4
  br label %1408

1404:                                             ; preds = %1363
  %1405 = landingpad { ptr, i32 }
          cleanup
  %1406 = extractvalue { ptr, i32 } %1405, 0
  store ptr %1406, ptr %2, align 8
  %1407 = extractvalue { ptr, i32 } %1405, 1
  store i32 %1407, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1408

1408:                                             ; preds = %1404, %1400
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1409

1409:                                             ; preds = %1408, %1396
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  br label %1410

1410:                                             ; preds = %1409, %1392
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  br label %1411

1411:                                             ; preds = %1410, %1388
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #7
  br label %1412

1412:                                             ; preds = %1411, %1384
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #7
  br label %3544

1413:                                             ; preds = %1367
  %1414 = landingpad { ptr, i32 }
          cleanup
  %1415 = extractvalue { ptr, i32 } %1414, 0
  store ptr %1415, ptr %2, align 8
  %1416 = extractvalue { ptr, i32 } %1414, 1
  store i32 %1416, ptr %3, align 4
  br label %1431

1417:                                             ; preds = %1370, %1368
  %1418 = landingpad { ptr, i32 }
          cleanup
  %1419 = extractvalue { ptr, i32 } %1418, 0
  store ptr %1419, ptr %2, align 8
  %1420 = extractvalue { ptr, i32 } %1418, 1
  store i32 %1420, ptr %3, align 4
  br label %1430

1421:                                             ; preds = %1372
  %1422 = landingpad { ptr, i32 }
          cleanup
  %1423 = extractvalue { ptr, i32 } %1422, 0
  store ptr %1423, ptr %2, align 8
  %1424 = extractvalue { ptr, i32 } %1422, 1
  store i32 %1424, ptr %3, align 4
  br label %1429

1425:                                             ; preds = %1380, %1378, %1376
  %1426 = landingpad { ptr, i32 }
          cleanup
  %1427 = extractvalue { ptr, i32 } %1426, 0
  store ptr %1427, ptr %2, align 8
  %1428 = extractvalue { ptr, i32 } %1426, 1
  store i32 %1428, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1429

1429:                                             ; preds = %1425, %1421
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #7
  br label %1430

1430:                                             ; preds = %1429, %1417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #7
  br label %1431

1431:                                             ; preds = %1430, %1413
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #7
  br label %3544

1432:                                             ; preds = %1383, %1352
  %1433 = load ptr, ptr %5, align 8, !tbaa !5
  %1434 = getelementptr inbounds %struct.LodePNGInfo, ptr %1433, i32 0, i32 18
  %1435 = load i32, ptr %1434, align 4, !tbaa !25
  %1436 = icmp ne i32 1, %1435
  br i1 %1436, label %1437, label %1510

1437:                                             ; preds = %1432
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %126) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %130) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %130)
          to label %1438 unwind label %1462

1438:                                             ; preds = %1437
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %128, ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef @.str.211)
          to label %1439 unwind label %1466

1439:                                             ; preds = %1438
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef @.str.3)
          to label %1440 unwind label %1470

1440:                                             ; preds = %1439
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.212)
          to label %1441 unwind label %1474

1441:                                             ; preds = %1440
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %125, ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef @.str.18)
          to label %1442 unwind label %1478

1442:                                             ; preds = %1441
  %1443 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %1444 unwind label %1482

1444:                                             ; preds = %1442
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #7
  %1445 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1446 unwind label %535

1446:                                             ; preds = %1444
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #7
  store i32 1, ptr %132, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %131, ptr noundef nonnull align 4 dereferenceable(4) %132)
          to label %1447 unwind label %1491

1447:                                             ; preds = %1446
  %1448 = 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) %1445, ptr noundef nonnull align 8 dereferenceable(32) %131)
          to label %1449 unwind label %1495

1449:                                             ; preds = %1447
  %1450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1448, ptr noundef @.str.20)
          to label %1451 unwind label %1495

1451:                                             ; preds = %1449
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #7
  %1452 = load ptr, ptr %5, align 8, !tbaa !5
  %1453 = getelementptr inbounds %struct.LodePNGInfo, ptr %1452, i32 0, i32 18
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %133, ptr noundef nonnull align 4 dereferenceable(4) %1453)
          to label %1454 unwind label %1499

1454:                                             ; preds = %1451
  %1455 = 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) %1450, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %1456 unwind label %1503

1456:                                             ; preds = %1454
  %1457 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1455, ptr noundef @.str.21)
          to label %1458 unwind label %1503

1458:                                             ; preds = %1456
  %1459 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1457, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1460 unwind label %1503

1460:                                             ; preds = %1458
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #7
  invoke void @_Z4failv()
          to label %1461 unwind label %535

1461:                                             ; preds = %1460
  br label %1510

1462:                                             ; preds = %1437
  %1463 = landingpad { ptr, i32 }
          cleanup
  %1464 = extractvalue { ptr, i32 } %1463, 0
  store ptr %1464, ptr %2, align 8
  %1465 = extractvalue { ptr, i32 } %1463, 1
  store i32 %1465, ptr %3, align 4
  br label %1490

1466:                                             ; preds = %1438
  %1467 = landingpad { ptr, i32 }
          cleanup
  %1468 = extractvalue { ptr, i32 } %1467, 0
  store ptr %1468, ptr %2, align 8
  %1469 = extractvalue { ptr, i32 } %1467, 1
  store i32 %1469, ptr %3, align 4
  br label %1489

1470:                                             ; preds = %1439
  %1471 = landingpad { ptr, i32 }
          cleanup
  %1472 = extractvalue { ptr, i32 } %1471, 0
  store ptr %1472, ptr %2, align 8
  %1473 = extractvalue { ptr, i32 } %1471, 1
  store i32 %1473, ptr %3, align 4
  br label %1488

1474:                                             ; preds = %1440
  %1475 = landingpad { ptr, i32 }
          cleanup
  %1476 = extractvalue { ptr, i32 } %1475, 0
  store ptr %1476, ptr %2, align 8
  %1477 = extractvalue { ptr, i32 } %1475, 1
  store i32 %1477, ptr %3, align 4
  br label %1487

1478:                                             ; preds = %1441
  %1479 = landingpad { ptr, i32 }
          cleanup
  %1480 = extractvalue { ptr, i32 } %1479, 0
  store ptr %1480, ptr %2, align 8
  %1481 = extractvalue { ptr, i32 } %1479, 1
  store i32 %1481, ptr %3, align 4
  br label %1486

1482:                                             ; preds = %1442
  %1483 = landingpad { ptr, i32 }
          cleanup
  %1484 = extractvalue { ptr, i32 } %1483, 0
  store ptr %1484, ptr %2, align 8
  %1485 = extractvalue { ptr, i32 } %1483, 1
  store i32 %1485, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1486

1486:                                             ; preds = %1482, %1478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  br label %1487

1487:                                             ; preds = %1486, %1474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  br label %1488

1488:                                             ; preds = %1487, %1470
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  br label %1489

1489:                                             ; preds = %1488, %1466
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #7
  br label %1490

1490:                                             ; preds = %1489, %1462
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %130) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %130) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #7
  br label %3544

1491:                                             ; preds = %1446
  %1492 = landingpad { ptr, i32 }
          cleanup
  %1493 = extractvalue { ptr, i32 } %1492, 0
  store ptr %1493, ptr %2, align 8
  %1494 = extractvalue { ptr, i32 } %1492, 1
  store i32 %1494, ptr %3, align 4
  br label %1509

1495:                                             ; preds = %1449, %1447
  %1496 = landingpad { ptr, i32 }
          cleanup
  %1497 = extractvalue { ptr, i32 } %1496, 0
  store ptr %1497, ptr %2, align 8
  %1498 = extractvalue { ptr, i32 } %1496, 1
  store i32 %1498, ptr %3, align 4
  br label %1508

1499:                                             ; preds = %1451
  %1500 = landingpad { ptr, i32 }
          cleanup
  %1501 = extractvalue { ptr, i32 } %1500, 0
  store ptr %1501, ptr %2, align 8
  %1502 = extractvalue { ptr, i32 } %1500, 1
  store i32 %1502, ptr %3, align 4
  br label %1507

1503:                                             ; preds = %1458, %1456, %1454
  %1504 = landingpad { ptr, i32 }
          cleanup
  %1505 = extractvalue { ptr, i32 } %1504, 0
  store ptr %1505, ptr %2, align 8
  %1506 = extractvalue { ptr, i32 } %1504, 1
  store i32 %1506, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1507

1507:                                             ; preds = %1503, %1499
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #7
  br label %1508

1508:                                             ; preds = %1507, %1495
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #7
  br label %1509

1509:                                             ; preds = %1508, %1491
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #7
  br label %3544

1510:                                             ; preds = %1461, %1432
  %1511 = load ptr, ptr %5, align 8, !tbaa !5
  %1512 = getelementptr inbounds %struct.LodePNGInfo, ptr %1511, i32 0, i32 19
  %1513 = load i32, ptr %1512, align 8, !tbaa !26
  %1514 = icmp ne i32 1, %1513
  br i1 %1514, label %1515, label %1588

1515:                                             ; preds = %1510
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %138) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %139)
          to label %1516 unwind label %1540

1516:                                             ; preds = %1515
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %137, ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef @.str.213)
          to label %1517 unwind label %1544

1517:                                             ; preds = %1516
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %136, ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef @.str.3)
          to label %1518 unwind label %1548

1518:                                             ; preds = %1517
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %135, ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef @.str.214)
          to label %1519 unwind label %1552

1519:                                             ; preds = %1518
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %134, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.18)
          to label %1520 unwind label %1556

1520:                                             ; preds = %1519
  %1521 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1522 unwind label %1560

1522:                                             ; preds = %1520
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  %1523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1524 unwind label %535

1524:                                             ; preds = %1522
  call void @llvm.lifetime.start.p0(i64 32, ptr %140) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #7
  store i32 1, ptr %141, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %140, ptr noundef nonnull align 4 dereferenceable(4) %141)
          to label %1525 unwind label %1569

1525:                                             ; preds = %1524
  %1526 = 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) %1523, ptr noundef nonnull align 8 dereferenceable(32) %140)
          to label %1527 unwind label %1573

1527:                                             ; preds = %1525
  %1528 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1526, ptr noundef @.str.20)
          to label %1529 unwind label %1573

1529:                                             ; preds = %1527
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #7
  %1530 = load ptr, ptr %5, align 8, !tbaa !5
  %1531 = getelementptr inbounds %struct.LodePNGInfo, ptr %1530, i32 0, i32 19
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %142, ptr noundef nonnull align 4 dereferenceable(4) %1531)
          to label %1532 unwind label %1577

1532:                                             ; preds = %1529
  %1533 = 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) %1528, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1534 unwind label %1581

1534:                                             ; preds = %1532
  %1535 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1533, ptr noundef @.str.21)
          to label %1536 unwind label %1581

1536:                                             ; preds = %1534
  %1537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1535, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1538 unwind label %1581

1538:                                             ; preds = %1536
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #7
  invoke void @_Z4failv()
          to label %1539 unwind label %535

1539:                                             ; preds = %1538
  br label %1588

1540:                                             ; preds = %1515
  %1541 = landingpad { ptr, i32 }
          cleanup
  %1542 = extractvalue { ptr, i32 } %1541, 0
  store ptr %1542, ptr %2, align 8
  %1543 = extractvalue { ptr, i32 } %1541, 1
  store i32 %1543, ptr %3, align 4
  br label %1568

1544:                                             ; preds = %1516
  %1545 = landingpad { ptr, i32 }
          cleanup
  %1546 = extractvalue { ptr, i32 } %1545, 0
  store ptr %1546, ptr %2, align 8
  %1547 = extractvalue { ptr, i32 } %1545, 1
  store i32 %1547, ptr %3, align 4
  br label %1567

1548:                                             ; preds = %1517
  %1549 = landingpad { ptr, i32 }
          cleanup
  %1550 = extractvalue { ptr, i32 } %1549, 0
  store ptr %1550, ptr %2, align 8
  %1551 = extractvalue { ptr, i32 } %1549, 1
  store i32 %1551, ptr %3, align 4
  br label %1566

1552:                                             ; preds = %1518
  %1553 = landingpad { ptr, i32 }
          cleanup
  %1554 = extractvalue { ptr, i32 } %1553, 0
  store ptr %1554, ptr %2, align 8
  %1555 = extractvalue { ptr, i32 } %1553, 1
  store i32 %1555, ptr %3, align 4
  br label %1565

1556:                                             ; preds = %1519
  %1557 = landingpad { ptr, i32 }
          cleanup
  %1558 = extractvalue { ptr, i32 } %1557, 0
  store ptr %1558, ptr %2, align 8
  %1559 = extractvalue { ptr, i32 } %1557, 1
  store i32 %1559, ptr %3, align 4
  br label %1564

1560:                                             ; preds = %1520
  %1561 = landingpad { ptr, i32 }
          cleanup
  %1562 = extractvalue { ptr, i32 } %1561, 0
  store ptr %1562, ptr %2, align 8
  %1563 = extractvalue { ptr, i32 } %1561, 1
  store i32 %1563, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  br label %1564

1564:                                             ; preds = %1560, %1556
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  br label %1565

1565:                                             ; preds = %1564, %1552
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #7
  br label %1566

1566:                                             ; preds = %1565, %1548
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #7
  br label %1567

1567:                                             ; preds = %1566, %1544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #7
  br label %1568

1568:                                             ; preds = %1567, %1540
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %139) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #7
  br label %3544

1569:                                             ; preds = %1524
  %1570 = landingpad { ptr, i32 }
          cleanup
  %1571 = extractvalue { ptr, i32 } %1570, 0
  store ptr %1571, ptr %2, align 8
  %1572 = extractvalue { ptr, i32 } %1570, 1
  store i32 %1572, ptr %3, align 4
  br label %1587

1573:                                             ; preds = %1527, %1525
  %1574 = landingpad { ptr, i32 }
          cleanup
  %1575 = extractvalue { ptr, i32 } %1574, 0
  store ptr %1575, ptr %2, align 8
  %1576 = extractvalue { ptr, i32 } %1574, 1
  store i32 %1576, ptr %3, align 4
  br label %1586

1577:                                             ; preds = %1529
  %1578 = landingpad { ptr, i32 }
          cleanup
  %1579 = extractvalue { ptr, i32 } %1578, 0
  store ptr %1579, ptr %2, align 8
  %1580 = extractvalue { ptr, i32 } %1578, 1
  store i32 %1580, ptr %3, align 4
  br label %1585

1581:                                             ; preds = %1536, %1534, %1532
  %1582 = landingpad { ptr, i32 }
          cleanup
  %1583 = extractvalue { ptr, i32 } %1582, 0
  store ptr %1583, ptr %2, align 8
  %1584 = extractvalue { ptr, i32 } %1582, 1
  store i32 %1584, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  br label %1585

1585:                                             ; preds = %1581, %1577
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #7
  br label %1586

1586:                                             ; preds = %1585, %1573
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #7
  br label %1587

1587:                                             ; preds = %1586, %1569
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #7
  br label %3544

1588:                                             ; preds = %1539, %1510
  %1589 = load ptr, ptr %5, align 8, !tbaa !5
  %1590 = getelementptr inbounds %struct.LodePNGInfo, ptr %1589, i32 0, i32 20
  %1591 = load i32, ptr %1590, align 4, !tbaa !27
  %1592 = icmp ne i32 2, %1591
  br i1 %1592, label %1593, label %1666

1593:                                             ; preds = %1588
  call void @llvm.lifetime.start.p0(i64 32, ptr %143) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %144) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %145) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %146) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %147) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %148) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %148)
          to label %1594 unwind label %1618

1594:                                             ; preds = %1593
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %146, ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef @.str.215)
          to label %1595 unwind label %1622

1595:                                             ; preds = %1594
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %145, ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef @.str.3)
          to label %1596 unwind label %1626

1596:                                             ; preds = %1595
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %144, ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef @.str.216)
          to label %1597 unwind label %1630

1597:                                             ; preds = %1596
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %143, ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef @.str.18)
          to label %1598 unwind label %1634

1598:                                             ; preds = %1597
  %1599 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %143)
          to label %1600 unwind label %1638

1600:                                             ; preds = %1598
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #7
  %1601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1602 unwind label %535

1602:                                             ; preds = %1600
  call void @llvm.lifetime.start.p0(i64 32, ptr %149) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #7
  store i32 2, ptr %150, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %149, ptr noundef nonnull align 4 dereferenceable(4) %150)
          to label %1603 unwind label %1647

1603:                                             ; preds = %1602
  %1604 = 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) %1601, ptr noundef nonnull align 8 dereferenceable(32) %149)
          to label %1605 unwind label %1651

1605:                                             ; preds = %1603
  %1606 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1604, ptr noundef @.str.20)
          to label %1607 unwind label %1651

1607:                                             ; preds = %1605
  call void @llvm.lifetime.start.p0(i64 32, ptr %151) #7
  %1608 = load ptr, ptr %5, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.LodePNGInfo, ptr %1608, i32 0, i32 20
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %151, ptr noundef nonnull align 4 dereferenceable(4) %1609)
          to label %1610 unwind label %1655

1610:                                             ; preds = %1607
  %1611 = 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) %1606, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1612 unwind label %1659

1612:                                             ; preds = %1610
  %1613 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1611, ptr noundef @.str.21)
          to label %1614 unwind label %1659

1614:                                             ; preds = %1612
  %1615 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1613, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1616 unwind label %1659

1616:                                             ; preds = %1614
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #7
  invoke void @_Z4failv()
          to label %1617 unwind label %535

1617:                                             ; preds = %1616
  br label %1666

1618:                                             ; preds = %1593
  %1619 = landingpad { ptr, i32 }
          cleanup
  %1620 = extractvalue { ptr, i32 } %1619, 0
  store ptr %1620, ptr %2, align 8
  %1621 = extractvalue { ptr, i32 } %1619, 1
  store i32 %1621, ptr %3, align 4
  br label %1646

1622:                                             ; preds = %1594
  %1623 = landingpad { ptr, i32 }
          cleanup
  %1624 = extractvalue { ptr, i32 } %1623, 0
  store ptr %1624, ptr %2, align 8
  %1625 = extractvalue { ptr, i32 } %1623, 1
  store i32 %1625, ptr %3, align 4
  br label %1645

1626:                                             ; preds = %1595
  %1627 = landingpad { ptr, i32 }
          cleanup
  %1628 = extractvalue { ptr, i32 } %1627, 0
  store ptr %1628, ptr %2, align 8
  %1629 = extractvalue { ptr, i32 } %1627, 1
  store i32 %1629, ptr %3, align 4
  br label %1644

1630:                                             ; preds = %1596
  %1631 = landingpad { ptr, i32 }
          cleanup
  %1632 = extractvalue { ptr, i32 } %1631, 0
  store ptr %1632, ptr %2, align 8
  %1633 = extractvalue { ptr, i32 } %1631, 1
  store i32 %1633, ptr %3, align 4
  br label %1643

1634:                                             ; preds = %1597
  %1635 = landingpad { ptr, i32 }
          cleanup
  %1636 = extractvalue { ptr, i32 } %1635, 0
  store ptr %1636, ptr %2, align 8
  %1637 = extractvalue { ptr, i32 } %1635, 1
  store i32 %1637, ptr %3, align 4
  br label %1642

1638:                                             ; preds = %1598
  %1639 = landingpad { ptr, i32 }
          cleanup
  %1640 = extractvalue { ptr, i32 } %1639, 0
  store ptr %1640, ptr %2, align 8
  %1641 = extractvalue { ptr, i32 } %1639, 1
  store i32 %1641, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #7
  br label %1642

1642:                                             ; preds = %1638, %1634
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #7
  br label %1643

1643:                                             ; preds = %1642, %1630
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #7
  br label %1644

1644:                                             ; preds = %1643, %1626
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #7
  br label %1645

1645:                                             ; preds = %1644, %1622
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #7
  br label %1646

1646:                                             ; preds = %1645, %1618
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %147) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #7
  br label %3544

1647:                                             ; preds = %1602
  %1648 = landingpad { ptr, i32 }
          cleanup
  %1649 = extractvalue { ptr, i32 } %1648, 0
  store ptr %1649, ptr %2, align 8
  %1650 = extractvalue { ptr, i32 } %1648, 1
  store i32 %1650, ptr %3, align 4
  br label %1665

1651:                                             ; preds = %1605, %1603
  %1652 = landingpad { ptr, i32 }
          cleanup
  %1653 = extractvalue { ptr, i32 } %1652, 0
  store ptr %1653, ptr %2, align 8
  %1654 = extractvalue { ptr, i32 } %1652, 1
  store i32 %1654, ptr %3, align 4
  br label %1664

1655:                                             ; preds = %1607
  %1656 = landingpad { ptr, i32 }
          cleanup
  %1657 = extractvalue { ptr, i32 } %1656, 0
  store ptr %1657, ptr %2, align 8
  %1658 = extractvalue { ptr, i32 } %1656, 1
  store i32 %1658, ptr %3, align 4
  br label %1663

1659:                                             ; preds = %1614, %1612, %1610
  %1660 = landingpad { ptr, i32 }
          cleanup
  %1661 = extractvalue { ptr, i32 } %1660, 0
  store ptr %1661, ptr %2, align 8
  %1662 = extractvalue { ptr, i32 } %1660, 1
  store i32 %1662, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #7
  br label %1663

1663:                                             ; preds = %1659, %1655
  call void @llvm.lifetime.end.p0(i64 32, ptr %151) #7
  br label %1664

1664:                                             ; preds = %1663, %1651
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #7
  br label %1665

1665:                                             ; preds = %1664, %1647
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #7
  br label %3544

1666:                                             ; preds = %1617, %1588
  %1667 = load ptr, ptr %5, align 8, !tbaa !5
  %1668 = getelementptr inbounds %struct.LodePNGInfo, ptr %1667, i32 0, i32 21
  %1669 = load i32, ptr %1668, align 8, !tbaa !28
  %1670 = icmp ne i32 1, %1669
  br i1 %1670, label %1671, label %1744

1671:                                             ; preds = %1666
  call void @llvm.lifetime.start.p0(i64 32, ptr %152) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %153) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %155) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %156) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %157) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %157)
          to label %1672 unwind label %1696

1672:                                             ; preds = %1671
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %155, ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef @.str.217)
          to label %1673 unwind label %1700

1673:                                             ; preds = %1672
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %154, ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef @.str.3)
          to label %1674 unwind label %1704

1674:                                             ; preds = %1673
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %153, ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef @.str.218)
          to label %1675 unwind label %1708

1675:                                             ; preds = %1674
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %152, ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef @.str.18)
          to label %1676 unwind label %1712

1676:                                             ; preds = %1675
  %1677 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %152)
          to label %1678 unwind label %1716

1678:                                             ; preds = %1676
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %157) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #7
  %1679 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1680 unwind label %535

1680:                                             ; preds = %1678
  call void @llvm.lifetime.start.p0(i64 32, ptr %158) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #7
  store i32 1, ptr %159, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %158, ptr noundef nonnull align 4 dereferenceable(4) %159)
          to label %1681 unwind label %1725

1681:                                             ; preds = %1680
  %1682 = 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) %1679, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %1683 unwind label %1729

1683:                                             ; preds = %1681
  %1684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1682, ptr noundef @.str.20)
          to label %1685 unwind label %1729

1685:                                             ; preds = %1683
  call void @llvm.lifetime.start.p0(i64 32, ptr %160) #7
  %1686 = load ptr, ptr %5, align 8, !tbaa !5
  %1687 = getelementptr inbounds %struct.LodePNGInfo, ptr %1686, i32 0, i32 21
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %160, ptr noundef nonnull align 4 dereferenceable(4) %1687)
          to label %1688 unwind label %1733

1688:                                             ; preds = %1685
  %1689 = 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) %1684, ptr noundef nonnull align 8 dereferenceable(32) %160)
          to label %1690 unwind label %1737

1690:                                             ; preds = %1688
  %1691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1689, ptr noundef @.str.21)
          to label %1692 unwind label %1737

1692:                                             ; preds = %1690
  %1693 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1691, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1694 unwind label %1737

1694:                                             ; preds = %1692
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #7
  invoke void @_Z4failv()
          to label %1695 unwind label %535

1695:                                             ; preds = %1694
  br label %1744

1696:                                             ; preds = %1671
  %1697 = landingpad { ptr, i32 }
          cleanup
  %1698 = extractvalue { ptr, i32 } %1697, 0
  store ptr %1698, ptr %2, align 8
  %1699 = extractvalue { ptr, i32 } %1697, 1
  store i32 %1699, ptr %3, align 4
  br label %1724

1700:                                             ; preds = %1672
  %1701 = landingpad { ptr, i32 }
          cleanup
  %1702 = extractvalue { ptr, i32 } %1701, 0
  store ptr %1702, ptr %2, align 8
  %1703 = extractvalue { ptr, i32 } %1701, 1
  store i32 %1703, ptr %3, align 4
  br label %1723

1704:                                             ; preds = %1673
  %1705 = landingpad { ptr, i32 }
          cleanup
  %1706 = extractvalue { ptr, i32 } %1705, 0
  store ptr %1706, ptr %2, align 8
  %1707 = extractvalue { ptr, i32 } %1705, 1
  store i32 %1707, ptr %3, align 4
  br label %1722

1708:                                             ; preds = %1674
  %1709 = landingpad { ptr, i32 }
          cleanup
  %1710 = extractvalue { ptr, i32 } %1709, 0
  store ptr %1710, ptr %2, align 8
  %1711 = extractvalue { ptr, i32 } %1709, 1
  store i32 %1711, ptr %3, align 4
  br label %1721

1712:                                             ; preds = %1675
  %1713 = landingpad { ptr, i32 }
          cleanup
  %1714 = extractvalue { ptr, i32 } %1713, 0
  store ptr %1714, ptr %2, align 8
  %1715 = extractvalue { ptr, i32 } %1713, 1
  store i32 %1715, ptr %3, align 4
  br label %1720

1716:                                             ; preds = %1676
  %1717 = landingpad { ptr, i32 }
          cleanup
  %1718 = extractvalue { ptr, i32 } %1717, 0
  store ptr %1718, ptr %2, align 8
  %1719 = extractvalue { ptr, i32 } %1717, 1
  store i32 %1719, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #7
  br label %1720

1720:                                             ; preds = %1716, %1712
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #7
  br label %1721

1721:                                             ; preds = %1720, %1708
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #7
  br label %1722

1722:                                             ; preds = %1721, %1704
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #7
  br label %1723

1723:                                             ; preds = %1722, %1700
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1724

1724:                                             ; preds = %1723, %1696
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %157) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %153) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %152) #7
  br label %3544

1725:                                             ; preds = %1680
  %1726 = landingpad { ptr, i32 }
          cleanup
  %1727 = extractvalue { ptr, i32 } %1726, 0
  store ptr %1727, ptr %2, align 8
  %1728 = extractvalue { ptr, i32 } %1726, 1
  store i32 %1728, ptr %3, align 4
  br label %1743

1729:                                             ; preds = %1683, %1681
  %1730 = landingpad { ptr, i32 }
          cleanup
  %1731 = extractvalue { ptr, i32 } %1730, 0
  store ptr %1731, ptr %2, align 8
  %1732 = extractvalue { ptr, i32 } %1730, 1
  store i32 %1732, ptr %3, align 4
  br label %1742

1733:                                             ; preds = %1685
  %1734 = landingpad { ptr, i32 }
          cleanup
  %1735 = extractvalue { ptr, i32 } %1734, 0
  store ptr %1735, ptr %2, align 8
  %1736 = extractvalue { ptr, i32 } %1734, 1
  store i32 %1736, ptr %3, align 4
  br label %1741

1737:                                             ; preds = %1692, %1690, %1688
  %1738 = landingpad { ptr, i32 }
          cleanup
  %1739 = extractvalue { ptr, i32 } %1738, 0
  store ptr %1739, ptr %2, align 8
  %1740 = extractvalue { ptr, i32 } %1738, 1
  store i32 %1740, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #7
  br label %1741

1741:                                             ; preds = %1737, %1733
  call void @llvm.lifetime.end.p0(i64 32, ptr %160) #7
  br label %1742

1742:                                             ; preds = %1741, %1729
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  br label %1743

1743:                                             ; preds = %1742, %1725
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #7
  br label %3544

1744:                                             ; preds = %1695, %1666
  call void @llvm.lifetime.start.p0(i64 32, ptr %161) #7
  invoke void @_Z17extractChunkNamesB5cxx11RKSt6vectorIhSaIhEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %161, ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %1745 unwind label %1771

1745:                                             ; preds = %1744
  call void @llvm.lifetime.start.p0(i64 32, ptr %162) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %163) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef @.str.219, ptr noundef nonnull align 1 dereferenceable(1) %163)
          to label %1746 unwind label %1775

1746:                                             ; preds = %1745
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #7
  %1747 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef nonnull align 8 dereferenceable(32) %161) #7
  br i1 %1747, label %1748, label %1831

1748:                                             ; preds = %1746
  call void @llvm.lifetime.start.p0(i64 32, ptr %164) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %165) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %166) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %167) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %168) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %169) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %169)
          to label %1749 unwind label %1779

1749:                                             ; preds = %1748
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %167, ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef @.str.220)
          to label %1750 unwind label %1783

1750:                                             ; preds = %1749
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %166, ptr noundef nonnull align 8 dereferenceable(32) %167, ptr noundef @.str.3)
          to label %1751 unwind label %1787

1751:                                             ; preds = %1750
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %165, ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef @.str.221)
          to label %1752 unwind label %1791

1752:                                             ; preds = %1751
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %164, ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef @.str.18)
          to label %1753 unwind label %1795

1753:                                             ; preds = %1752
  %1754 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %164)
          to label %1755 unwind label %1799

1755:                                             ; preds = %1753
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #7
  %1756 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1757 unwind label %1808

1757:                                             ; preds = %1755
  call void @llvm.lifetime.start.p0(i64 32, ptr %170) #7
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %170, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %1758 unwind label %1812

1758:                                             ; preds = %1757
  %1759 = 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) %1756, ptr noundef nonnull align 8 dereferenceable(32) %170)
          to label %1760 unwind label %1816

1760:                                             ; preds = %1758
  %1761 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1759, ptr noundef @.str.20)
          to label %1762 unwind label %1816

1762:                                             ; preds = %1760
  call void @llvm.lifetime.start.p0(i64 32, ptr %171) #7
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %171, ptr noundef nonnull align 8 dereferenceable(32) %161)
          to label %1763 unwind label %1820

1763:                                             ; preds = %1762
  %1764 = 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) %1761, ptr noundef nonnull align 8 dereferenceable(32) %171)
          to label %1765 unwind label %1824

1765:                                             ; preds = %1763
  %1766 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1764, ptr noundef @.str.21)
          to label %1767 unwind label %1824

1767:                                             ; preds = %1765
  %1768 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1766, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1769 unwind label %1824

1769:                                             ; preds = %1767
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #7
  invoke void @_Z4failv()
          to label %1770 unwind label %1808

1770:                                             ; preds = %1769
  br label %1831

1771:                                             ; preds = %1744
  %1772 = landingpad { ptr, i32 }
          cleanup
  %1773 = extractvalue { ptr, i32 } %1772, 0
  store ptr %1773, ptr %2, align 8
  %1774 = extractvalue { ptr, i32 } %1772, 1
  store i32 %1774, ptr %3, align 4
  br label %3543

1775:                                             ; preds = %1745
  %1776 = landingpad { ptr, i32 }
          cleanup
  %1777 = extractvalue { ptr, i32 } %1776, 0
  store ptr %1777, ptr %2, align 8
  %1778 = extractvalue { ptr, i32 } %1776, 1
  store i32 %1778, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %163) #7
  br label %3542

1779:                                             ; preds = %1748
  %1780 = landingpad { ptr, i32 }
          cleanup
  %1781 = extractvalue { ptr, i32 } %1780, 0
  store ptr %1781, ptr %2, align 8
  %1782 = extractvalue { ptr, i32 } %1780, 1
  store i32 %1782, ptr %3, align 4
  br label %1807

1783:                                             ; preds = %1749
  %1784 = landingpad { ptr, i32 }
          cleanup
  %1785 = extractvalue { ptr, i32 } %1784, 0
  store ptr %1785, ptr %2, align 8
  %1786 = extractvalue { ptr, i32 } %1784, 1
  store i32 %1786, ptr %3, align 4
  br label %1806

1787:                                             ; preds = %1750
  %1788 = landingpad { ptr, i32 }
          cleanup
  %1789 = extractvalue { ptr, i32 } %1788, 0
  store ptr %1789, ptr %2, align 8
  %1790 = extractvalue { ptr, i32 } %1788, 1
  store i32 %1790, ptr %3, align 4
  br label %1805

1791:                                             ; preds = %1751
  %1792 = landingpad { ptr, i32 }
          cleanup
  %1793 = extractvalue { ptr, i32 } %1792, 0
  store ptr %1793, ptr %2, align 8
  %1794 = extractvalue { ptr, i32 } %1792, 1
  store i32 %1794, ptr %3, align 4
  br label %1804

1795:                                             ; preds = %1752
  %1796 = landingpad { ptr, i32 }
          cleanup
  %1797 = extractvalue { ptr, i32 } %1796, 0
  store ptr %1797, ptr %2, align 8
  %1798 = extractvalue { ptr, i32 } %1796, 1
  store i32 %1798, ptr %3, align 4
  br label %1803

1799:                                             ; preds = %1753
  %1800 = landingpad { ptr, i32 }
          cleanup
  %1801 = extractvalue { ptr, i32 } %1800, 0
  store ptr %1801, ptr %2, align 8
  %1802 = extractvalue { ptr, i32 } %1800, 1
  store i32 %1802, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %1803

1803:                                             ; preds = %1799, %1795
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  br label %1804

1804:                                             ; preds = %1803, %1791
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  br label %1805

1805:                                             ; preds = %1804, %1787
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #7
  br label %1806

1806:                                             ; preds = %1805, %1783
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #7
  br label %1807

1807:                                             ; preds = %1806, %1779
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %169) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %169) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %167) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %166) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %165) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #7
  br label %3541

1808:                                             ; preds = %3404, %3383, %3298, %3277, %3192, %3171, %3086, %3065, %2980, %2959, %2874, %2853, %2768, %2747, %2662, %2641, %2575, %2559, %2478, %2456, %2370, %2349, %2264, %2243, %2158, %2137, %2052, %2031, %1946, %1925, %1859, %1843, %1769, %1755
  %1809 = landingpad { ptr, i32 }
          cleanup
  %1810 = extractvalue { ptr, i32 } %1809, 0
  store ptr %1810, ptr %2, align 8
  %1811 = extractvalue { ptr, i32 } %1809, 1
  store i32 %1811, ptr %3, align 4
  br label %3541

1812:                                             ; preds = %1757
  %1813 = landingpad { ptr, i32 }
          cleanup
  %1814 = extractvalue { ptr, i32 } %1813, 0
  store ptr %1814, ptr %2, align 8
  %1815 = extractvalue { ptr, i32 } %1813, 1
  store i32 %1815, ptr %3, align 4
  br label %1830

1816:                                             ; preds = %1760, %1758
  %1817 = landingpad { ptr, i32 }
          cleanup
  %1818 = extractvalue { ptr, i32 } %1817, 0
  store ptr %1818, ptr %2, align 8
  %1819 = extractvalue { ptr, i32 } %1817, 1
  store i32 %1819, ptr %3, align 4
  br label %1829

1820:                                             ; preds = %1762
  %1821 = landingpad { ptr, i32 }
          cleanup
  %1822 = extractvalue { ptr, i32 } %1821, 0
  store ptr %1822, ptr %2, align 8
  %1823 = extractvalue { ptr, i32 } %1821, 1
  store i32 %1823, ptr %3, align 4
  br label %1828

1824:                                             ; preds = %1767, %1765, %1763
  %1825 = landingpad { ptr, i32 }
          cleanup
  %1826 = extractvalue { ptr, i32 } %1825, 0
  store ptr %1826, ptr %2, align 8
  %1827 = extractvalue { ptr, i32 } %1825, 1
  store i32 %1827, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #7
  br label %1828

1828:                                             ; preds = %1824, %1820
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #7
  br label %1829

1829:                                             ; preds = %1828, %1816
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #7
  br label %1830

1830:                                             ; preds = %1829, %1812
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #7
  br label %3541

1831:                                             ; preds = %1770, %1746
  %1832 = load ptr, ptr %5, align 8, !tbaa !5
  %1833 = getelementptr inbounds %struct.LodePNGInfo, ptr %1832, i32 0, i32 8
  %1834 = load i64, ptr %1833, align 8, !tbaa !29
  %1835 = icmp ne i64 3, %1834
  br i1 %1835, label %1836, label %1909

1836:                                             ; preds = %1831
  call void @llvm.lifetime.start.p0(i64 32, ptr %172) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %173) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %174) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %175) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %176) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %177) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %177)
          to label %1837 unwind label %1861

1837:                                             ; preds = %1836
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %175, ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef @.str.222)
          to label %1838 unwind label %1865

1838:                                             ; preds = %1837
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %174, ptr noundef nonnull align 8 dereferenceable(32) %175, ptr noundef @.str.3)
          to label %1839 unwind label %1869

1839:                                             ; preds = %1838
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %173, ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef @.str.223)
          to label %1840 unwind label %1873

1840:                                             ; preds = %1839
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %172, ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef @.str.18)
          to label %1841 unwind label %1877

1841:                                             ; preds = %1840
  %1842 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %172)
          to label %1843 unwind label %1881

1843:                                             ; preds = %1841
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %173) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #7
  %1844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1845 unwind label %1808

1845:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 32, ptr %178) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #7
  store i32 3, ptr %179, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %178, ptr noundef nonnull align 4 dereferenceable(4) %179)
          to label %1846 unwind label %1890

1846:                                             ; preds = %1845
  %1847 = 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) %1844, ptr noundef nonnull align 8 dereferenceable(32) %178)
          to label %1848 unwind label %1894

1848:                                             ; preds = %1846
  %1849 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1847, ptr noundef @.str.20)
          to label %1850 unwind label %1894

1850:                                             ; preds = %1848
  call void @llvm.lifetime.start.p0(i64 32, ptr %180) #7
  %1851 = load ptr, ptr %5, align 8, !tbaa !5
  %1852 = getelementptr inbounds %struct.LodePNGInfo, ptr %1851, i32 0, i32 8
  invoke void @_Z8valtostrImENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %180, ptr noundef nonnull align 8 dereferenceable(8) %1852)
          to label %1853 unwind label %1898

1853:                                             ; preds = %1850
  %1854 = 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) %1849, ptr noundef nonnull align 8 dereferenceable(32) %180)
          to label %1855 unwind label %1902

1855:                                             ; preds = %1853
  %1856 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1854, ptr noundef @.str.21)
          to label %1857 unwind label %1902

1857:                                             ; preds = %1855
  %1858 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1856, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1859 unwind label %1902

1859:                                             ; preds = %1857
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #7
  invoke void @_Z4failv()
          to label %1860 unwind label %1808

1860:                                             ; preds = %1859
  br label %1909

1861:                                             ; preds = %1836
  %1862 = landingpad { ptr, i32 }
          cleanup
  %1863 = extractvalue { ptr, i32 } %1862, 0
  store ptr %1863, ptr %2, align 8
  %1864 = extractvalue { ptr, i32 } %1862, 1
  store i32 %1864, ptr %3, align 4
  br label %1889

1865:                                             ; preds = %1837
  %1866 = landingpad { ptr, i32 }
          cleanup
  %1867 = extractvalue { ptr, i32 } %1866, 0
  store ptr %1867, ptr %2, align 8
  %1868 = extractvalue { ptr, i32 } %1866, 1
  store i32 %1868, ptr %3, align 4
  br label %1888

1869:                                             ; preds = %1838
  %1870 = landingpad { ptr, i32 }
          cleanup
  %1871 = extractvalue { ptr, i32 } %1870, 0
  store ptr %1871, ptr %2, align 8
  %1872 = extractvalue { ptr, i32 } %1870, 1
  store i32 %1872, ptr %3, align 4
  br label %1887

1873:                                             ; preds = %1839
  %1874 = landingpad { ptr, i32 }
          cleanup
  %1875 = extractvalue { ptr, i32 } %1874, 0
  store ptr %1875, ptr %2, align 8
  %1876 = extractvalue { ptr, i32 } %1874, 1
  store i32 %1876, ptr %3, align 4
  br label %1886

1877:                                             ; preds = %1840
  %1878 = landingpad { ptr, i32 }
          cleanup
  %1879 = extractvalue { ptr, i32 } %1878, 0
  store ptr %1879, ptr %2, align 8
  %1880 = extractvalue { ptr, i32 } %1878, 1
  store i32 %1880, ptr %3, align 4
  br label %1885

1881:                                             ; preds = %1841
  %1882 = landingpad { ptr, i32 }
          cleanup
  %1883 = extractvalue { ptr, i32 } %1882, 0
  store ptr %1883, ptr %2, align 8
  %1884 = extractvalue { ptr, i32 } %1882, 1
  store i32 %1884, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %1885

1885:                                             ; preds = %1881, %1877
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  br label %1886

1886:                                             ; preds = %1885, %1873
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #7
  br label %1887

1887:                                             ; preds = %1886, %1869
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #7
  br label %1888

1888:                                             ; preds = %1887, %1865
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #7
  br label %1889

1889:                                             ; preds = %1888, %1861
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %177) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %177) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %175) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %173) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %172) #7
  br label %3541

1890:                                             ; preds = %1845
  %1891 = landingpad { ptr, i32 }
          cleanup
  %1892 = extractvalue { ptr, i32 } %1891, 0
  store ptr %1892, ptr %2, align 8
  %1893 = extractvalue { ptr, i32 } %1891, 1
  store i32 %1893, ptr %3, align 4
  br label %1908

1894:                                             ; preds = %1848, %1846
  %1895 = landingpad { ptr, i32 }
          cleanup
  %1896 = extractvalue { ptr, i32 } %1895, 0
  store ptr %1896, ptr %2, align 8
  %1897 = extractvalue { ptr, i32 } %1895, 1
  store i32 %1897, ptr %3, align 4
  br label %1907

1898:                                             ; preds = %1850
  %1899 = landingpad { ptr, i32 }
          cleanup
  %1900 = extractvalue { ptr, i32 } %1899, 0
  store ptr %1900, ptr %2, align 8
  %1901 = extractvalue { ptr, i32 } %1899, 1
  store i32 %1901, ptr %3, align 4
  br label %1906

1902:                                             ; preds = %1857, %1855, %1853
  %1903 = landingpad { ptr, i32 }
          cleanup
  %1904 = extractvalue { ptr, i32 } %1903, 0
  store ptr %1904, ptr %2, align 8
  %1905 = extractvalue { ptr, i32 } %1903, 1
  store i32 %1905, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %180) #7
  br label %1906

1906:                                             ; preds = %1902, %1898
  call void @llvm.lifetime.end.p0(i64 32, ptr %180) #7
  br label %1907

1907:                                             ; preds = %1906, %1894
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #7
  br label %1908

1908:                                             ; preds = %1907, %1890
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %178) #7
  br label %3541

1909:                                             ; preds = %1860, %1831
  call void @llvm.lifetime.start.p0(i64 32, ptr %181) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %182) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef @.str.165, ptr noundef nonnull align 1 dereferenceable(1) %182)
          to label %1910 unwind label %1948

1910:                                             ; preds = %1909
  call void @llvm.lifetime.start.p0(i64 32, ptr %183) #7
  %1911 = load ptr, ptr %5, align 8, !tbaa !5
  %1912 = getelementptr inbounds %struct.LodePNGInfo, ptr %1911, i32 0, i32 9
  %1913 = load ptr, ptr %1912, align 8, !tbaa !30
  %1914 = getelementptr inbounds ptr, ptr %1913, i64 0
  %1915 = load ptr, ptr %1914, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %184) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef %1915, ptr noundef nonnull align 1 dereferenceable(1) %184)
          to label %1916 unwind label %1952

1916:                                             ; preds = %1910
  %1917 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %181, ptr noundef nonnull align 8 dereferenceable(32) %183) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %182) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %181) #7
  br i1 %1917, label %1918, label %2015

1918:                                             ; preds = %1916
  call void @llvm.lifetime.start.p0(i64 32, ptr %185) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %186) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %187) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %189) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %190) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %190) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %190)
          to label %1919 unwind label %1957

1919:                                             ; preds = %1918
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %188, ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef @.str.224)
          to label %1920 unwind label %1961

1920:                                             ; preds = %1919
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %187, ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef @.str.3)
          to label %1921 unwind label %1965

1921:                                             ; preds = %1920
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %186, ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef @.str.225)
          to label %1922 unwind label %1969

1922:                                             ; preds = %1921
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %185, ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef @.str.18)
          to label %1923 unwind label %1973

1923:                                             ; preds = %1922
  %1924 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %185)
          to label %1925 unwind label %1977

1925:                                             ; preds = %1923
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %190) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %190) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %189) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %187) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %185) #7
  %1926 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %1927 unwind label %1808

1927:                                             ; preds = %1925
  call void @llvm.lifetime.start.p0(i64 32, ptr %191) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %192) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %193) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str.165, ptr noundef nonnull align 1 dereferenceable(1) %193)
          to label %1928 unwind label %1986

1928:                                             ; preds = %1927
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %191, ptr noundef nonnull align 8 dereferenceable(32) %192)
          to label %1929 unwind label %1990

1929:                                             ; preds = %1928
  %1930 = 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) %1926, ptr noundef nonnull align 8 dereferenceable(32) %191)
          to label %1931 unwind label %1994

1931:                                             ; preds = %1929
  %1932 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1930, ptr noundef @.str.20)
          to label %1933 unwind label %1994

1933:                                             ; preds = %1931
  call void @llvm.lifetime.start.p0(i64 32, ptr %194) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %195) #7
  %1934 = load ptr, ptr %5, align 8, !tbaa !5
  %1935 = getelementptr inbounds %struct.LodePNGInfo, ptr %1934, i32 0, i32 9
  %1936 = load ptr, ptr %1935, align 8, !tbaa !30
  %1937 = getelementptr inbounds ptr, ptr %1936, i64 0
  %1938 = load ptr, ptr %1937, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %196) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef %1938, ptr noundef nonnull align 1 dereferenceable(1) %196)
          to label %1939 unwind label %1998

1939:                                             ; preds = %1933
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %194, ptr noundef nonnull align 8 dereferenceable(32) %195)
          to label %1940 unwind label %2002

1940:                                             ; preds = %1939
  %1941 = 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) %1932, ptr noundef nonnull align 8 dereferenceable(32) %194)
          to label %1942 unwind label %2006

1942:                                             ; preds = %1940
  %1943 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1941, ptr noundef @.str.21)
          to label %1944 unwind label %2006

1944:                                             ; preds = %1942
  %1945 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1943, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1946 unwind label %2006

1946:                                             ; preds = %1944
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %196) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %194) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %191) #7
  invoke void @_Z4failv()
          to label %1947 unwind label %1808

1947:                                             ; preds = %1946
  br label %2015

1948:                                             ; preds = %1909
  %1949 = landingpad { ptr, i32 }
          cleanup
  %1950 = extractvalue { ptr, i32 } %1949, 0
  store ptr %1950, ptr %2, align 8
  %1951 = extractvalue { ptr, i32 } %1949, 1
  store i32 %1951, ptr %3, align 4
  br label %1956

1952:                                             ; preds = %1910
  %1953 = landingpad { ptr, i32 }
          cleanup
  %1954 = extractvalue { ptr, i32 } %1953, 0
  store ptr %1954, ptr %2, align 8
  %1955 = extractvalue { ptr, i32 } %1953, 1
  store i32 %1955, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  br label %1956

1956:                                             ; preds = %1952, %1948
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %182) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %182) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %181) #7
  br label %3541

1957:                                             ; preds = %1918
  %1958 = landingpad { ptr, i32 }
          cleanup
  %1959 = extractvalue { ptr, i32 } %1958, 0
  store ptr %1959, ptr %2, align 8
  %1960 = extractvalue { ptr, i32 } %1958, 1
  store i32 %1960, ptr %3, align 4
  br label %1985

1961:                                             ; preds = %1919
  %1962 = landingpad { ptr, i32 }
          cleanup
  %1963 = extractvalue { ptr, i32 } %1962, 0
  store ptr %1963, ptr %2, align 8
  %1964 = extractvalue { ptr, i32 } %1962, 1
  store i32 %1964, ptr %3, align 4
  br label %1984

1965:                                             ; preds = %1920
  %1966 = landingpad { ptr, i32 }
          cleanup
  %1967 = extractvalue { ptr, i32 } %1966, 0
  store ptr %1967, ptr %2, align 8
  %1968 = extractvalue { ptr, i32 } %1966, 1
  store i32 %1968, ptr %3, align 4
  br label %1983

1969:                                             ; preds = %1921
  %1970 = landingpad { ptr, i32 }
          cleanup
  %1971 = extractvalue { ptr, i32 } %1970, 0
  store ptr %1971, ptr %2, align 8
  %1972 = extractvalue { ptr, i32 } %1970, 1
  store i32 %1972, ptr %3, align 4
  br label %1982

1973:                                             ; preds = %1922
  %1974 = landingpad { ptr, i32 }
          cleanup
  %1975 = extractvalue { ptr, i32 } %1974, 0
  store ptr %1975, ptr %2, align 8
  %1976 = extractvalue { ptr, i32 } %1974, 1
  store i32 %1976, ptr %3, align 4
  br label %1981

1977:                                             ; preds = %1923
  %1978 = landingpad { ptr, i32 }
          cleanup
  %1979 = extractvalue { ptr, i32 } %1978, 0
  store ptr %1979, ptr %2, align 8
  %1980 = extractvalue { ptr, i32 } %1978, 1
  store i32 %1980, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #7
  br label %1981

1981:                                             ; preds = %1977, %1973
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #7
  br label %1982

1982:                                             ; preds = %1981, %1969
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #7
  br label %1983

1983:                                             ; preds = %1982, %1965
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #7
  br label %1984

1984:                                             ; preds = %1983, %1961
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  br label %1985

1985:                                             ; preds = %1984, %1957
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %190) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %190) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %189) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %187) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %185) #7
  br label %3541

1986:                                             ; preds = %1927
  %1987 = landingpad { ptr, i32 }
          cleanup
  %1988 = extractvalue { ptr, i32 } %1987, 0
  store ptr %1988, ptr %2, align 8
  %1989 = extractvalue { ptr, i32 } %1987, 1
  store i32 %1989, ptr %3, align 4
  br label %2014

1990:                                             ; preds = %1928
  %1991 = landingpad { ptr, i32 }
          cleanup
  %1992 = extractvalue { ptr, i32 } %1991, 0
  store ptr %1992, ptr %2, align 8
  %1993 = extractvalue { ptr, i32 } %1991, 1
  store i32 %1993, ptr %3, align 4
  br label %2013

1994:                                             ; preds = %1931, %1929
  %1995 = landingpad { ptr, i32 }
          cleanup
  %1996 = extractvalue { ptr, i32 } %1995, 0
  store ptr %1996, ptr %2, align 8
  %1997 = extractvalue { ptr, i32 } %1995, 1
  store i32 %1997, ptr %3, align 4
  br label %2012

1998:                                             ; preds = %1933
  %1999 = landingpad { ptr, i32 }
          cleanup
  %2000 = extractvalue { ptr, i32 } %1999, 0
  store ptr %2000, ptr %2, align 8
  %2001 = extractvalue { ptr, i32 } %1999, 1
  store i32 %2001, ptr %3, align 4
  br label %2011

2002:                                             ; preds = %1939
  %2003 = landingpad { ptr, i32 }
          cleanup
  %2004 = extractvalue { ptr, i32 } %2003, 0
  store ptr %2004, ptr %2, align 8
  %2005 = extractvalue { ptr, i32 } %2003, 1
  store i32 %2005, ptr %3, align 4
  br label %2010

2006:                                             ; preds = %1944, %1942, %1940
  %2007 = landingpad { ptr, i32 }
          cleanup
  %2008 = extractvalue { ptr, i32 } %2007, 0
  store ptr %2008, ptr %2, align 8
  %2009 = extractvalue { ptr, i32 } %2007, 1
  store i32 %2009, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #7
  br label %2010

2010:                                             ; preds = %2006, %2002
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #7
  br label %2011

2011:                                             ; preds = %2010, %1998
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %196) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %194) #7
  br label %2012

2012:                                             ; preds = %2011, %1994
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #7
  br label %2013

2013:                                             ; preds = %2012, %1990
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #7
  br label %2014

2014:                                             ; preds = %2013, %1986
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %193) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %193) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %191) #7
  br label %3541

2015:                                             ; preds = %1947, %1916
  call void @llvm.lifetime.start.p0(i64 32, ptr %197) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %198) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %198) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef @.str.166, ptr noundef nonnull align 1 dereferenceable(1) %198)
          to label %2016 unwind label %2054

2016:                                             ; preds = %2015
  call void @llvm.lifetime.start.p0(i64 32, ptr %199) #7
  %2017 = load ptr, ptr %5, align 8, !tbaa !5
  %2018 = getelementptr inbounds %struct.LodePNGInfo, ptr %2017, i32 0, i32 10
  %2019 = load ptr, ptr %2018, align 8, !tbaa !31
  %2020 = getelementptr inbounds ptr, ptr %2019, i64 0
  %2021 = load ptr, ptr %2020, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %200) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef %2021, ptr noundef nonnull align 1 dereferenceable(1) %200)
          to label %2022 unwind label %2058

2022:                                             ; preds = %2016
  %2023 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %199) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %199) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %198) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %198) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #7
  br i1 %2023, label %2024, label %2121

2024:                                             ; preds = %2022
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %202) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %203) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %204) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %205) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %206) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %206)
          to label %2025 unwind label %2063

2025:                                             ; preds = %2024
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %204, ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef @.str.226)
          to label %2026 unwind label %2067

2026:                                             ; preds = %2025
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %203, ptr noundef nonnull align 8 dereferenceable(32) %204, ptr noundef @.str.3)
          to label %2027 unwind label %2071

2027:                                             ; preds = %2026
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %202, ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef @.str.227)
          to label %2028 unwind label %2075

2028:                                             ; preds = %2027
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %201, ptr noundef nonnull align 8 dereferenceable(32) %202, ptr noundef @.str.18)
          to label %2029 unwind label %2079

2029:                                             ; preds = %2028
  %2030 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %201)
          to label %2031 unwind label %2083

2031:                                             ; preds = %2029
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %205) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #7
  %2032 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2033 unwind label %1808

2033:                                             ; preds = %2031
  call void @llvm.lifetime.start.p0(i64 32, ptr %207) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %208) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %209) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef @.str.166, ptr noundef nonnull align 1 dereferenceable(1) %209)
          to label %2034 unwind label %2092

2034:                                             ; preds = %2033
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %207, ptr noundef nonnull align 8 dereferenceable(32) %208)
          to label %2035 unwind label %2096

2035:                                             ; preds = %2034
  %2036 = 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) %2032, ptr noundef nonnull align 8 dereferenceable(32) %207)
          to label %2037 unwind label %2100

2037:                                             ; preds = %2035
  %2038 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2036, ptr noundef @.str.20)
          to label %2039 unwind label %2100

2039:                                             ; preds = %2037
  call void @llvm.lifetime.start.p0(i64 32, ptr %210) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %211) #7
  %2040 = load ptr, ptr %5, align 8, !tbaa !5
  %2041 = getelementptr inbounds %struct.LodePNGInfo, ptr %2040, i32 0, i32 10
  %2042 = load ptr, ptr %2041, align 8, !tbaa !31
  %2043 = getelementptr inbounds ptr, ptr %2042, i64 0
  %2044 = load ptr, ptr %2043, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %212) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef %2044, ptr noundef nonnull align 1 dereferenceable(1) %212)
          to label %2045 unwind label %2104

2045:                                             ; preds = %2039
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %210, ptr noundef nonnull align 8 dereferenceable(32) %211)
          to label %2046 unwind label %2108

2046:                                             ; preds = %2045
  %2047 = 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) %2038, ptr noundef nonnull align 8 dereferenceable(32) %210)
          to label %2048 unwind label %2112

2048:                                             ; preds = %2046
  %2049 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2047, ptr noundef @.str.21)
          to label %2050 unwind label %2112

2050:                                             ; preds = %2048
  %2051 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2049, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2052 unwind label %2112

2052:                                             ; preds = %2050
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %212) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %211) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %209) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %208) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #7
  invoke void @_Z4failv()
          to label %2053 unwind label %1808

2053:                                             ; preds = %2052
  br label %2121

2054:                                             ; preds = %2015
  %2055 = landingpad { ptr, i32 }
          cleanup
  %2056 = extractvalue { ptr, i32 } %2055, 0
  store ptr %2056, ptr %2, align 8
  %2057 = extractvalue { ptr, i32 } %2055, 1
  store i32 %2057, ptr %3, align 4
  br label %2062

2058:                                             ; preds = %2016
  %2059 = landingpad { ptr, i32 }
          cleanup
  %2060 = extractvalue { ptr, i32 } %2059, 0
  store ptr %2060, ptr %2, align 8
  %2061 = extractvalue { ptr, i32 } %2059, 1
  store i32 %2061, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %200) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %200) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %199) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  br label %2062

2062:                                             ; preds = %2058, %2054
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %198) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %198) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #7
  br label %3541

2063:                                             ; preds = %2024
  %2064 = landingpad { ptr, i32 }
          cleanup
  %2065 = extractvalue { ptr, i32 } %2064, 0
  store ptr %2065, ptr %2, align 8
  %2066 = extractvalue { ptr, i32 } %2064, 1
  store i32 %2066, ptr %3, align 4
  br label %2091

2067:                                             ; preds = %2025
  %2068 = landingpad { ptr, i32 }
          cleanup
  %2069 = extractvalue { ptr, i32 } %2068, 0
  store ptr %2069, ptr %2, align 8
  %2070 = extractvalue { ptr, i32 } %2068, 1
  store i32 %2070, ptr %3, align 4
  br label %2090

2071:                                             ; preds = %2026
  %2072 = landingpad { ptr, i32 }
          cleanup
  %2073 = extractvalue { ptr, i32 } %2072, 0
  store ptr %2073, ptr %2, align 8
  %2074 = extractvalue { ptr, i32 } %2072, 1
  store i32 %2074, ptr %3, align 4
  br label %2089

2075:                                             ; preds = %2027
  %2076 = landingpad { ptr, i32 }
          cleanup
  %2077 = extractvalue { ptr, i32 } %2076, 0
  store ptr %2077, ptr %2, align 8
  %2078 = extractvalue { ptr, i32 } %2076, 1
  store i32 %2078, ptr %3, align 4
  br label %2088

2079:                                             ; preds = %2028
  %2080 = landingpad { ptr, i32 }
          cleanup
  %2081 = extractvalue { ptr, i32 } %2080, 0
  store ptr %2081, ptr %2, align 8
  %2082 = extractvalue { ptr, i32 } %2080, 1
  store i32 %2082, ptr %3, align 4
  br label %2087

2083:                                             ; preds = %2029
  %2084 = landingpad { ptr, i32 }
          cleanup
  %2085 = extractvalue { ptr, i32 } %2084, 0
  store ptr %2085, ptr %2, align 8
  %2086 = extractvalue { ptr, i32 } %2084, 1
  store i32 %2086, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #7
  br label %2087

2087:                                             ; preds = %2083, %2079
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %202) #7
  br label %2088

2088:                                             ; preds = %2087, %2075
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #7
  br label %2089

2089:                                             ; preds = %2088, %2071
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %204) #7
  br label %2090

2090:                                             ; preds = %2089, %2067
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  br label %2091

2091:                                             ; preds = %2090, %2063
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %206) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %205) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %204) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %202) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #7
  br label %3541

2092:                                             ; preds = %2033
  %2093 = landingpad { ptr, i32 }
          cleanup
  %2094 = extractvalue { ptr, i32 } %2093, 0
  store ptr %2094, ptr %2, align 8
  %2095 = extractvalue { ptr, i32 } %2093, 1
  store i32 %2095, ptr %3, align 4
  br label %2120

2096:                                             ; preds = %2034
  %2097 = landingpad { ptr, i32 }
          cleanup
  %2098 = extractvalue { ptr, i32 } %2097, 0
  store ptr %2098, ptr %2, align 8
  %2099 = extractvalue { ptr, i32 } %2097, 1
  store i32 %2099, ptr %3, align 4
  br label %2119

2100:                                             ; preds = %2037, %2035
  %2101 = landingpad { ptr, i32 }
          cleanup
  %2102 = extractvalue { ptr, i32 } %2101, 0
  store ptr %2102, ptr %2, align 8
  %2103 = extractvalue { ptr, i32 } %2101, 1
  store i32 %2103, ptr %3, align 4
  br label %2118

2104:                                             ; preds = %2039
  %2105 = landingpad { ptr, i32 }
          cleanup
  %2106 = extractvalue { ptr, i32 } %2105, 0
  store ptr %2106, ptr %2, align 8
  %2107 = extractvalue { ptr, i32 } %2105, 1
  store i32 %2107, ptr %3, align 4
  br label %2117

2108:                                             ; preds = %2045
  %2109 = landingpad { ptr, i32 }
          cleanup
  %2110 = extractvalue { ptr, i32 } %2109, 0
  store ptr %2110, ptr %2, align 8
  %2111 = extractvalue { ptr, i32 } %2109, 1
  store i32 %2111, ptr %3, align 4
  br label %2116

2112:                                             ; preds = %2050, %2048, %2046
  %2113 = landingpad { ptr, i32 }
          cleanup
  %2114 = extractvalue { ptr, i32 } %2113, 0
  store ptr %2114, ptr %2, align 8
  %2115 = extractvalue { ptr, i32 } %2113, 1
  store i32 %2115, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #7
  br label %2116

2116:                                             ; preds = %2112, %2108
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #7
  br label %2117

2117:                                             ; preds = %2116, %2104
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %212) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %211) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #7
  br label %2118

2118:                                             ; preds = %2117, %2100
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #7
  br label %2119

2119:                                             ; preds = %2118, %2096
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  br label %2120

2120:                                             ; preds = %2119, %2092
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %209) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %208) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #7
  br label %3541

2121:                                             ; preds = %2053, %2022
  call void @llvm.lifetime.start.p0(i64 32, ptr %213) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %214) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef @.str.167, ptr noundef nonnull align 1 dereferenceable(1) %214)
          to label %2122 unwind label %2160

2122:                                             ; preds = %2121
  call void @llvm.lifetime.start.p0(i64 32, ptr %215) #7
  %2123 = load ptr, ptr %5, align 8, !tbaa !5
  %2124 = getelementptr inbounds %struct.LodePNGInfo, ptr %2123, i32 0, i32 9
  %2125 = load ptr, ptr %2124, align 8, !tbaa !30
  %2126 = getelementptr inbounds ptr, ptr %2125, i64 1
  %2127 = load ptr, ptr %2126, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %216) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %216) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %215, ptr noundef %2127, ptr noundef nonnull align 1 dereferenceable(1) %216)
          to label %2128 unwind label %2164

2128:                                             ; preds = %2122
  %2129 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %213, ptr noundef nonnull align 8 dereferenceable(32) %215) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %216) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %216) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %215) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %213) #7
  br i1 %2129, label %2130, label %2227

2130:                                             ; preds = %2128
  call void @llvm.lifetime.start.p0(i64 32, ptr %217) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %218) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %219) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %220) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %221) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %222) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %222)
          to label %2131 unwind label %2169

2131:                                             ; preds = %2130
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %220, ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef @.str.228)
          to label %2132 unwind label %2173

2132:                                             ; preds = %2131
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %219, ptr noundef nonnull align 8 dereferenceable(32) %220, ptr noundef @.str.3)
          to label %2133 unwind label %2177

2133:                                             ; preds = %2132
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %218, ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef @.str.229)
          to label %2134 unwind label %2181

2134:                                             ; preds = %2133
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %217, ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef @.str.18)
          to label %2135 unwind label %2185

2135:                                             ; preds = %2134
  %2136 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %217)
          to label %2137 unwind label %2189

2137:                                             ; preds = %2135
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %222) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %220) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %219) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #7
  %2138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2139 unwind label %1808

2139:                                             ; preds = %2137
  call void @llvm.lifetime.start.p0(i64 32, ptr %223) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %224) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %225) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef @.str.167, ptr noundef nonnull align 1 dereferenceable(1) %225)
          to label %2140 unwind label %2198

2140:                                             ; preds = %2139
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %223, ptr noundef nonnull align 8 dereferenceable(32) %224)
          to label %2141 unwind label %2202

2141:                                             ; preds = %2140
  %2142 = 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) %2138, ptr noundef nonnull align 8 dereferenceable(32) %223)
          to label %2143 unwind label %2206

2143:                                             ; preds = %2141
  %2144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2142, ptr noundef @.str.20)
          to label %2145 unwind label %2206

2145:                                             ; preds = %2143
  call void @llvm.lifetime.start.p0(i64 32, ptr %226) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %227) #7
  %2146 = load ptr, ptr %5, align 8, !tbaa !5
  %2147 = getelementptr inbounds %struct.LodePNGInfo, ptr %2146, i32 0, i32 9
  %2148 = load ptr, ptr %2147, align 8, !tbaa !30
  %2149 = getelementptr inbounds ptr, ptr %2148, i64 1
  %2150 = load ptr, ptr %2149, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %228) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef %2150, ptr noundef nonnull align 1 dereferenceable(1) %228)
          to label %2151 unwind label %2210

2151:                                             ; preds = %2145
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %226, ptr noundef nonnull align 8 dereferenceable(32) %227)
          to label %2152 unwind label %2214

2152:                                             ; preds = %2151
  %2153 = 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) %2144, ptr noundef nonnull align 8 dereferenceable(32) %226)
          to label %2154 unwind label %2218

2154:                                             ; preds = %2152
  %2155 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2153, ptr noundef @.str.21)
          to label %2156 unwind label %2218

2156:                                             ; preds = %2154
  %2157 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2155, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2158 unwind label %2218

2158:                                             ; preds = %2156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %228) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %225) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %223) #7
  invoke void @_Z4failv()
          to label %2159 unwind label %1808

2159:                                             ; preds = %2158
  br label %2227

2160:                                             ; preds = %2121
  %2161 = landingpad { ptr, i32 }
          cleanup
  %2162 = extractvalue { ptr, i32 } %2161, 0
  store ptr %2162, ptr %2, align 8
  %2163 = extractvalue { ptr, i32 } %2161, 1
  store i32 %2163, ptr %3, align 4
  br label %2168

2164:                                             ; preds = %2122
  %2165 = landingpad { ptr, i32 }
          cleanup
  %2166 = extractvalue { ptr, i32 } %2165, 0
  store ptr %2166, ptr %2, align 8
  %2167 = extractvalue { ptr, i32 } %2165, 1
  store i32 %2167, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %216) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %216) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %215) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  br label %2168

2168:                                             ; preds = %2164, %2160
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %214) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %214) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %213) #7
  br label %3541

2169:                                             ; preds = %2130
  %2170 = landingpad { ptr, i32 }
          cleanup
  %2171 = extractvalue { ptr, i32 } %2170, 0
  store ptr %2171, ptr %2, align 8
  %2172 = extractvalue { ptr, i32 } %2170, 1
  store i32 %2172, ptr %3, align 4
  br label %2197

2173:                                             ; preds = %2131
  %2174 = landingpad { ptr, i32 }
          cleanup
  %2175 = extractvalue { ptr, i32 } %2174, 0
  store ptr %2175, ptr %2, align 8
  %2176 = extractvalue { ptr, i32 } %2174, 1
  store i32 %2176, ptr %3, align 4
  br label %2196

2177:                                             ; preds = %2132
  %2178 = landingpad { ptr, i32 }
          cleanup
  %2179 = extractvalue { ptr, i32 } %2178, 0
  store ptr %2179, ptr %2, align 8
  %2180 = extractvalue { ptr, i32 } %2178, 1
  store i32 %2180, ptr %3, align 4
  br label %2195

2181:                                             ; preds = %2133
  %2182 = landingpad { ptr, i32 }
          cleanup
  %2183 = extractvalue { ptr, i32 } %2182, 0
  store ptr %2183, ptr %2, align 8
  %2184 = extractvalue { ptr, i32 } %2182, 1
  store i32 %2184, ptr %3, align 4
  br label %2194

2185:                                             ; preds = %2134
  %2186 = landingpad { ptr, i32 }
          cleanup
  %2187 = extractvalue { ptr, i32 } %2186, 0
  store ptr %2187, ptr %2, align 8
  %2188 = extractvalue { ptr, i32 } %2186, 1
  store i32 %2188, ptr %3, align 4
  br label %2193

2189:                                             ; preds = %2135
  %2190 = landingpad { ptr, i32 }
          cleanup
  %2191 = extractvalue { ptr, i32 } %2190, 0
  store ptr %2191, ptr %2, align 8
  %2192 = extractvalue { ptr, i32 } %2190, 1
  store i32 %2192, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #7
  br label %2193

2193:                                             ; preds = %2189, %2185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #7
  br label %2194

2194:                                             ; preds = %2193, %2181
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #7
  br label %2195

2195:                                             ; preds = %2194, %2177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #7
  br label %2196

2196:                                             ; preds = %2195, %2173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  br label %2197

2197:                                             ; preds = %2196, %2169
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %222) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %220) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %219) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %217) #7
  br label %3541

2198:                                             ; preds = %2139
  %2199 = landingpad { ptr, i32 }
          cleanup
  %2200 = extractvalue { ptr, i32 } %2199, 0
  store ptr %2200, ptr %2, align 8
  %2201 = extractvalue { ptr, i32 } %2199, 1
  store i32 %2201, ptr %3, align 4
  br label %2226

2202:                                             ; preds = %2140
  %2203 = landingpad { ptr, i32 }
          cleanup
  %2204 = extractvalue { ptr, i32 } %2203, 0
  store ptr %2204, ptr %2, align 8
  %2205 = extractvalue { ptr, i32 } %2203, 1
  store i32 %2205, ptr %3, align 4
  br label %2225

2206:                                             ; preds = %2143, %2141
  %2207 = landingpad { ptr, i32 }
          cleanup
  %2208 = extractvalue { ptr, i32 } %2207, 0
  store ptr %2208, ptr %2, align 8
  %2209 = extractvalue { ptr, i32 } %2207, 1
  store i32 %2209, ptr %3, align 4
  br label %2224

2210:                                             ; preds = %2145
  %2211 = landingpad { ptr, i32 }
          cleanup
  %2212 = extractvalue { ptr, i32 } %2211, 0
  store ptr %2212, ptr %2, align 8
  %2213 = extractvalue { ptr, i32 } %2211, 1
  store i32 %2213, ptr %3, align 4
  br label %2223

2214:                                             ; preds = %2151
  %2215 = landingpad { ptr, i32 }
          cleanup
  %2216 = extractvalue { ptr, i32 } %2215, 0
  store ptr %2216, ptr %2, align 8
  %2217 = extractvalue { ptr, i32 } %2215, 1
  store i32 %2217, ptr %3, align 4
  br label %2222

2218:                                             ; preds = %2156, %2154, %2152
  %2219 = landingpad { ptr, i32 }
          cleanup
  %2220 = extractvalue { ptr, i32 } %2219, 0
  store ptr %2220, ptr %2, align 8
  %2221 = extractvalue { ptr, i32 } %2219, 1
  store i32 %2221, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  br label %2222

2222:                                             ; preds = %2218, %2214
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #7
  br label %2223

2223:                                             ; preds = %2222, %2210
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %228) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #7
  br label %2224

2224:                                             ; preds = %2223, %2206
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #7
  br label %2225

2225:                                             ; preds = %2224, %2202
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #7
  br label %2226

2226:                                             ; preds = %2225, %2198
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %225) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %225) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %224) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %223) #7
  br label %3541

2227:                                             ; preds = %2159, %2128
  call void @llvm.lifetime.start.p0(i64 32, ptr %229) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %230) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %230) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef @.str.168, ptr noundef nonnull align 1 dereferenceable(1) %230)
          to label %2228 unwind label %2266

2228:                                             ; preds = %2227
  call void @llvm.lifetime.start.p0(i64 32, ptr %231) #7
  %2229 = load ptr, ptr %5, align 8, !tbaa !5
  %2230 = getelementptr inbounds %struct.LodePNGInfo, ptr %2229, i32 0, i32 10
  %2231 = load ptr, ptr %2230, align 8, !tbaa !31
  %2232 = getelementptr inbounds ptr, ptr %2231, i64 1
  %2233 = load ptr, ptr %2232, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %232) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef %2233, ptr noundef nonnull align 1 dereferenceable(1) %232)
          to label %2234 unwind label %2270

2234:                                             ; preds = %2228
  %2235 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %229, ptr noundef nonnull align 8 dereferenceable(32) %231) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %232) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %230) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #7
  br i1 %2235, label %2236, label %2333

2236:                                             ; preds = %2234
  call void @llvm.lifetime.start.p0(i64 32, ptr %233) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %234) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %235) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %236) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %237) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %238) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %238)
          to label %2237 unwind label %2275

2237:                                             ; preds = %2236
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %236, ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef @.str.230)
          to label %2238 unwind label %2279

2238:                                             ; preds = %2237
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %235, ptr noundef nonnull align 8 dereferenceable(32) %236, ptr noundef @.str.3)
          to label %2239 unwind label %2283

2239:                                             ; preds = %2238
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %234, ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef @.str.231)
          to label %2240 unwind label %2287

2240:                                             ; preds = %2239
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %233, ptr noundef nonnull align 8 dereferenceable(32) %234, ptr noundef @.str.18)
          to label %2241 unwind label %2291

2241:                                             ; preds = %2240
  %2242 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %233)
          to label %2243 unwind label %2295

2243:                                             ; preds = %2241
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %238) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %237) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %236) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %235) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %233) #7
  %2244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2245 unwind label %1808

2245:                                             ; preds = %2243
  call void @llvm.lifetime.start.p0(i64 32, ptr %239) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %240) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %241) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef @.str.168, ptr noundef nonnull align 1 dereferenceable(1) %241)
          to label %2246 unwind label %2304

2246:                                             ; preds = %2245
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %239, ptr noundef nonnull align 8 dereferenceable(32) %240)
          to label %2247 unwind label %2308

2247:                                             ; preds = %2246
  %2248 = 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) %2244, ptr noundef nonnull align 8 dereferenceable(32) %239)
          to label %2249 unwind label %2312

2249:                                             ; preds = %2247
  %2250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2248, ptr noundef @.str.20)
          to label %2251 unwind label %2312

2251:                                             ; preds = %2249
  call void @llvm.lifetime.start.p0(i64 32, ptr %242) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %243) #7
  %2252 = load ptr, ptr %5, align 8, !tbaa !5
  %2253 = getelementptr inbounds %struct.LodePNGInfo, ptr %2252, i32 0, i32 10
  %2254 = load ptr, ptr %2253, align 8, !tbaa !31
  %2255 = getelementptr inbounds ptr, ptr %2254, i64 1
  %2256 = load ptr, ptr %2255, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %244) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef %2256, ptr noundef nonnull align 1 dereferenceable(1) %244)
          to label %2257 unwind label %2316

2257:                                             ; preds = %2251
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %242, ptr noundef nonnull align 8 dereferenceable(32) %243)
          to label %2258 unwind label %2320

2258:                                             ; preds = %2257
  %2259 = 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) %2250, ptr noundef nonnull align 8 dereferenceable(32) %242)
          to label %2260 unwind label %2324

2260:                                             ; preds = %2258
  %2261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2259, ptr noundef @.str.21)
          to label %2262 unwind label %2324

2262:                                             ; preds = %2260
  %2263 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2261, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2264 unwind label %2324

2264:                                             ; preds = %2262
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %244) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %239) #7
  invoke void @_Z4failv()
          to label %2265 unwind label %1808

2265:                                             ; preds = %2264
  br label %2333

2266:                                             ; preds = %2227
  %2267 = landingpad { ptr, i32 }
          cleanup
  %2268 = extractvalue { ptr, i32 } %2267, 0
  store ptr %2268, ptr %2, align 8
  %2269 = extractvalue { ptr, i32 } %2267, 1
  store i32 %2269, ptr %3, align 4
  br label %2274

2270:                                             ; preds = %2228
  %2271 = landingpad { ptr, i32 }
          cleanup
  %2272 = extractvalue { ptr, i32 } %2271, 0
  store ptr %2272, ptr %2, align 8
  %2273 = extractvalue { ptr, i32 } %2271, 1
  store i32 %2273, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %232) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  br label %2274

2274:                                             ; preds = %2270, %2266
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %230) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #7
  br label %3541

2275:                                             ; preds = %2236
  %2276 = landingpad { ptr, i32 }
          cleanup
  %2277 = extractvalue { ptr, i32 } %2276, 0
  store ptr %2277, ptr %2, align 8
  %2278 = extractvalue { ptr, i32 } %2276, 1
  store i32 %2278, ptr %3, align 4
  br label %2303

2279:                                             ; preds = %2237
  %2280 = landingpad { ptr, i32 }
          cleanup
  %2281 = extractvalue { ptr, i32 } %2280, 0
  store ptr %2281, ptr %2, align 8
  %2282 = extractvalue { ptr, i32 } %2280, 1
  store i32 %2282, ptr %3, align 4
  br label %2302

2283:                                             ; preds = %2238
  %2284 = landingpad { ptr, i32 }
          cleanup
  %2285 = extractvalue { ptr, i32 } %2284, 0
  store ptr %2285, ptr %2, align 8
  %2286 = extractvalue { ptr, i32 } %2284, 1
  store i32 %2286, ptr %3, align 4
  br label %2301

2287:                                             ; preds = %2239
  %2288 = landingpad { ptr, i32 }
          cleanup
  %2289 = extractvalue { ptr, i32 } %2288, 0
  store ptr %2289, ptr %2, align 8
  %2290 = extractvalue { ptr, i32 } %2288, 1
  store i32 %2290, ptr %3, align 4
  br label %2300

2291:                                             ; preds = %2240
  %2292 = landingpad { ptr, i32 }
          cleanup
  %2293 = extractvalue { ptr, i32 } %2292, 0
  store ptr %2293, ptr %2, align 8
  %2294 = extractvalue { ptr, i32 } %2292, 1
  store i32 %2294, ptr %3, align 4
  br label %2299

2295:                                             ; preds = %2241
  %2296 = landingpad { ptr, i32 }
          cleanup
  %2297 = extractvalue { ptr, i32 } %2296, 0
  store ptr %2297, ptr %2, align 8
  %2298 = extractvalue { ptr, i32 } %2296, 1
  store i32 %2298, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #7
  br label %2299

2299:                                             ; preds = %2295, %2291
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %234) #7
  br label %2300

2300:                                             ; preds = %2299, %2287
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #7
  br label %2301

2301:                                             ; preds = %2300, %2283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %236) #7
  br label %2302

2302:                                             ; preds = %2301, %2279
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  br label %2303

2303:                                             ; preds = %2302, %2275
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %238) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %237) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %236) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %235) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %234) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %233) #7
  br label %3541

2304:                                             ; preds = %2245
  %2305 = landingpad { ptr, i32 }
          cleanup
  %2306 = extractvalue { ptr, i32 } %2305, 0
  store ptr %2306, ptr %2, align 8
  %2307 = extractvalue { ptr, i32 } %2305, 1
  store i32 %2307, ptr %3, align 4
  br label %2332

2308:                                             ; preds = %2246
  %2309 = landingpad { ptr, i32 }
          cleanup
  %2310 = extractvalue { ptr, i32 } %2309, 0
  store ptr %2310, ptr %2, align 8
  %2311 = extractvalue { ptr, i32 } %2309, 1
  store i32 %2311, ptr %3, align 4
  br label %2331

2312:                                             ; preds = %2249, %2247
  %2313 = landingpad { ptr, i32 }
          cleanup
  %2314 = extractvalue { ptr, i32 } %2313, 0
  store ptr %2314, ptr %2, align 8
  %2315 = extractvalue { ptr, i32 } %2313, 1
  store i32 %2315, ptr %3, align 4
  br label %2330

2316:                                             ; preds = %2251
  %2317 = landingpad { ptr, i32 }
          cleanup
  %2318 = extractvalue { ptr, i32 } %2317, 0
  store ptr %2318, ptr %2, align 8
  %2319 = extractvalue { ptr, i32 } %2317, 1
  store i32 %2319, ptr %3, align 4
  br label %2329

2320:                                             ; preds = %2257
  %2321 = landingpad { ptr, i32 }
          cleanup
  %2322 = extractvalue { ptr, i32 } %2321, 0
  store ptr %2322, ptr %2, align 8
  %2323 = extractvalue { ptr, i32 } %2321, 1
  store i32 %2323, ptr %3, align 4
  br label %2328

2324:                                             ; preds = %2262, %2260, %2258
  %2325 = landingpad { ptr, i32 }
          cleanup
  %2326 = extractvalue { ptr, i32 } %2325, 0
  store ptr %2326, ptr %2, align 8
  %2327 = extractvalue { ptr, i32 } %2325, 1
  store i32 %2327, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #7
  br label %2328

2328:                                             ; preds = %2324, %2320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #7
  br label %2329

2329:                                             ; preds = %2328, %2316
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %244) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %243) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #7
  br label %2330

2330:                                             ; preds = %2329, %2312
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #7
  br label %2331

2331:                                             ; preds = %2330, %2308
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #7
  br label %2332

2332:                                             ; preds = %2331, %2304
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %241) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %241) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %240) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %239) #7
  br label %3541

2333:                                             ; preds = %2265, %2234
  call void @llvm.lifetime.start.p0(i64 32, ptr %245) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %246) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef @.str.232, ptr noundef nonnull align 1 dereferenceable(1) %246)
          to label %2334 unwind label %2372

2334:                                             ; preds = %2333
  call void @llvm.lifetime.start.p0(i64 32, ptr %247) #7
  %2335 = load ptr, ptr %5, align 8, !tbaa !5
  %2336 = getelementptr inbounds %struct.LodePNGInfo, ptr %2335, i32 0, i32 9
  %2337 = load ptr, ptr %2336, align 8, !tbaa !30
  %2338 = getelementptr inbounds ptr, ptr %2337, i64 2
  %2339 = load ptr, ptr %2338, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %248) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %248) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %247, ptr noundef %2339, ptr noundef nonnull align 1 dereferenceable(1) %248)
          to label %2340 unwind label %2376

2340:                                             ; preds = %2334
  %2341 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %245, ptr noundef nonnull align 8 dereferenceable(32) %247) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %247) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %248) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %248) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %247) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %246) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #7
  br i1 %2341, label %2342, label %2439

2342:                                             ; preds = %2340
  call void @llvm.lifetime.start.p0(i64 32, ptr %249) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %250) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %251) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %252) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %253) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %254) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %254)
          to label %2343 unwind label %2381

2343:                                             ; preds = %2342
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %252, ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef @.str.233)
          to label %2344 unwind label %2385

2344:                                             ; preds = %2343
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %251, ptr noundef nonnull align 8 dereferenceable(32) %252, ptr noundef @.str.3)
          to label %2345 unwind label %2389

2345:                                             ; preds = %2344
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %250, ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef @.str.234)
          to label %2346 unwind label %2393

2346:                                             ; preds = %2345
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %249, ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef @.str.18)
          to label %2347 unwind label %2397

2347:                                             ; preds = %2346
  %2348 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %249)
          to label %2349 unwind label %2401

2349:                                             ; preds = %2347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %254) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %253) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %251) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %249) #7
  %2350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2351 unwind label %1808

2351:                                             ; preds = %2349
  call void @llvm.lifetime.start.p0(i64 32, ptr %255) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %256) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %257) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef @.str.232, ptr noundef nonnull align 1 dereferenceable(1) %257)
          to label %2352 unwind label %2410

2352:                                             ; preds = %2351
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %255, ptr noundef nonnull align 8 dereferenceable(32) %256)
          to label %2353 unwind label %2414

2353:                                             ; preds = %2352
  %2354 = 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) %2350, ptr noundef nonnull align 8 dereferenceable(32) %255)
          to label %2355 unwind label %2418

2355:                                             ; preds = %2353
  %2356 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2354, ptr noundef @.str.20)
          to label %2357 unwind label %2418

2357:                                             ; preds = %2355
  call void @llvm.lifetime.start.p0(i64 32, ptr %258) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %259) #7
  %2358 = load ptr, ptr %5, align 8, !tbaa !5
  %2359 = getelementptr inbounds %struct.LodePNGInfo, ptr %2358, i32 0, i32 9
  %2360 = load ptr, ptr %2359, align 8, !tbaa !30
  %2361 = getelementptr inbounds ptr, ptr %2360, i64 2
  %2362 = load ptr, ptr %2361, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %260) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef %2362, ptr noundef nonnull align 1 dereferenceable(1) %260)
          to label %2363 unwind label %2422

2363:                                             ; preds = %2357
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %258, ptr noundef nonnull align 8 dereferenceable(32) %259)
          to label %2364 unwind label %2426

2364:                                             ; preds = %2363
  %2365 = 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) %2356, ptr noundef nonnull align 8 dereferenceable(32) %258)
          to label %2366 unwind label %2430

2366:                                             ; preds = %2364
  %2367 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2365, ptr noundef @.str.21)
          to label %2368 unwind label %2430

2368:                                             ; preds = %2366
  %2369 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2367, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2370 unwind label %2430

2370:                                             ; preds = %2368
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %260) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %259) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %258) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %257) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %255) #7
  invoke void @_Z4failv()
          to label %2371 unwind label %1808

2371:                                             ; preds = %2370
  br label %2439

2372:                                             ; preds = %2333
  %2373 = landingpad { ptr, i32 }
          cleanup
  %2374 = extractvalue { ptr, i32 } %2373, 0
  store ptr %2374, ptr %2, align 8
  %2375 = extractvalue { ptr, i32 } %2373, 1
  store i32 %2375, ptr %3, align 4
  br label %2380

2376:                                             ; preds = %2334
  %2377 = landingpad { ptr, i32 }
          cleanup
  %2378 = extractvalue { ptr, i32 } %2377, 0
  store ptr %2378, ptr %2, align 8
  %2379 = extractvalue { ptr, i32 } %2377, 1
  store i32 %2379, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %248) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %248) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %247) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #7
  br label %2380

2380:                                             ; preds = %2376, %2372
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %246) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %246) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %245) #7
  br label %3541

2381:                                             ; preds = %2342
  %2382 = landingpad { ptr, i32 }
          cleanup
  %2383 = extractvalue { ptr, i32 } %2382, 0
  store ptr %2383, ptr %2, align 8
  %2384 = extractvalue { ptr, i32 } %2382, 1
  store i32 %2384, ptr %3, align 4
  br label %2409

2385:                                             ; preds = %2343
  %2386 = landingpad { ptr, i32 }
          cleanup
  %2387 = extractvalue { ptr, i32 } %2386, 0
  store ptr %2387, ptr %2, align 8
  %2388 = extractvalue { ptr, i32 } %2386, 1
  store i32 %2388, ptr %3, align 4
  br label %2408

2389:                                             ; preds = %2344
  %2390 = landingpad { ptr, i32 }
          cleanup
  %2391 = extractvalue { ptr, i32 } %2390, 0
  store ptr %2391, ptr %2, align 8
  %2392 = extractvalue { ptr, i32 } %2390, 1
  store i32 %2392, ptr %3, align 4
  br label %2407

2393:                                             ; preds = %2345
  %2394 = landingpad { ptr, i32 }
          cleanup
  %2395 = extractvalue { ptr, i32 } %2394, 0
  store ptr %2395, ptr %2, align 8
  %2396 = extractvalue { ptr, i32 } %2394, 1
  store i32 %2396, ptr %3, align 4
  br label %2406

2397:                                             ; preds = %2346
  %2398 = landingpad { ptr, i32 }
          cleanup
  %2399 = extractvalue { ptr, i32 } %2398, 0
  store ptr %2399, ptr %2, align 8
  %2400 = extractvalue { ptr, i32 } %2398, 1
  store i32 %2400, ptr %3, align 4
  br label %2405

2401:                                             ; preds = %2347
  %2402 = landingpad { ptr, i32 }
          cleanup
  %2403 = extractvalue { ptr, i32 } %2402, 0
  store ptr %2403, ptr %2, align 8
  %2404 = extractvalue { ptr, i32 } %2402, 1
  store i32 %2404, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #7
  br label %2405

2405:                                             ; preds = %2401, %2397
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #7
  br label %2406

2406:                                             ; preds = %2405, %2393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #7
  br label %2407

2407:                                             ; preds = %2406, %2389
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #7
  br label %2408

2408:                                             ; preds = %2407, %2385
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #7
  br label %2409

2409:                                             ; preds = %2408, %2381
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %254) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %253) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %251) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %249) #7
  br label %3541

2410:                                             ; preds = %2351
  %2411 = landingpad { ptr, i32 }
          cleanup
  %2412 = extractvalue { ptr, i32 } %2411, 0
  store ptr %2412, ptr %2, align 8
  %2413 = extractvalue { ptr, i32 } %2411, 1
  store i32 %2413, ptr %3, align 4
  br label %2438

2414:                                             ; preds = %2352
  %2415 = landingpad { ptr, i32 }
          cleanup
  %2416 = extractvalue { ptr, i32 } %2415, 0
  store ptr %2416, ptr %2, align 8
  %2417 = extractvalue { ptr, i32 } %2415, 1
  store i32 %2417, ptr %3, align 4
  br label %2437

2418:                                             ; preds = %2355, %2353
  %2419 = landingpad { ptr, i32 }
          cleanup
  %2420 = extractvalue { ptr, i32 } %2419, 0
  store ptr %2420, ptr %2, align 8
  %2421 = extractvalue { ptr, i32 } %2419, 1
  store i32 %2421, ptr %3, align 4
  br label %2436

2422:                                             ; preds = %2357
  %2423 = landingpad { ptr, i32 }
          cleanup
  %2424 = extractvalue { ptr, i32 } %2423, 0
  store ptr %2424, ptr %2, align 8
  %2425 = extractvalue { ptr, i32 } %2423, 1
  store i32 %2425, ptr %3, align 4
  br label %2435

2426:                                             ; preds = %2363
  %2427 = landingpad { ptr, i32 }
          cleanup
  %2428 = extractvalue { ptr, i32 } %2427, 0
  store ptr %2428, ptr %2, align 8
  %2429 = extractvalue { ptr, i32 } %2427, 1
  store i32 %2429, ptr %3, align 4
  br label %2434

2430:                                             ; preds = %2368, %2366, %2364
  %2431 = landingpad { ptr, i32 }
          cleanup
  %2432 = extractvalue { ptr, i32 } %2431, 0
  store ptr %2432, ptr %2, align 8
  %2433 = extractvalue { ptr, i32 } %2431, 1
  store i32 %2433, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #7
  br label %2434

2434:                                             ; preds = %2430, %2426
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #7
  br label %2435

2435:                                             ; preds = %2434, %2422
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %260) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %259) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %258) #7
  br label %2436

2436:                                             ; preds = %2435, %2418
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #7
  br label %2437

2437:                                             ; preds = %2436, %2414
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #7
  br label %2438

2438:                                             ; preds = %2437, %2410
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %257) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %257) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %255) #7
  br label %3541

2439:                                             ; preds = %2371, %2340
  call void @llvm.lifetime.start.p0(i64 32, ptr %261) #7
  %2440 = load ptr, ptr @LODEPNG_VERSION_STRING, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %262) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef %2440, ptr noundef nonnull align 1 dereferenceable(1) %262)
          to label %2441 unwind label %2480

2441:                                             ; preds = %2439
  call void @llvm.lifetime.start.p0(i64 32, ptr %263) #7
  %2442 = load ptr, ptr %5, align 8, !tbaa !5
  %2443 = getelementptr inbounds %struct.LodePNGInfo, ptr %2442, i32 0, i32 10
  %2444 = load ptr, ptr %2443, align 8, !tbaa !31
  %2445 = getelementptr inbounds ptr, ptr %2444, i64 2
  %2446 = load ptr, ptr %2445, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %264) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %263, ptr noundef %2446, ptr noundef nonnull align 1 dereferenceable(1) %264)
          to label %2447 unwind label %2484

2447:                                             ; preds = %2441
  %2448 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %261, ptr noundef nonnull align 8 dereferenceable(32) %263) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %264) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %263) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %262) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %261) #7
  br i1 %2448, label %2449, label %2547

2449:                                             ; preds = %2447
  call void @llvm.lifetime.start.p0(i64 32, ptr %265) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %266) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %267) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %268) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %269) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %270) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %270) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %270)
          to label %2450 unwind label %2489

2450:                                             ; preds = %2449
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %268, ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef @.str.235)
          to label %2451 unwind label %2493

2451:                                             ; preds = %2450
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %267, ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef @.str.3)
          to label %2452 unwind label %2497

2452:                                             ; preds = %2451
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %266, ptr noundef nonnull align 8 dereferenceable(32) %267, ptr noundef @.str.236)
          to label %2453 unwind label %2501

2453:                                             ; preds = %2452
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %265, ptr noundef nonnull align 8 dereferenceable(32) %266, ptr noundef @.str.18)
          to label %2454 unwind label %2505

2454:                                             ; preds = %2453
  %2455 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %265)
          to label %2456 unwind label %2509

2456:                                             ; preds = %2454
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %266) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %270) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %270) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %269) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %268) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %267) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %266) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %265) #7
  %2457 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2458 unwind label %1808

2458:                                             ; preds = %2456
  call void @llvm.lifetime.start.p0(i64 32, ptr %271) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %272) #7
  %2459 = load ptr, ptr @LODEPNG_VERSION_STRING, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %273) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %272, ptr noundef %2459, ptr noundef nonnull align 1 dereferenceable(1) %273)
          to label %2460 unwind label %2518

2460:                                             ; preds = %2458
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %271, ptr noundef nonnull align 8 dereferenceable(32) %272)
          to label %2461 unwind label %2522

2461:                                             ; preds = %2460
  %2462 = 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) %2457, ptr noundef nonnull align 8 dereferenceable(32) %271)
          to label %2463 unwind label %2526

2463:                                             ; preds = %2461
  %2464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2462, ptr noundef @.str.20)
          to label %2465 unwind label %2526

2465:                                             ; preds = %2463
  call void @llvm.lifetime.start.p0(i64 32, ptr %274) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %275) #7
  %2466 = load ptr, ptr %5, align 8, !tbaa !5
  %2467 = getelementptr inbounds %struct.LodePNGInfo, ptr %2466, i32 0, i32 10
  %2468 = load ptr, ptr %2467, align 8, !tbaa !31
  %2469 = getelementptr inbounds ptr, ptr %2468, i64 2
  %2470 = load ptr, ptr %2469, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %276) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %276) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %275, ptr noundef %2470, ptr noundef nonnull align 1 dereferenceable(1) %276)
          to label %2471 unwind label %2530

2471:                                             ; preds = %2465
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %274, ptr noundef nonnull align 8 dereferenceable(32) %275)
          to label %2472 unwind label %2534

2472:                                             ; preds = %2471
  %2473 = 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) %2464, ptr noundef nonnull align 8 dereferenceable(32) %274)
          to label %2474 unwind label %2538

2474:                                             ; preds = %2472
  %2475 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2473, ptr noundef @.str.21)
          to label %2476 unwind label %2538

2476:                                             ; preds = %2474
  %2477 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2475, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2478 unwind label %2538

2478:                                             ; preds = %2476
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %276) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %276) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %275) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %274) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %273) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %271) #7
  invoke void @_Z4failv()
          to label %2479 unwind label %1808

2479:                                             ; preds = %2478
  br label %2547

2480:                                             ; preds = %2439
  %2481 = landingpad { ptr, i32 }
          cleanup
  %2482 = extractvalue { ptr, i32 } %2481, 0
  store ptr %2482, ptr %2, align 8
  %2483 = extractvalue { ptr, i32 } %2481, 1
  store i32 %2483, ptr %3, align 4
  br label %2488

2484:                                             ; preds = %2441
  %2485 = landingpad { ptr, i32 }
          cleanup
  %2486 = extractvalue { ptr, i32 } %2485, 0
  store ptr %2486, ptr %2, align 8
  %2487 = extractvalue { ptr, i32 } %2485, 1
  store i32 %2487, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %264) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %264) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %263) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #7
  br label %2488

2488:                                             ; preds = %2484, %2480
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %262) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %262) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %261) #7
  br label %3541

2489:                                             ; preds = %2449
  %2490 = landingpad { ptr, i32 }
          cleanup
  %2491 = extractvalue { ptr, i32 } %2490, 0
  store ptr %2491, ptr %2, align 8
  %2492 = extractvalue { ptr, i32 } %2490, 1
  store i32 %2492, ptr %3, align 4
  br label %2517

2493:                                             ; preds = %2450
  %2494 = landingpad { ptr, i32 }
          cleanup
  %2495 = extractvalue { ptr, i32 } %2494, 0
  store ptr %2495, ptr %2, align 8
  %2496 = extractvalue { ptr, i32 } %2494, 1
  store i32 %2496, ptr %3, align 4
  br label %2516

2497:                                             ; preds = %2451
  %2498 = landingpad { ptr, i32 }
          cleanup
  %2499 = extractvalue { ptr, i32 } %2498, 0
  store ptr %2499, ptr %2, align 8
  %2500 = extractvalue { ptr, i32 } %2498, 1
  store i32 %2500, ptr %3, align 4
  br label %2515

2501:                                             ; preds = %2452
  %2502 = landingpad { ptr, i32 }
          cleanup
  %2503 = extractvalue { ptr, i32 } %2502, 0
  store ptr %2503, ptr %2, align 8
  %2504 = extractvalue { ptr, i32 } %2502, 1
  store i32 %2504, ptr %3, align 4
  br label %2514

2505:                                             ; preds = %2453
  %2506 = landingpad { ptr, i32 }
          cleanup
  %2507 = extractvalue { ptr, i32 } %2506, 0
  store ptr %2507, ptr %2, align 8
  %2508 = extractvalue { ptr, i32 } %2506, 1
  store i32 %2508, ptr %3, align 4
  br label %2513

2509:                                             ; preds = %2454
  %2510 = landingpad { ptr, i32 }
          cleanup
  %2511 = extractvalue { ptr, i32 } %2510, 0
  store ptr %2511, ptr %2, align 8
  %2512 = extractvalue { ptr, i32 } %2510, 1
  store i32 %2512, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #7
  br label %2513

2513:                                             ; preds = %2509, %2505
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %266) #7
  br label %2514

2514:                                             ; preds = %2513, %2501
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #7
  br label %2515

2515:                                             ; preds = %2514, %2497
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #7
  br label %2516

2516:                                             ; preds = %2515, %2493
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #7
  br label %2517

2517:                                             ; preds = %2516, %2489
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %270) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %270) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %269) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %268) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %267) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %266) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %265) #7
  br label %3541

2518:                                             ; preds = %2458
  %2519 = landingpad { ptr, i32 }
          cleanup
  %2520 = extractvalue { ptr, i32 } %2519, 0
  store ptr %2520, ptr %2, align 8
  %2521 = extractvalue { ptr, i32 } %2519, 1
  store i32 %2521, ptr %3, align 4
  br label %2546

2522:                                             ; preds = %2460
  %2523 = landingpad { ptr, i32 }
          cleanup
  %2524 = extractvalue { ptr, i32 } %2523, 0
  store ptr %2524, ptr %2, align 8
  %2525 = extractvalue { ptr, i32 } %2523, 1
  store i32 %2525, ptr %3, align 4
  br label %2545

2526:                                             ; preds = %2463, %2461
  %2527 = landingpad { ptr, i32 }
          cleanup
  %2528 = extractvalue { ptr, i32 } %2527, 0
  store ptr %2528, ptr %2, align 8
  %2529 = extractvalue { ptr, i32 } %2527, 1
  store i32 %2529, ptr %3, align 4
  br label %2544

2530:                                             ; preds = %2465
  %2531 = landingpad { ptr, i32 }
          cleanup
  %2532 = extractvalue { ptr, i32 } %2531, 0
  store ptr %2532, ptr %2, align 8
  %2533 = extractvalue { ptr, i32 } %2531, 1
  store i32 %2533, ptr %3, align 4
  br label %2543

2534:                                             ; preds = %2471
  %2535 = landingpad { ptr, i32 }
          cleanup
  %2536 = extractvalue { ptr, i32 } %2535, 0
  store ptr %2536, ptr %2, align 8
  %2537 = extractvalue { ptr, i32 } %2535, 1
  store i32 %2537, ptr %3, align 4
  br label %2542

2538:                                             ; preds = %2476, %2474, %2472
  %2539 = landingpad { ptr, i32 }
          cleanup
  %2540 = extractvalue { ptr, i32 } %2539, 0
  store ptr %2540, ptr %2, align 8
  %2541 = extractvalue { ptr, i32 } %2539, 1
  store i32 %2541, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %274) #7
  br label %2542

2542:                                             ; preds = %2538, %2534
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #7
  br label %2543

2543:                                             ; preds = %2542, %2530
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %276) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %276) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %275) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %274) #7
  br label %2544

2544:                                             ; preds = %2543, %2526
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #7
  br label %2545

2545:                                             ; preds = %2544, %2522
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %272) #7
  br label %2546

2546:                                             ; preds = %2545, %2518
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %273) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %272) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %271) #7
  br label %3541

2547:                                             ; preds = %2479, %2447
  %2548 = load ptr, ptr %5, align 8, !tbaa !5
  %2549 = getelementptr inbounds %struct.LodePNGInfo, ptr %2548, i32 0, i32 11
  %2550 = load i64, ptr %2549, align 8, !tbaa !32
  %2551 = icmp ne i64 2, %2550
  br i1 %2551, label %2552, label %2625

2552:                                             ; preds = %2547
  call void @llvm.lifetime.start.p0(i64 32, ptr %277) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %278) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %279) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %280) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %281) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %282) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %282) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %281, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %282)
          to label %2553 unwind label %2577

2553:                                             ; preds = %2552
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %280, ptr noundef nonnull align 8 dereferenceable(32) %281, ptr noundef @.str.237)
          to label %2554 unwind label %2581

2554:                                             ; preds = %2553
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %279, ptr noundef nonnull align 8 dereferenceable(32) %280, ptr noundef @.str.3)
          to label %2555 unwind label %2585

2555:                                             ; preds = %2554
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %278, ptr noundef nonnull align 8 dereferenceable(32) %279, ptr noundef @.str.238)
          to label %2556 unwind label %2589

2556:                                             ; preds = %2555
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %277, ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef @.str.18)
          to label %2557 unwind label %2593

2557:                                             ; preds = %2556
  %2558 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %277)
          to label %2559 unwind label %2597

2559:                                             ; preds = %2557
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %282) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %282) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %281) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %280) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %279) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %278) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %277) #7
  %2560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2561 unwind label %1808

2561:                                             ; preds = %2559
  call void @llvm.lifetime.start.p0(i64 32, ptr %283) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #7
  store i32 2, ptr %284, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %283, ptr noundef nonnull align 4 dereferenceable(4) %284)
          to label %2562 unwind label %2606

2562:                                             ; preds = %2561
  %2563 = 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) %2560, ptr noundef nonnull align 8 dereferenceable(32) %283)
          to label %2564 unwind label %2610

2564:                                             ; preds = %2562
  %2565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2563, ptr noundef @.str.20)
          to label %2566 unwind label %2610

2566:                                             ; preds = %2564
  call void @llvm.lifetime.start.p0(i64 32, ptr %285) #7
  %2567 = load ptr, ptr %5, align 8, !tbaa !5
  %2568 = getelementptr inbounds %struct.LodePNGInfo, ptr %2567, i32 0, i32 11
  invoke void @_Z8valtostrImENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %285, ptr noundef nonnull align 8 dereferenceable(8) %2568)
          to label %2569 unwind label %2614

2569:                                             ; preds = %2566
  %2570 = 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) %2565, ptr noundef nonnull align 8 dereferenceable(32) %285)
          to label %2571 unwind label %2618

2571:                                             ; preds = %2569
  %2572 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2570, ptr noundef @.str.21)
          to label %2573 unwind label %2618

2573:                                             ; preds = %2571
  %2574 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2572, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2575 unwind label %2618

2575:                                             ; preds = %2573
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %285) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %283) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %283) #7
  invoke void @_Z4failv()
          to label %2576 unwind label %1808

2576:                                             ; preds = %2575
  br label %2625

2577:                                             ; preds = %2552
  %2578 = landingpad { ptr, i32 }
          cleanup
  %2579 = extractvalue { ptr, i32 } %2578, 0
  store ptr %2579, ptr %2, align 8
  %2580 = extractvalue { ptr, i32 } %2578, 1
  store i32 %2580, ptr %3, align 4
  br label %2605

2581:                                             ; preds = %2553
  %2582 = landingpad { ptr, i32 }
          cleanup
  %2583 = extractvalue { ptr, i32 } %2582, 0
  store ptr %2583, ptr %2, align 8
  %2584 = extractvalue { ptr, i32 } %2582, 1
  store i32 %2584, ptr %3, align 4
  br label %2604

2585:                                             ; preds = %2554
  %2586 = landingpad { ptr, i32 }
          cleanup
  %2587 = extractvalue { ptr, i32 } %2586, 0
  store ptr %2587, ptr %2, align 8
  %2588 = extractvalue { ptr, i32 } %2586, 1
  store i32 %2588, ptr %3, align 4
  br label %2603

2589:                                             ; preds = %2555
  %2590 = landingpad { ptr, i32 }
          cleanup
  %2591 = extractvalue { ptr, i32 } %2590, 0
  store ptr %2591, ptr %2, align 8
  %2592 = extractvalue { ptr, i32 } %2590, 1
  store i32 %2592, ptr %3, align 4
  br label %2602

2593:                                             ; preds = %2556
  %2594 = landingpad { ptr, i32 }
          cleanup
  %2595 = extractvalue { ptr, i32 } %2594, 0
  store ptr %2595, ptr %2, align 8
  %2596 = extractvalue { ptr, i32 } %2594, 1
  store i32 %2596, ptr %3, align 4
  br label %2601

2597:                                             ; preds = %2557
  %2598 = landingpad { ptr, i32 }
          cleanup
  %2599 = extractvalue { ptr, i32 } %2598, 0
  store ptr %2599, ptr %2, align 8
  %2600 = extractvalue { ptr, i32 } %2598, 1
  store i32 %2600, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %277) #7
  br label %2601

2601:                                             ; preds = %2597, %2593
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #7
  br label %2602

2602:                                             ; preds = %2601, %2589
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #7
  br label %2603

2603:                                             ; preds = %2602, %2585
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #7
  br label %2604

2604:                                             ; preds = %2603, %2581
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #7
  br label %2605

2605:                                             ; preds = %2604, %2577
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %282) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %282) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %281) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %280) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %279) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %278) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %277) #7
  br label %3541

2606:                                             ; preds = %2561
  %2607 = landingpad { ptr, i32 }
          cleanup
  %2608 = extractvalue { ptr, i32 } %2607, 0
  store ptr %2608, ptr %2, align 8
  %2609 = extractvalue { ptr, i32 } %2607, 1
  store i32 %2609, ptr %3, align 4
  br label %2624

2610:                                             ; preds = %2564, %2562
  %2611 = landingpad { ptr, i32 }
          cleanup
  %2612 = extractvalue { ptr, i32 } %2611, 0
  store ptr %2612, ptr %2, align 8
  %2613 = extractvalue { ptr, i32 } %2611, 1
  store i32 %2613, ptr %3, align 4
  br label %2623

2614:                                             ; preds = %2566
  %2615 = landingpad { ptr, i32 }
          cleanup
  %2616 = extractvalue { ptr, i32 } %2615, 0
  store ptr %2616, ptr %2, align 8
  %2617 = extractvalue { ptr, i32 } %2615, 1
  store i32 %2617, ptr %3, align 4
  br label %2622

2618:                                             ; preds = %2573, %2571, %2569
  %2619 = landingpad { ptr, i32 }
          cleanup
  %2620 = extractvalue { ptr, i32 } %2619, 0
  store ptr %2620, ptr %2, align 8
  %2621 = extractvalue { ptr, i32 } %2619, 1
  store i32 %2621, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #7
  br label %2622

2622:                                             ; preds = %2618, %2614
  call void @llvm.lifetime.end.p0(i64 32, ptr %285) #7
  br label %2623

2623:                                             ; preds = %2622, %2610
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %283) #7
  br label %2624

2624:                                             ; preds = %2623, %2606
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %283) #7
  br label %3541

2625:                                             ; preds = %2576, %2547
  call void @llvm.lifetime.start.p0(i64 32, ptr %286) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %287) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %286, ptr noundef @.str.169, ptr noundef nonnull align 1 dereferenceable(1) %287)
          to label %2626 unwind label %2664

2626:                                             ; preds = %2625
  call void @llvm.lifetime.start.p0(i64 32, ptr %288) #7
  %2627 = load ptr, ptr %5, align 8, !tbaa !5
  %2628 = getelementptr inbounds %struct.LodePNGInfo, ptr %2627, i32 0, i32 12
  %2629 = load ptr, ptr %2628, align 8, !tbaa !33
  %2630 = getelementptr inbounds ptr, ptr %2629, i64 0
  %2631 = load ptr, ptr %2630, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %289) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %288, ptr noundef %2631, ptr noundef nonnull align 1 dereferenceable(1) %289)
          to label %2632 unwind label %2668

2632:                                             ; preds = %2626
  %2633 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %286, ptr noundef nonnull align 8 dereferenceable(32) %288) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %288) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %289) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %288) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %287) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %286) #7
  br i1 %2633, label %2634, label %2731

2634:                                             ; preds = %2632
  call void @llvm.lifetime.start.p0(i64 32, ptr %290) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %291) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %292) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %293) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %294) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %295) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %295)
          to label %2635 unwind label %2673

2635:                                             ; preds = %2634
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %293, ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef @.str.239)
          to label %2636 unwind label %2677

2636:                                             ; preds = %2635
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %292, ptr noundef nonnull align 8 dereferenceable(32) %293, ptr noundef @.str.3)
          to label %2637 unwind label %2681

2637:                                             ; preds = %2636
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %291, ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef @.str.240)
          to label %2638 unwind label %2685

2638:                                             ; preds = %2637
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %290, ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef @.str.18)
          to label %2639 unwind label %2689

2639:                                             ; preds = %2638
  %2640 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %290)
          to label %2641 unwind label %2693

2641:                                             ; preds = %2639
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %295) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %294) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %292) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %291) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %290) #7
  %2642 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2643 unwind label %1808

2643:                                             ; preds = %2641
  call void @llvm.lifetime.start.p0(i64 32, ptr %296) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %297) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %298) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef @.str.169, ptr noundef nonnull align 1 dereferenceable(1) %298)
          to label %2644 unwind label %2702

2644:                                             ; preds = %2643
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %296, ptr noundef nonnull align 8 dereferenceable(32) %297)
          to label %2645 unwind label %2706

2645:                                             ; preds = %2644
  %2646 = 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) %2642, ptr noundef nonnull align 8 dereferenceable(32) %296)
          to label %2647 unwind label %2710

2647:                                             ; preds = %2645
  %2648 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2646, ptr noundef @.str.20)
          to label %2649 unwind label %2710

2649:                                             ; preds = %2647
  call void @llvm.lifetime.start.p0(i64 32, ptr %299) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %300) #7
  %2650 = load ptr, ptr %5, align 8, !tbaa !5
  %2651 = getelementptr inbounds %struct.LodePNGInfo, ptr %2650, i32 0, i32 12
  %2652 = load ptr, ptr %2651, align 8, !tbaa !33
  %2653 = getelementptr inbounds ptr, ptr %2652, i64 0
  %2654 = load ptr, ptr %2653, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %301) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef %2654, ptr noundef nonnull align 1 dereferenceable(1) %301)
          to label %2655 unwind label %2714

2655:                                             ; preds = %2649
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %299, ptr noundef nonnull align 8 dereferenceable(32) %300)
          to label %2656 unwind label %2718

2656:                                             ; preds = %2655
  %2657 = 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) %2648, ptr noundef nonnull align 8 dereferenceable(32) %299)
          to label %2658 unwind label %2722

2658:                                             ; preds = %2656
  %2659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2657, ptr noundef @.str.21)
          to label %2660 unwind label %2722

2660:                                             ; preds = %2658
  %2661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2659, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2662 unwind label %2722

2662:                                             ; preds = %2660
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %301) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %300) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %298) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %297) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %296) #7
  invoke void @_Z4failv()
          to label %2663 unwind label %1808

2663:                                             ; preds = %2662
  br label %2731

2664:                                             ; preds = %2625
  %2665 = landingpad { ptr, i32 }
          cleanup
  %2666 = extractvalue { ptr, i32 } %2665, 0
  store ptr %2666, ptr %2, align 8
  %2667 = extractvalue { ptr, i32 } %2665, 1
  store i32 %2667, ptr %3, align 4
  br label %2672

2668:                                             ; preds = %2626
  %2669 = landingpad { ptr, i32 }
          cleanup
  %2670 = extractvalue { ptr, i32 } %2669, 0
  store ptr %2670, ptr %2, align 8
  %2671 = extractvalue { ptr, i32 } %2669, 1
  store i32 %2671, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %289) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %289) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %288) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #7
  br label %2672

2672:                                             ; preds = %2668, %2664
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %287) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %286) #7
  br label %3541

2673:                                             ; preds = %2634
  %2674 = landingpad { ptr, i32 }
          cleanup
  %2675 = extractvalue { ptr, i32 } %2674, 0
  store ptr %2675, ptr %2, align 8
  %2676 = extractvalue { ptr, i32 } %2674, 1
  store i32 %2676, ptr %3, align 4
  br label %2701

2677:                                             ; preds = %2635
  %2678 = landingpad { ptr, i32 }
          cleanup
  %2679 = extractvalue { ptr, i32 } %2678, 0
  store ptr %2679, ptr %2, align 8
  %2680 = extractvalue { ptr, i32 } %2678, 1
  store i32 %2680, ptr %3, align 4
  br label %2700

2681:                                             ; preds = %2636
  %2682 = landingpad { ptr, i32 }
          cleanup
  %2683 = extractvalue { ptr, i32 } %2682, 0
  store ptr %2683, ptr %2, align 8
  %2684 = extractvalue { ptr, i32 } %2682, 1
  store i32 %2684, ptr %3, align 4
  br label %2699

2685:                                             ; preds = %2637
  %2686 = landingpad { ptr, i32 }
          cleanup
  %2687 = extractvalue { ptr, i32 } %2686, 0
  store ptr %2687, ptr %2, align 8
  %2688 = extractvalue { ptr, i32 } %2686, 1
  store i32 %2688, ptr %3, align 4
  br label %2698

2689:                                             ; preds = %2638
  %2690 = landingpad { ptr, i32 }
          cleanup
  %2691 = extractvalue { ptr, i32 } %2690, 0
  store ptr %2691, ptr %2, align 8
  %2692 = extractvalue { ptr, i32 } %2690, 1
  store i32 %2692, ptr %3, align 4
  br label %2697

2693:                                             ; preds = %2639
  %2694 = landingpad { ptr, i32 }
          cleanup
  %2695 = extractvalue { ptr, i32 } %2694, 0
  store ptr %2695, ptr %2, align 8
  %2696 = extractvalue { ptr, i32 } %2694, 1
  store i32 %2696, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #7
  br label %2697

2697:                                             ; preds = %2693, %2689
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #7
  br label %2698

2698:                                             ; preds = %2697, %2685
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #7
  br label %2699

2699:                                             ; preds = %2698, %2681
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %293) #7
  br label %2700

2700:                                             ; preds = %2699, %2677
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  br label %2701

2701:                                             ; preds = %2700, %2673
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %295) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %294) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %293) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %292) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %291) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %290) #7
  br label %3541

2702:                                             ; preds = %2643
  %2703 = landingpad { ptr, i32 }
          cleanup
  %2704 = extractvalue { ptr, i32 } %2703, 0
  store ptr %2704, ptr %2, align 8
  %2705 = extractvalue { ptr, i32 } %2703, 1
  store i32 %2705, ptr %3, align 4
  br label %2730

2706:                                             ; preds = %2644
  %2707 = landingpad { ptr, i32 }
          cleanup
  %2708 = extractvalue { ptr, i32 } %2707, 0
  store ptr %2708, ptr %2, align 8
  %2709 = extractvalue { ptr, i32 } %2707, 1
  store i32 %2709, ptr %3, align 4
  br label %2729

2710:                                             ; preds = %2647, %2645
  %2711 = landingpad { ptr, i32 }
          cleanup
  %2712 = extractvalue { ptr, i32 } %2711, 0
  store ptr %2712, ptr %2, align 8
  %2713 = extractvalue { ptr, i32 } %2711, 1
  store i32 %2713, ptr %3, align 4
  br label %2728

2714:                                             ; preds = %2649
  %2715 = landingpad { ptr, i32 }
          cleanup
  %2716 = extractvalue { ptr, i32 } %2715, 0
  store ptr %2716, ptr %2, align 8
  %2717 = extractvalue { ptr, i32 } %2715, 1
  store i32 %2717, ptr %3, align 4
  br label %2727

2718:                                             ; preds = %2655
  %2719 = landingpad { ptr, i32 }
          cleanup
  %2720 = extractvalue { ptr, i32 } %2719, 0
  store ptr %2720, ptr %2, align 8
  %2721 = extractvalue { ptr, i32 } %2719, 1
  store i32 %2721, ptr %3, align 4
  br label %2726

2722:                                             ; preds = %2660, %2658, %2656
  %2723 = landingpad { ptr, i32 }
          cleanup
  %2724 = extractvalue { ptr, i32 } %2723, 0
  store ptr %2724, ptr %2, align 8
  %2725 = extractvalue { ptr, i32 } %2723, 1
  store i32 %2725, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #7
  br label %2726

2726:                                             ; preds = %2722, %2718
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #7
  br label %2727

2727:                                             ; preds = %2726, %2714
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %301) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %300) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #7
  br label %2728

2728:                                             ; preds = %2727, %2710
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #7
  br label %2729

2729:                                             ; preds = %2728, %2706
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #7
  br label %2730

2730:                                             ; preds = %2729, %2702
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %298) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %298) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %297) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %296) #7
  br label %3541

2731:                                             ; preds = %2663, %2632
  call void @llvm.lifetime.start.p0(i64 32, ptr %302) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %303) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef @.str.170, ptr noundef nonnull align 1 dereferenceable(1) %303)
          to label %2732 unwind label %2770

2732:                                             ; preds = %2731
  call void @llvm.lifetime.start.p0(i64 32, ptr %304) #7
  %2733 = load ptr, ptr %5, align 8, !tbaa !5
  %2734 = getelementptr inbounds %struct.LodePNGInfo, ptr %2733, i32 0, i32 13
  %2735 = load ptr, ptr %2734, align 8, !tbaa !34
  %2736 = getelementptr inbounds ptr, ptr %2735, i64 0
  %2737 = load ptr, ptr %2736, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %305) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %305) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %304, ptr noundef %2737, ptr noundef nonnull align 1 dereferenceable(1) %305)
          to label %2738 unwind label %2774

2738:                                             ; preds = %2732
  %2739 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef nonnull align 8 dereferenceable(32) %304) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %305) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %305) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %304) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %303) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %302) #7
  br i1 %2739, label %2740, label %2837

2740:                                             ; preds = %2738
  call void @llvm.lifetime.start.p0(i64 32, ptr %306) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %307) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %308) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %309) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %310) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %311) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %311)
          to label %2741 unwind label %2779

2741:                                             ; preds = %2740
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %309, ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef @.str.241)
          to label %2742 unwind label %2783

2742:                                             ; preds = %2741
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %308, ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef @.str.3)
          to label %2743 unwind label %2787

2743:                                             ; preds = %2742
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %307, ptr noundef nonnull align 8 dereferenceable(32) %308, ptr noundef @.str.242)
          to label %2744 unwind label %2791

2744:                                             ; preds = %2743
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %306, ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef @.str.18)
          to label %2745 unwind label %2795

2745:                                             ; preds = %2744
  %2746 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %306)
          to label %2747 unwind label %2799

2747:                                             ; preds = %2745
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %309) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %308) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %307) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %306) #7
  %2748 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2749 unwind label %1808

2749:                                             ; preds = %2747
  call void @llvm.lifetime.start.p0(i64 32, ptr %312) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %313) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %314) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef @.str.170, ptr noundef nonnull align 1 dereferenceable(1) %314)
          to label %2750 unwind label %2808

2750:                                             ; preds = %2749
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %312, ptr noundef nonnull align 8 dereferenceable(32) %313)
          to label %2751 unwind label %2812

2751:                                             ; preds = %2750
  %2752 = 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) %2748, ptr noundef nonnull align 8 dereferenceable(32) %312)
          to label %2753 unwind label %2816

2753:                                             ; preds = %2751
  %2754 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2752, ptr noundef @.str.20)
          to label %2755 unwind label %2816

2755:                                             ; preds = %2753
  call void @llvm.lifetime.start.p0(i64 32, ptr %315) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %316) #7
  %2756 = load ptr, ptr %5, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.LodePNGInfo, ptr %2756, i32 0, i32 13
  %2758 = load ptr, ptr %2757, align 8, !tbaa !34
  %2759 = getelementptr inbounds ptr, ptr %2758, i64 0
  %2760 = load ptr, ptr %2759, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %317) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef %2760, ptr noundef nonnull align 1 dereferenceable(1) %317)
          to label %2761 unwind label %2820

2761:                                             ; preds = %2755
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %315, ptr noundef nonnull align 8 dereferenceable(32) %316)
          to label %2762 unwind label %2824

2762:                                             ; preds = %2761
  %2763 = 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) %2754, ptr noundef nonnull align 8 dereferenceable(32) %315)
          to label %2764 unwind label %2828

2764:                                             ; preds = %2762
  %2765 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2763, ptr noundef @.str.21)
          to label %2766 unwind label %2828

2766:                                             ; preds = %2764
  %2767 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2765, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2768 unwind label %2828

2768:                                             ; preds = %2766
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %317) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %316) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %315) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %314) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %313) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %312) #7
  invoke void @_Z4failv()
          to label %2769 unwind label %1808

2769:                                             ; preds = %2768
  br label %2837

2770:                                             ; preds = %2731
  %2771 = landingpad { ptr, i32 }
          cleanup
  %2772 = extractvalue { ptr, i32 } %2771, 0
  store ptr %2772, ptr %2, align 8
  %2773 = extractvalue { ptr, i32 } %2771, 1
  store i32 %2773, ptr %3, align 4
  br label %2778

2774:                                             ; preds = %2732
  %2775 = landingpad { ptr, i32 }
          cleanup
  %2776 = extractvalue { ptr, i32 } %2775, 0
  store ptr %2776, ptr %2, align 8
  %2777 = extractvalue { ptr, i32 } %2775, 1
  store i32 %2777, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %305) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %305) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %304) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #7
  br label %2778

2778:                                             ; preds = %2774, %2770
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %303) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %303) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %302) #7
  br label %3541

2779:                                             ; preds = %2740
  %2780 = landingpad { ptr, i32 }
          cleanup
  %2781 = extractvalue { ptr, i32 } %2780, 0
  store ptr %2781, ptr %2, align 8
  %2782 = extractvalue { ptr, i32 } %2780, 1
  store i32 %2782, ptr %3, align 4
  br label %2807

2783:                                             ; preds = %2741
  %2784 = landingpad { ptr, i32 }
          cleanup
  %2785 = extractvalue { ptr, i32 } %2784, 0
  store ptr %2785, ptr %2, align 8
  %2786 = extractvalue { ptr, i32 } %2784, 1
  store i32 %2786, ptr %3, align 4
  br label %2806

2787:                                             ; preds = %2742
  %2788 = landingpad { ptr, i32 }
          cleanup
  %2789 = extractvalue { ptr, i32 } %2788, 0
  store ptr %2789, ptr %2, align 8
  %2790 = extractvalue { ptr, i32 } %2788, 1
  store i32 %2790, ptr %3, align 4
  br label %2805

2791:                                             ; preds = %2743
  %2792 = landingpad { ptr, i32 }
          cleanup
  %2793 = extractvalue { ptr, i32 } %2792, 0
  store ptr %2793, ptr %2, align 8
  %2794 = extractvalue { ptr, i32 } %2792, 1
  store i32 %2794, ptr %3, align 4
  br label %2804

2795:                                             ; preds = %2744
  %2796 = landingpad { ptr, i32 }
          cleanup
  %2797 = extractvalue { ptr, i32 } %2796, 0
  store ptr %2797, ptr %2, align 8
  %2798 = extractvalue { ptr, i32 } %2796, 1
  store i32 %2798, ptr %3, align 4
  br label %2803

2799:                                             ; preds = %2745
  %2800 = landingpad { ptr, i32 }
          cleanup
  %2801 = extractvalue { ptr, i32 } %2800, 0
  store ptr %2801, ptr %2, align 8
  %2802 = extractvalue { ptr, i32 } %2800, 1
  store i32 %2802, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #7
  br label %2803

2803:                                             ; preds = %2799, %2795
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #7
  br label %2804

2804:                                             ; preds = %2803, %2791
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #7
  br label %2805

2805:                                             ; preds = %2804, %2787
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #7
  br label %2806

2806:                                             ; preds = %2805, %2783
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #7
  br label %2807

2807:                                             ; preds = %2806, %2779
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %310) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %309) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %308) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %307) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %306) #7
  br label %3541

2808:                                             ; preds = %2749
  %2809 = landingpad { ptr, i32 }
          cleanup
  %2810 = extractvalue { ptr, i32 } %2809, 0
  store ptr %2810, ptr %2, align 8
  %2811 = extractvalue { ptr, i32 } %2809, 1
  store i32 %2811, ptr %3, align 4
  br label %2836

2812:                                             ; preds = %2750
  %2813 = landingpad { ptr, i32 }
          cleanup
  %2814 = extractvalue { ptr, i32 } %2813, 0
  store ptr %2814, ptr %2, align 8
  %2815 = extractvalue { ptr, i32 } %2813, 1
  store i32 %2815, ptr %3, align 4
  br label %2835

2816:                                             ; preds = %2753, %2751
  %2817 = landingpad { ptr, i32 }
          cleanup
  %2818 = extractvalue { ptr, i32 } %2817, 0
  store ptr %2818, ptr %2, align 8
  %2819 = extractvalue { ptr, i32 } %2817, 1
  store i32 %2819, ptr %3, align 4
  br label %2834

2820:                                             ; preds = %2755
  %2821 = landingpad { ptr, i32 }
          cleanup
  %2822 = extractvalue { ptr, i32 } %2821, 0
  store ptr %2822, ptr %2, align 8
  %2823 = extractvalue { ptr, i32 } %2821, 1
  store i32 %2823, ptr %3, align 4
  br label %2833

2824:                                             ; preds = %2761
  %2825 = landingpad { ptr, i32 }
          cleanup
  %2826 = extractvalue { ptr, i32 } %2825, 0
  store ptr %2826, ptr %2, align 8
  %2827 = extractvalue { ptr, i32 } %2825, 1
  store i32 %2827, ptr %3, align 4
  br label %2832

2828:                                             ; preds = %2766, %2764, %2762
  %2829 = landingpad { ptr, i32 }
          cleanup
  %2830 = extractvalue { ptr, i32 } %2829, 0
  store ptr %2830, ptr %2, align 8
  %2831 = extractvalue { ptr, i32 } %2829, 1
  store i32 %2831, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #7
  br label %2832

2832:                                             ; preds = %2828, %2824
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #7
  br label %2833

2833:                                             ; preds = %2832, %2820
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %317) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %316) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %315) #7
  br label %2834

2834:                                             ; preds = %2833, %2816
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #7
  br label %2835

2835:                                             ; preds = %2834, %2812
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #7
  br label %2836

2836:                                             ; preds = %2835, %2808
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %314) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %314) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %313) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %312) #7
  br label %3541

2837:                                             ; preds = %2769, %2738
  call void @llvm.lifetime.start.p0(i64 32, ptr %318) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %319) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %319) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %318, ptr noundef @.str.171, ptr noundef nonnull align 1 dereferenceable(1) %319)
          to label %2838 unwind label %2876

2838:                                             ; preds = %2837
  call void @llvm.lifetime.start.p0(i64 32, ptr %320) #7
  %2839 = load ptr, ptr %5, align 8, !tbaa !5
  %2840 = getelementptr inbounds %struct.LodePNGInfo, ptr %2839, i32 0, i32 14
  %2841 = load ptr, ptr %2840, align 8, !tbaa !35
  %2842 = getelementptr inbounds ptr, ptr %2841, i64 0
  %2843 = load ptr, ptr %2842, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %321) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %321) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %320, ptr noundef %2843, ptr noundef nonnull align 1 dereferenceable(1) %321)
          to label %2844 unwind label %2880

2844:                                             ; preds = %2838
  %2845 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %318, ptr noundef nonnull align 8 dereferenceable(32) %320) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %321) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %321) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %320) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %318) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %319) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %319) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %318) #7
  br i1 %2845, label %2846, label %2943

2846:                                             ; preds = %2844
  call void @llvm.lifetime.start.p0(i64 32, ptr %322) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %323) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %324) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %325) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %326) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %327) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %327) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %327)
          to label %2847 unwind label %2885

2847:                                             ; preds = %2846
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %325, ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef @.str.243)
          to label %2848 unwind label %2889

2848:                                             ; preds = %2847
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %324, ptr noundef nonnull align 8 dereferenceable(32) %325, ptr noundef @.str.3)
          to label %2849 unwind label %2893

2849:                                             ; preds = %2848
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %323, ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef @.str.244)
          to label %2850 unwind label %2897

2850:                                             ; preds = %2849
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %322, ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef @.str.18)
          to label %2851 unwind label %2901

2851:                                             ; preds = %2850
  %2852 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %322)
          to label %2853 unwind label %2905

2853:                                             ; preds = %2851
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %327) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %327) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %326) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %325) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %323) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #7
  %2854 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2855 unwind label %1808

2855:                                             ; preds = %2853
  call void @llvm.lifetime.start.p0(i64 32, ptr %328) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %329) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %330) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef @.str.171, ptr noundef nonnull align 1 dereferenceable(1) %330)
          to label %2856 unwind label %2914

2856:                                             ; preds = %2855
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %328, ptr noundef nonnull align 8 dereferenceable(32) %329)
          to label %2857 unwind label %2918

2857:                                             ; preds = %2856
  %2858 = 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) %2854, ptr noundef nonnull align 8 dereferenceable(32) %328)
          to label %2859 unwind label %2922

2859:                                             ; preds = %2857
  %2860 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2858, ptr noundef @.str.20)
          to label %2861 unwind label %2922

2861:                                             ; preds = %2859
  call void @llvm.lifetime.start.p0(i64 32, ptr %331) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %332) #7
  %2862 = load ptr, ptr %5, align 8, !tbaa !5
  %2863 = getelementptr inbounds %struct.LodePNGInfo, ptr %2862, i32 0, i32 14
  %2864 = load ptr, ptr %2863, align 8, !tbaa !35
  %2865 = getelementptr inbounds ptr, ptr %2864, i64 0
  %2866 = load ptr, ptr %2865, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %333) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %333) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef %2866, ptr noundef nonnull align 1 dereferenceable(1) %333)
          to label %2867 unwind label %2926

2867:                                             ; preds = %2861
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %331, ptr noundef nonnull align 8 dereferenceable(32) %332)
          to label %2868 unwind label %2930

2868:                                             ; preds = %2867
  %2869 = 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) %2860, ptr noundef nonnull align 8 dereferenceable(32) %331)
          to label %2870 unwind label %2934

2870:                                             ; preds = %2868
  %2871 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2869, ptr noundef @.str.21)
          to label %2872 unwind label %2934

2872:                                             ; preds = %2870
  %2873 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2871, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2874 unwind label %2934

2874:                                             ; preds = %2872
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %333) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %333) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %332) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %331) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %330) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %329) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %328) #7
  invoke void @_Z4failv()
          to label %2875 unwind label %1808

2875:                                             ; preds = %2874
  br label %2943

2876:                                             ; preds = %2837
  %2877 = landingpad { ptr, i32 }
          cleanup
  %2878 = extractvalue { ptr, i32 } %2877, 0
  store ptr %2878, ptr %2, align 8
  %2879 = extractvalue { ptr, i32 } %2877, 1
  store i32 %2879, ptr %3, align 4
  br label %2884

2880:                                             ; preds = %2838
  %2881 = landingpad { ptr, i32 }
          cleanup
  %2882 = extractvalue { ptr, i32 } %2881, 0
  store ptr %2882, ptr %2, align 8
  %2883 = extractvalue { ptr, i32 } %2881, 1
  store i32 %2883, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %321) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %321) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %320) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %318) #7
  br label %2884

2884:                                             ; preds = %2880, %2876
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %319) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %319) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %318) #7
  br label %3541

2885:                                             ; preds = %2846
  %2886 = landingpad { ptr, i32 }
          cleanup
  %2887 = extractvalue { ptr, i32 } %2886, 0
  store ptr %2887, ptr %2, align 8
  %2888 = extractvalue { ptr, i32 } %2886, 1
  store i32 %2888, ptr %3, align 4
  br label %2913

2889:                                             ; preds = %2847
  %2890 = landingpad { ptr, i32 }
          cleanup
  %2891 = extractvalue { ptr, i32 } %2890, 0
  store ptr %2891, ptr %2, align 8
  %2892 = extractvalue { ptr, i32 } %2890, 1
  store i32 %2892, ptr %3, align 4
  br label %2912

2893:                                             ; preds = %2848
  %2894 = landingpad { ptr, i32 }
          cleanup
  %2895 = extractvalue { ptr, i32 } %2894, 0
  store ptr %2895, ptr %2, align 8
  %2896 = extractvalue { ptr, i32 } %2894, 1
  store i32 %2896, ptr %3, align 4
  br label %2911

2897:                                             ; preds = %2849
  %2898 = landingpad { ptr, i32 }
          cleanup
  %2899 = extractvalue { ptr, i32 } %2898, 0
  store ptr %2899, ptr %2, align 8
  %2900 = extractvalue { ptr, i32 } %2898, 1
  store i32 %2900, ptr %3, align 4
  br label %2910

2901:                                             ; preds = %2850
  %2902 = landingpad { ptr, i32 }
          cleanup
  %2903 = extractvalue { ptr, i32 } %2902, 0
  store ptr %2903, ptr %2, align 8
  %2904 = extractvalue { ptr, i32 } %2902, 1
  store i32 %2904, ptr %3, align 4
  br label %2909

2905:                                             ; preds = %2851
  %2906 = landingpad { ptr, i32 }
          cleanup
  %2907 = extractvalue { ptr, i32 } %2906, 0
  store ptr %2907, ptr %2, align 8
  %2908 = extractvalue { ptr, i32 } %2906, 1
  store i32 %2908, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #7
  br label %2909

2909:                                             ; preds = %2905, %2901
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #7
  br label %2910

2910:                                             ; preds = %2909, %2897
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  br label %2911

2911:                                             ; preds = %2910, %2893
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #7
  br label %2912

2912:                                             ; preds = %2911, %2889
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  br label %2913

2913:                                             ; preds = %2912, %2885
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %327) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %327) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %326) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %325) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %323) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %322) #7
  br label %3541

2914:                                             ; preds = %2855
  %2915 = landingpad { ptr, i32 }
          cleanup
  %2916 = extractvalue { ptr, i32 } %2915, 0
  store ptr %2916, ptr %2, align 8
  %2917 = extractvalue { ptr, i32 } %2915, 1
  store i32 %2917, ptr %3, align 4
  br label %2942

2918:                                             ; preds = %2856
  %2919 = landingpad { ptr, i32 }
          cleanup
  %2920 = extractvalue { ptr, i32 } %2919, 0
  store ptr %2920, ptr %2, align 8
  %2921 = extractvalue { ptr, i32 } %2919, 1
  store i32 %2921, ptr %3, align 4
  br label %2941

2922:                                             ; preds = %2859, %2857
  %2923 = landingpad { ptr, i32 }
          cleanup
  %2924 = extractvalue { ptr, i32 } %2923, 0
  store ptr %2924, ptr %2, align 8
  %2925 = extractvalue { ptr, i32 } %2923, 1
  store i32 %2925, ptr %3, align 4
  br label %2940

2926:                                             ; preds = %2861
  %2927 = landingpad { ptr, i32 }
          cleanup
  %2928 = extractvalue { ptr, i32 } %2927, 0
  store ptr %2928, ptr %2, align 8
  %2929 = extractvalue { ptr, i32 } %2927, 1
  store i32 %2929, ptr %3, align 4
  br label %2939

2930:                                             ; preds = %2867
  %2931 = landingpad { ptr, i32 }
          cleanup
  %2932 = extractvalue { ptr, i32 } %2931, 0
  store ptr %2932, ptr %2, align 8
  %2933 = extractvalue { ptr, i32 } %2931, 1
  store i32 %2933, ptr %3, align 4
  br label %2938

2934:                                             ; preds = %2872, %2870, %2868
  %2935 = landingpad { ptr, i32 }
          cleanup
  %2936 = extractvalue { ptr, i32 } %2935, 0
  store ptr %2936, ptr %2, align 8
  %2937 = extractvalue { ptr, i32 } %2935, 1
  store i32 %2937, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #7
  br label %2938

2938:                                             ; preds = %2934, %2930
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #7
  br label %2939

2939:                                             ; preds = %2938, %2926
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %333) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %333) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %332) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %331) #7
  br label %2940

2940:                                             ; preds = %2939, %2922
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #7
  br label %2941

2941:                                             ; preds = %2940, %2918
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #7
  br label %2942

2942:                                             ; preds = %2941, %2914
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %330) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %329) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %328) #7
  br label %3541

2943:                                             ; preds = %2875, %2844
  call void @llvm.lifetime.start.p0(i64 32, ptr %334) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %335) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %335) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef @.str.172, ptr noundef nonnull align 1 dereferenceable(1) %335)
          to label %2944 unwind label %2982

2944:                                             ; preds = %2943
  call void @llvm.lifetime.start.p0(i64 32, ptr %336) #7
  %2945 = load ptr, ptr %5, align 8, !tbaa !5
  %2946 = getelementptr inbounds %struct.LodePNGInfo, ptr %2945, i32 0, i32 15
  %2947 = load ptr, ptr %2946, align 8, !tbaa !36
  %2948 = getelementptr inbounds ptr, ptr %2947, i64 0
  %2949 = load ptr, ptr %2948, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %337) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %337) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %336, ptr noundef %2949, ptr noundef nonnull align 1 dereferenceable(1) %337)
          to label %2950 unwind label %2986

2950:                                             ; preds = %2944
  %2951 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef nonnull align 8 dereferenceable(32) %336) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %336) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %337) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %337) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %336) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %335) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %335) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %334) #7
  br i1 %2951, label %2952, label %3049

2952:                                             ; preds = %2950
  call void @llvm.lifetime.start.p0(i64 32, ptr %338) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %339) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %340) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %341) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %342) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %343) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %343)
          to label %2953 unwind label %2991

2953:                                             ; preds = %2952
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %341, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef @.str.245)
          to label %2954 unwind label %2995

2954:                                             ; preds = %2953
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %340, ptr noundef nonnull align 8 dereferenceable(32) %341, ptr noundef @.str.3)
          to label %2955 unwind label %2999

2955:                                             ; preds = %2954
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %339, ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef @.str.246)
          to label %2956 unwind label %3003

2956:                                             ; preds = %2955
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %338, ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef @.str.18)
          to label %2957 unwind label %3007

2957:                                             ; preds = %2956
  %2958 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %338)
          to label %2959 unwind label %3011

2959:                                             ; preds = %2957
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %343) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %341) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %340) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %339) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %338) #7
  %2960 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %2961 unwind label %1808

2961:                                             ; preds = %2959
  call void @llvm.lifetime.start.p0(i64 32, ptr %344) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %345) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %346) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef @.str.172, ptr noundef nonnull align 1 dereferenceable(1) %346)
          to label %2962 unwind label %3020

2962:                                             ; preds = %2961
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %344, ptr noundef nonnull align 8 dereferenceable(32) %345)
          to label %2963 unwind label %3024

2963:                                             ; preds = %2962
  %2964 = 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) %2960, ptr noundef nonnull align 8 dereferenceable(32) %344)
          to label %2965 unwind label %3028

2965:                                             ; preds = %2963
  %2966 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2964, ptr noundef @.str.20)
          to label %2967 unwind label %3028

2967:                                             ; preds = %2965
  call void @llvm.lifetime.start.p0(i64 32, ptr %347) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %348) #7
  %2968 = load ptr, ptr %5, align 8, !tbaa !5
  %2969 = getelementptr inbounds %struct.LodePNGInfo, ptr %2968, i32 0, i32 15
  %2970 = load ptr, ptr %2969, align 8, !tbaa !36
  %2971 = getelementptr inbounds ptr, ptr %2970, i64 0
  %2972 = load ptr, ptr %2971, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %349) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef %2972, ptr noundef nonnull align 1 dereferenceable(1) %349)
          to label %2973 unwind label %3032

2973:                                             ; preds = %2967
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %347, ptr noundef nonnull align 8 dereferenceable(32) %348)
          to label %2974 unwind label %3036

2974:                                             ; preds = %2973
  %2975 = 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) %2966, ptr noundef nonnull align 8 dereferenceable(32) %347)
          to label %2976 unwind label %3040

2976:                                             ; preds = %2974
  %2977 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2975, ptr noundef @.str.21)
          to label %2978 unwind label %3040

2978:                                             ; preds = %2976
  %2979 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2977, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2980 unwind label %3040

2980:                                             ; preds = %2978
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %347) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %349) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %348) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %347) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %346) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %345) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %344) #7
  invoke void @_Z4failv()
          to label %2981 unwind label %1808

2981:                                             ; preds = %2980
  br label %3049

2982:                                             ; preds = %2943
  %2983 = landingpad { ptr, i32 }
          cleanup
  %2984 = extractvalue { ptr, i32 } %2983, 0
  store ptr %2984, ptr %2, align 8
  %2985 = extractvalue { ptr, i32 } %2983, 1
  store i32 %2985, ptr %3, align 4
  br label %2990

2986:                                             ; preds = %2944
  %2987 = landingpad { ptr, i32 }
          cleanup
  %2988 = extractvalue { ptr, i32 } %2987, 0
  store ptr %2988, ptr %2, align 8
  %2989 = extractvalue { ptr, i32 } %2987, 1
  store i32 %2989, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %337) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %337) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %336) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #7
  br label %2990

2990:                                             ; preds = %2986, %2982
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %335) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %335) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %334) #7
  br label %3541

2991:                                             ; preds = %2952
  %2992 = landingpad { ptr, i32 }
          cleanup
  %2993 = extractvalue { ptr, i32 } %2992, 0
  store ptr %2993, ptr %2, align 8
  %2994 = extractvalue { ptr, i32 } %2992, 1
  store i32 %2994, ptr %3, align 4
  br label %3019

2995:                                             ; preds = %2953
  %2996 = landingpad { ptr, i32 }
          cleanup
  %2997 = extractvalue { ptr, i32 } %2996, 0
  store ptr %2997, ptr %2, align 8
  %2998 = extractvalue { ptr, i32 } %2996, 1
  store i32 %2998, ptr %3, align 4
  br label %3018

2999:                                             ; preds = %2954
  %3000 = landingpad { ptr, i32 }
          cleanup
  %3001 = extractvalue { ptr, i32 } %3000, 0
  store ptr %3001, ptr %2, align 8
  %3002 = extractvalue { ptr, i32 } %3000, 1
  store i32 %3002, ptr %3, align 4
  br label %3017

3003:                                             ; preds = %2955
  %3004 = landingpad { ptr, i32 }
          cleanup
  %3005 = extractvalue { ptr, i32 } %3004, 0
  store ptr %3005, ptr %2, align 8
  %3006 = extractvalue { ptr, i32 } %3004, 1
  store i32 %3006, ptr %3, align 4
  br label %3016

3007:                                             ; preds = %2956
  %3008 = landingpad { ptr, i32 }
          cleanup
  %3009 = extractvalue { ptr, i32 } %3008, 0
  store ptr %3009, ptr %2, align 8
  %3010 = extractvalue { ptr, i32 } %3008, 1
  store i32 %3010, ptr %3, align 4
  br label %3015

3011:                                             ; preds = %2957
  %3012 = landingpad { ptr, i32 }
          cleanup
  %3013 = extractvalue { ptr, i32 } %3012, 0
  store ptr %3013, ptr %2, align 8
  %3014 = extractvalue { ptr, i32 } %3012, 1
  store i32 %3014, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #7
  br label %3015

3015:                                             ; preds = %3011, %3007
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %339) #7
  br label %3016

3016:                                             ; preds = %3015, %3003
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  br label %3017

3017:                                             ; preds = %3016, %2999
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %341) #7
  br label %3018

3018:                                             ; preds = %3017, %2995
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  br label %3019

3019:                                             ; preds = %3018, %2991
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %343) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %342) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %341) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %340) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %339) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %338) #7
  br label %3541

3020:                                             ; preds = %2961
  %3021 = landingpad { ptr, i32 }
          cleanup
  %3022 = extractvalue { ptr, i32 } %3021, 0
  store ptr %3022, ptr %2, align 8
  %3023 = extractvalue { ptr, i32 } %3021, 1
  store i32 %3023, ptr %3, align 4
  br label %3048

3024:                                             ; preds = %2962
  %3025 = landingpad { ptr, i32 }
          cleanup
  %3026 = extractvalue { ptr, i32 } %3025, 0
  store ptr %3026, ptr %2, align 8
  %3027 = extractvalue { ptr, i32 } %3025, 1
  store i32 %3027, ptr %3, align 4
  br label %3047

3028:                                             ; preds = %2965, %2963
  %3029 = landingpad { ptr, i32 }
          cleanup
  %3030 = extractvalue { ptr, i32 } %3029, 0
  store ptr %3030, ptr %2, align 8
  %3031 = extractvalue { ptr, i32 } %3029, 1
  store i32 %3031, ptr %3, align 4
  br label %3046

3032:                                             ; preds = %2967
  %3033 = landingpad { ptr, i32 }
          cleanup
  %3034 = extractvalue { ptr, i32 } %3033, 0
  store ptr %3034, ptr %2, align 8
  %3035 = extractvalue { ptr, i32 } %3033, 1
  store i32 %3035, ptr %3, align 4
  br label %3045

3036:                                             ; preds = %2973
  %3037 = landingpad { ptr, i32 }
          cleanup
  %3038 = extractvalue { ptr, i32 } %3037, 0
  store ptr %3038, ptr %2, align 8
  %3039 = extractvalue { ptr, i32 } %3037, 1
  store i32 %3039, ptr %3, align 4
  br label %3044

3040:                                             ; preds = %2978, %2976, %2974
  %3041 = landingpad { ptr, i32 }
          cleanup
  %3042 = extractvalue { ptr, i32 } %3041, 0
  store ptr %3042, ptr %2, align 8
  %3043 = extractvalue { ptr, i32 } %3041, 1
  store i32 %3043, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %347) #7
  br label %3044

3044:                                             ; preds = %3040, %3036
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #7
  br label %3045

3045:                                             ; preds = %3044, %3032
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %349) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %348) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %347) #7
  br label %3046

3046:                                             ; preds = %3045, %3028
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #7
  br label %3047

3047:                                             ; preds = %3046, %3024
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #7
  br label %3048

3048:                                             ; preds = %3047, %3020
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %346) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %345) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %344) #7
  br label %3541

3049:                                             ; preds = %2981, %2950
  call void @llvm.lifetime.start.p0(i64 32, ptr %350) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %351) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %350, ptr noundef @.str.173, ptr noundef nonnull align 1 dereferenceable(1) %351)
          to label %3050 unwind label %3088

3050:                                             ; preds = %3049
  call void @llvm.lifetime.start.p0(i64 32, ptr %352) #7
  %3051 = load ptr, ptr %5, align 8, !tbaa !5
  %3052 = getelementptr inbounds %struct.LodePNGInfo, ptr %3051, i32 0, i32 12
  %3053 = load ptr, ptr %3052, align 8, !tbaa !33
  %3054 = getelementptr inbounds ptr, ptr %3053, i64 1
  %3055 = load ptr, ptr %3054, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %353) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef %3055, ptr noundef nonnull align 1 dereferenceable(1) %353)
          to label %3056 unwind label %3092

3056:                                             ; preds = %3050
  %3057 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %350, ptr noundef nonnull align 8 dereferenceable(32) %352) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %352) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %353) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %352) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %350) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %351) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %350) #7
  br i1 %3057, label %3058, label %3155

3058:                                             ; preds = %3056
  call void @llvm.lifetime.start.p0(i64 32, ptr %354) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %355) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %356) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %357) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %358) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %359) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %358, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %359)
          to label %3059 unwind label %3097

3059:                                             ; preds = %3058
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %357, ptr noundef nonnull align 8 dereferenceable(32) %358, ptr noundef @.str.247)
          to label %3060 unwind label %3101

3060:                                             ; preds = %3059
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %356, ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef @.str.3)
          to label %3061 unwind label %3105

3061:                                             ; preds = %3060
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %355, ptr noundef nonnull align 8 dereferenceable(32) %356, ptr noundef @.str.248)
          to label %3062 unwind label %3109

3062:                                             ; preds = %3061
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %354, ptr noundef nonnull align 8 dereferenceable(32) %355, ptr noundef @.str.18)
          to label %3063 unwind label %3113

3063:                                             ; preds = %3062
  %3064 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %354)
          to label %3065 unwind label %3117

3065:                                             ; preds = %3063
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %355) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %359) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %358) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %357) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %356) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %355) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #7
  %3066 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %3067 unwind label %1808

3067:                                             ; preds = %3065
  call void @llvm.lifetime.start.p0(i64 32, ptr %360) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %361) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %362) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %362) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %361, ptr noundef @.str.173, ptr noundef nonnull align 1 dereferenceable(1) %362)
          to label %3068 unwind label %3126

3068:                                             ; preds = %3067
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %360, ptr noundef nonnull align 8 dereferenceable(32) %361)
          to label %3069 unwind label %3130

3069:                                             ; preds = %3068
  %3070 = 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) %3066, ptr noundef nonnull align 8 dereferenceable(32) %360)
          to label %3071 unwind label %3134

3071:                                             ; preds = %3069
  %3072 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3070, ptr noundef @.str.20)
          to label %3073 unwind label %3134

3073:                                             ; preds = %3071
  call void @llvm.lifetime.start.p0(i64 32, ptr %363) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %364) #7
  %3074 = load ptr, ptr %5, align 8, !tbaa !5
  %3075 = getelementptr inbounds %struct.LodePNGInfo, ptr %3074, i32 0, i32 12
  %3076 = load ptr, ptr %3075, align 8, !tbaa !33
  %3077 = getelementptr inbounds ptr, ptr %3076, i64 1
  %3078 = load ptr, ptr %3077, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %365) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef %3078, ptr noundef nonnull align 1 dereferenceable(1) %365)
          to label %3079 unwind label %3138

3079:                                             ; preds = %3073
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %363, ptr noundef nonnull align 8 dereferenceable(32) %364)
          to label %3080 unwind label %3142

3080:                                             ; preds = %3079
  %3081 = 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) %3072, ptr noundef nonnull align 8 dereferenceable(32) %363)
          to label %3082 unwind label %3146

3082:                                             ; preds = %3080
  %3083 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3081, ptr noundef @.str.21)
          to label %3084 unwind label %3146

3084:                                             ; preds = %3082
  %3085 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3083, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3086 unwind label %3146

3086:                                             ; preds = %3084
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %365) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %364) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %363) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %362) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %362) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %361) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #7
  invoke void @_Z4failv()
          to label %3087 unwind label %1808

3087:                                             ; preds = %3086
  br label %3155

3088:                                             ; preds = %3049
  %3089 = landingpad { ptr, i32 }
          cleanup
  %3090 = extractvalue { ptr, i32 } %3089, 0
  store ptr %3090, ptr %2, align 8
  %3091 = extractvalue { ptr, i32 } %3089, 1
  store i32 %3091, ptr %3, align 4
  br label %3096

3092:                                             ; preds = %3050
  %3093 = landingpad { ptr, i32 }
          cleanup
  %3094 = extractvalue { ptr, i32 } %3093, 0
  store ptr %3094, ptr %2, align 8
  %3095 = extractvalue { ptr, i32 } %3093, 1
  store i32 %3095, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %353) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %353) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %352) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %350) #7
  br label %3096

3096:                                             ; preds = %3092, %3088
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %351) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %351) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %350) #7
  br label %3541

3097:                                             ; preds = %3058
  %3098 = landingpad { ptr, i32 }
          cleanup
  %3099 = extractvalue { ptr, i32 } %3098, 0
  store ptr %3099, ptr %2, align 8
  %3100 = extractvalue { ptr, i32 } %3098, 1
  store i32 %3100, ptr %3, align 4
  br label %3125

3101:                                             ; preds = %3059
  %3102 = landingpad { ptr, i32 }
          cleanup
  %3103 = extractvalue { ptr, i32 } %3102, 0
  store ptr %3103, ptr %2, align 8
  %3104 = extractvalue { ptr, i32 } %3102, 1
  store i32 %3104, ptr %3, align 4
  br label %3124

3105:                                             ; preds = %3060
  %3106 = landingpad { ptr, i32 }
          cleanup
  %3107 = extractvalue { ptr, i32 } %3106, 0
  store ptr %3107, ptr %2, align 8
  %3108 = extractvalue { ptr, i32 } %3106, 1
  store i32 %3108, ptr %3, align 4
  br label %3123

3109:                                             ; preds = %3061
  %3110 = landingpad { ptr, i32 }
          cleanup
  %3111 = extractvalue { ptr, i32 } %3110, 0
  store ptr %3111, ptr %2, align 8
  %3112 = extractvalue { ptr, i32 } %3110, 1
  store i32 %3112, ptr %3, align 4
  br label %3122

3113:                                             ; preds = %3062
  %3114 = landingpad { ptr, i32 }
          cleanup
  %3115 = extractvalue { ptr, i32 } %3114, 0
  store ptr %3115, ptr %2, align 8
  %3116 = extractvalue { ptr, i32 } %3114, 1
  store i32 %3116, ptr %3, align 4
  br label %3121

3117:                                             ; preds = %3063
  %3118 = landingpad { ptr, i32 }
          cleanup
  %3119 = extractvalue { ptr, i32 } %3118, 0
  store ptr %3119, ptr %2, align 8
  %3120 = extractvalue { ptr, i32 } %3118, 1
  store i32 %3120, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #7
  br label %3121

3121:                                             ; preds = %3117, %3113
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %355) #7
  br label %3122

3122:                                             ; preds = %3121, %3109
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #7
  br label %3123

3123:                                             ; preds = %3122, %3105
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #7
  br label %3124

3124:                                             ; preds = %3123, %3101
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #7
  br label %3125

3125:                                             ; preds = %3124, %3097
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %359) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %358) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %357) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %356) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %355) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #7
  br label %3541

3126:                                             ; preds = %3067
  %3127 = landingpad { ptr, i32 }
          cleanup
  %3128 = extractvalue { ptr, i32 } %3127, 0
  store ptr %3128, ptr %2, align 8
  %3129 = extractvalue { ptr, i32 } %3127, 1
  store i32 %3129, ptr %3, align 4
  br label %3154

3130:                                             ; preds = %3068
  %3131 = landingpad { ptr, i32 }
          cleanup
  %3132 = extractvalue { ptr, i32 } %3131, 0
  store ptr %3132, ptr %2, align 8
  %3133 = extractvalue { ptr, i32 } %3131, 1
  store i32 %3133, ptr %3, align 4
  br label %3153

3134:                                             ; preds = %3071, %3069
  %3135 = landingpad { ptr, i32 }
          cleanup
  %3136 = extractvalue { ptr, i32 } %3135, 0
  store ptr %3136, ptr %2, align 8
  %3137 = extractvalue { ptr, i32 } %3135, 1
  store i32 %3137, ptr %3, align 4
  br label %3152

3138:                                             ; preds = %3073
  %3139 = landingpad { ptr, i32 }
          cleanup
  %3140 = extractvalue { ptr, i32 } %3139, 0
  store ptr %3140, ptr %2, align 8
  %3141 = extractvalue { ptr, i32 } %3139, 1
  store i32 %3141, ptr %3, align 4
  br label %3151

3142:                                             ; preds = %3079
  %3143 = landingpad { ptr, i32 }
          cleanup
  %3144 = extractvalue { ptr, i32 } %3143, 0
  store ptr %3144, ptr %2, align 8
  %3145 = extractvalue { ptr, i32 } %3143, 1
  store i32 %3145, ptr %3, align 4
  br label %3150

3146:                                             ; preds = %3084, %3082, %3080
  %3147 = landingpad { ptr, i32 }
          cleanup
  %3148 = extractvalue { ptr, i32 } %3147, 0
  store ptr %3148, ptr %2, align 8
  %3149 = extractvalue { ptr, i32 } %3147, 1
  store i32 %3149, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #7
  br label %3150

3150:                                             ; preds = %3146, %3142
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #7
  br label %3151

3151:                                             ; preds = %3150, %3138
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %365) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %364) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %363) #7
  br label %3152

3152:                                             ; preds = %3151, %3134
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #7
  br label %3153

3153:                                             ; preds = %3152, %3130
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #7
  br label %3154

3154:                                             ; preds = %3153, %3126
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %362) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %362) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %361) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %360) #7
  br label %3541

3155:                                             ; preds = %3087, %3056
  call void @llvm.lifetime.start.p0(i64 32, ptr %366) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %367) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef @.str.174, ptr noundef nonnull align 1 dereferenceable(1) %367)
          to label %3156 unwind label %3194

3156:                                             ; preds = %3155
  call void @llvm.lifetime.start.p0(i64 32, ptr %368) #7
  %3157 = load ptr, ptr %5, align 8, !tbaa !5
  %3158 = getelementptr inbounds %struct.LodePNGInfo, ptr %3157, i32 0, i32 13
  %3159 = load ptr, ptr %3158, align 8, !tbaa !34
  %3160 = getelementptr inbounds ptr, ptr %3159, i64 1
  %3161 = load ptr, ptr %3160, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %369) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %369) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %368, ptr noundef %3161, ptr noundef nonnull align 1 dereferenceable(1) %369)
          to label %3162 unwind label %3198

3162:                                             ; preds = %3156
  %3163 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef nonnull align 8 dereferenceable(32) %368) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %368) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %369) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %369) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %368) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #7
  br i1 %3163, label %3164, label %3261

3164:                                             ; preds = %3162
  call void @llvm.lifetime.start.p0(i64 32, ptr %370) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %371) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %372) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %373) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %374) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %375) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %374, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %375)
          to label %3165 unwind label %3203

3165:                                             ; preds = %3164
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %373, ptr noundef nonnull align 8 dereferenceable(32) %374, ptr noundef @.str.249)
          to label %3166 unwind label %3207

3166:                                             ; preds = %3165
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %372, ptr noundef nonnull align 8 dereferenceable(32) %373, ptr noundef @.str.3)
          to label %3167 unwind label %3211

3167:                                             ; preds = %3166
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %371, ptr noundef nonnull align 8 dereferenceable(32) %372, ptr noundef @.str.250)
          to label %3168 unwind label %3215

3168:                                             ; preds = %3167
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %370, ptr noundef nonnull align 8 dereferenceable(32) %371, ptr noundef @.str.18)
          to label %3169 unwind label %3219

3169:                                             ; preds = %3168
  %3170 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %370)
          to label %3171 unwind label %3223

3171:                                             ; preds = %3169
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %371) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %375) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %374) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %373) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %372) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %371) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %370) #7
  %3172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %3173 unwind label %1808

3173:                                             ; preds = %3171
  call void @llvm.lifetime.start.p0(i64 32, ptr %376) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %377) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %378) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef @.str.174, ptr noundef nonnull align 1 dereferenceable(1) %378)
          to label %3174 unwind label %3232

3174:                                             ; preds = %3173
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %376, ptr noundef nonnull align 8 dereferenceable(32) %377)
          to label %3175 unwind label %3236

3175:                                             ; preds = %3174
  %3176 = 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) %3172, ptr noundef nonnull align 8 dereferenceable(32) %376)
          to label %3177 unwind label %3240

3177:                                             ; preds = %3175
  %3178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3176, ptr noundef @.str.20)
          to label %3179 unwind label %3240

3179:                                             ; preds = %3177
  call void @llvm.lifetime.start.p0(i64 32, ptr %379) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %380) #7
  %3180 = load ptr, ptr %5, align 8, !tbaa !5
  %3181 = getelementptr inbounds %struct.LodePNGInfo, ptr %3180, i32 0, i32 13
  %3182 = load ptr, ptr %3181, align 8, !tbaa !34
  %3183 = getelementptr inbounds ptr, ptr %3182, i64 1
  %3184 = load ptr, ptr %3183, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %381) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef %3184, ptr noundef nonnull align 1 dereferenceable(1) %381)
          to label %3185 unwind label %3244

3185:                                             ; preds = %3179
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %379, ptr noundef nonnull align 8 dereferenceable(32) %380)
          to label %3186 unwind label %3248

3186:                                             ; preds = %3185
  %3187 = 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) %3178, ptr noundef nonnull align 8 dereferenceable(32) %379)
          to label %3188 unwind label %3252

3188:                                             ; preds = %3186
  %3189 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3187, ptr noundef @.str.21)
          to label %3190 unwind label %3252

3190:                                             ; preds = %3188
  %3191 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3189, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3192 unwind label %3252

3192:                                             ; preds = %3190
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %381) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %380) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %379) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %378) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %377) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %376) #7
  invoke void @_Z4failv()
          to label %3193 unwind label %1808

3193:                                             ; preds = %3192
  br label %3261

3194:                                             ; preds = %3155
  %3195 = landingpad { ptr, i32 }
          cleanup
  %3196 = extractvalue { ptr, i32 } %3195, 0
  store ptr %3196, ptr %2, align 8
  %3197 = extractvalue { ptr, i32 } %3195, 1
  store i32 %3197, ptr %3, align 4
  br label %3202

3198:                                             ; preds = %3156
  %3199 = landingpad { ptr, i32 }
          cleanup
  %3200 = extractvalue { ptr, i32 } %3199, 0
  store ptr %3200, ptr %2, align 8
  %3201 = extractvalue { ptr, i32 } %3199, 1
  store i32 %3201, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %369) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %369) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %368) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #7
  br label %3202

3202:                                             ; preds = %3198, %3194
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #7
  br label %3541

3203:                                             ; preds = %3164
  %3204 = landingpad { ptr, i32 }
          cleanup
  %3205 = extractvalue { ptr, i32 } %3204, 0
  store ptr %3205, ptr %2, align 8
  %3206 = extractvalue { ptr, i32 } %3204, 1
  store i32 %3206, ptr %3, align 4
  br label %3231

3207:                                             ; preds = %3165
  %3208 = landingpad { ptr, i32 }
          cleanup
  %3209 = extractvalue { ptr, i32 } %3208, 0
  store ptr %3209, ptr %2, align 8
  %3210 = extractvalue { ptr, i32 } %3208, 1
  store i32 %3210, ptr %3, align 4
  br label %3230

3211:                                             ; preds = %3166
  %3212 = landingpad { ptr, i32 }
          cleanup
  %3213 = extractvalue { ptr, i32 } %3212, 0
  store ptr %3213, ptr %2, align 8
  %3214 = extractvalue { ptr, i32 } %3212, 1
  store i32 %3214, ptr %3, align 4
  br label %3229

3215:                                             ; preds = %3167
  %3216 = landingpad { ptr, i32 }
          cleanup
  %3217 = extractvalue { ptr, i32 } %3216, 0
  store ptr %3217, ptr %2, align 8
  %3218 = extractvalue { ptr, i32 } %3216, 1
  store i32 %3218, ptr %3, align 4
  br label %3228

3219:                                             ; preds = %3168
  %3220 = landingpad { ptr, i32 }
          cleanup
  %3221 = extractvalue { ptr, i32 } %3220, 0
  store ptr %3221, ptr %2, align 8
  %3222 = extractvalue { ptr, i32 } %3220, 1
  store i32 %3222, ptr %3, align 4
  br label %3227

3223:                                             ; preds = %3169
  %3224 = landingpad { ptr, i32 }
          cleanup
  %3225 = extractvalue { ptr, i32 } %3224, 0
  store ptr %3225, ptr %2, align 8
  %3226 = extractvalue { ptr, i32 } %3224, 1
  store i32 %3226, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #7
  br label %3227

3227:                                             ; preds = %3223, %3219
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %371) #7
  br label %3228

3228:                                             ; preds = %3227, %3215
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  br label %3229

3229:                                             ; preds = %3228, %3211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %373) #7
  br label %3230

3230:                                             ; preds = %3229, %3207
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #7
  br label %3231

3231:                                             ; preds = %3230, %3203
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %375) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %374) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %373) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %372) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %371) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %370) #7
  br label %3541

3232:                                             ; preds = %3173
  %3233 = landingpad { ptr, i32 }
          cleanup
  %3234 = extractvalue { ptr, i32 } %3233, 0
  store ptr %3234, ptr %2, align 8
  %3235 = extractvalue { ptr, i32 } %3233, 1
  store i32 %3235, ptr %3, align 4
  br label %3260

3236:                                             ; preds = %3174
  %3237 = landingpad { ptr, i32 }
          cleanup
  %3238 = extractvalue { ptr, i32 } %3237, 0
  store ptr %3238, ptr %2, align 8
  %3239 = extractvalue { ptr, i32 } %3237, 1
  store i32 %3239, ptr %3, align 4
  br label %3259

3240:                                             ; preds = %3177, %3175
  %3241 = landingpad { ptr, i32 }
          cleanup
  %3242 = extractvalue { ptr, i32 } %3241, 0
  store ptr %3242, ptr %2, align 8
  %3243 = extractvalue { ptr, i32 } %3241, 1
  store i32 %3243, ptr %3, align 4
  br label %3258

3244:                                             ; preds = %3179
  %3245 = landingpad { ptr, i32 }
          cleanup
  %3246 = extractvalue { ptr, i32 } %3245, 0
  store ptr %3246, ptr %2, align 8
  %3247 = extractvalue { ptr, i32 } %3245, 1
  store i32 %3247, ptr %3, align 4
  br label %3257

3248:                                             ; preds = %3185
  %3249 = landingpad { ptr, i32 }
          cleanup
  %3250 = extractvalue { ptr, i32 } %3249, 0
  store ptr %3250, ptr %2, align 8
  %3251 = extractvalue { ptr, i32 } %3249, 1
  store i32 %3251, ptr %3, align 4
  br label %3256

3252:                                             ; preds = %3190, %3188, %3186
  %3253 = landingpad { ptr, i32 }
          cleanup
  %3254 = extractvalue { ptr, i32 } %3253, 0
  store ptr %3254, ptr %2, align 8
  %3255 = extractvalue { ptr, i32 } %3253, 1
  store i32 %3255, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #7
  br label %3256

3256:                                             ; preds = %3252, %3248
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #7
  br label %3257

3257:                                             ; preds = %3256, %3244
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %381) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %380) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %379) #7
  br label %3258

3258:                                             ; preds = %3257, %3240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #7
  br label %3259

3259:                                             ; preds = %3258, %3236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #7
  br label %3260

3260:                                             ; preds = %3259, %3232
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %378) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %378) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %377) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %376) #7
  br label %3541

3261:                                             ; preds = %3193, %3162
  call void @llvm.lifetime.start.p0(i64 32, ptr %382) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %383) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %382, ptr noundef @.str.175, ptr noundef nonnull align 1 dereferenceable(1) %383)
          to label %3262 unwind label %3300

3262:                                             ; preds = %3261
  call void @llvm.lifetime.start.p0(i64 32, ptr %384) #7
  %3263 = load ptr, ptr %5, align 8, !tbaa !5
  %3264 = getelementptr inbounds %struct.LodePNGInfo, ptr %3263, i32 0, i32 14
  %3265 = load ptr, ptr %3264, align 8, !tbaa !35
  %3266 = getelementptr inbounds ptr, ptr %3265, i64 1
  %3267 = load ptr, ptr %3266, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %385) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %385) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %384, ptr noundef %3267, ptr noundef nonnull align 1 dereferenceable(1) %385)
          to label %3268 unwind label %3304

3268:                                             ; preds = %3262
  %3269 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %382, ptr noundef nonnull align 8 dereferenceable(32) %384) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %384) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %385) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %385) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %384) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %383) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %382) #7
  br i1 %3269, label %3270, label %3367

3270:                                             ; preds = %3268
  call void @llvm.lifetime.start.p0(i64 32, ptr %386) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %387) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %388) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %389) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %390) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %391) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %391)
          to label %3271 unwind label %3309

3271:                                             ; preds = %3270
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %389, ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef @.str.251)
          to label %3272 unwind label %3313

3272:                                             ; preds = %3271
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %388, ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef @.str.3)
          to label %3273 unwind label %3317

3273:                                             ; preds = %3272
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %387, ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef @.str.252)
          to label %3274 unwind label %3321

3274:                                             ; preds = %3273
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %386, ptr noundef nonnull align 8 dereferenceable(32) %387, ptr noundef @.str.18)
          to label %3275 unwind label %3325

3275:                                             ; preds = %3274
  %3276 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %386)
          to label %3277 unwind label %3329

3277:                                             ; preds = %3275
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %391) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %390) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %389) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %388) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %386) #7
  %3278 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %3279 unwind label %1808

3279:                                             ; preds = %3277
  call void @llvm.lifetime.start.p0(i64 32, ptr %392) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %393) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %394) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef @.str.175, ptr noundef nonnull align 1 dereferenceable(1) %394)
          to label %3280 unwind label %3338

3280:                                             ; preds = %3279
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %392, ptr noundef nonnull align 8 dereferenceable(32) %393)
          to label %3281 unwind label %3342

3281:                                             ; preds = %3280
  %3282 = 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) %3278, ptr noundef nonnull align 8 dereferenceable(32) %392)
          to label %3283 unwind label %3346

3283:                                             ; preds = %3281
  %3284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3282, ptr noundef @.str.20)
          to label %3285 unwind label %3346

3285:                                             ; preds = %3283
  call void @llvm.lifetime.start.p0(i64 32, ptr %395) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %396) #7
  %3286 = load ptr, ptr %5, align 8, !tbaa !5
  %3287 = getelementptr inbounds %struct.LodePNGInfo, ptr %3286, i32 0, i32 14
  %3288 = load ptr, ptr %3287, align 8, !tbaa !35
  %3289 = getelementptr inbounds ptr, ptr %3288, i64 1
  %3290 = load ptr, ptr %3289, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %397) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %396, ptr noundef %3290, ptr noundef nonnull align 1 dereferenceable(1) %397)
          to label %3291 unwind label %3350

3291:                                             ; preds = %3285
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %395, ptr noundef nonnull align 8 dereferenceable(32) %396)
          to label %3292 unwind label %3354

3292:                                             ; preds = %3291
  %3293 = 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) %3284, ptr noundef nonnull align 8 dereferenceable(32) %395)
          to label %3294 unwind label %3358

3294:                                             ; preds = %3292
  %3295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3293, ptr noundef @.str.21)
          to label %3296 unwind label %3358

3296:                                             ; preds = %3294
  %3297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3295, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3298 unwind label %3358

3298:                                             ; preds = %3296
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %397) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %396) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %395) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %392) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %394) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %393) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %392) #7
  invoke void @_Z4failv()
          to label %3299 unwind label %1808

3299:                                             ; preds = %3298
  br label %3367

3300:                                             ; preds = %3261
  %3301 = landingpad { ptr, i32 }
          cleanup
  %3302 = extractvalue { ptr, i32 } %3301, 0
  store ptr %3302, ptr %2, align 8
  %3303 = extractvalue { ptr, i32 } %3301, 1
  store i32 %3303, ptr %3, align 4
  br label %3308

3304:                                             ; preds = %3262
  %3305 = landingpad { ptr, i32 }
          cleanup
  %3306 = extractvalue { ptr, i32 } %3305, 0
  store ptr %3306, ptr %2, align 8
  %3307 = extractvalue { ptr, i32 } %3305, 1
  store i32 %3307, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %385) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %385) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %384) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #7
  br label %3308

3308:                                             ; preds = %3304, %3300
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %383) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %383) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %382) #7
  br label %3541

3309:                                             ; preds = %3270
  %3310 = landingpad { ptr, i32 }
          cleanup
  %3311 = extractvalue { ptr, i32 } %3310, 0
  store ptr %3311, ptr %2, align 8
  %3312 = extractvalue { ptr, i32 } %3310, 1
  store i32 %3312, ptr %3, align 4
  br label %3337

3313:                                             ; preds = %3271
  %3314 = landingpad { ptr, i32 }
          cleanup
  %3315 = extractvalue { ptr, i32 } %3314, 0
  store ptr %3315, ptr %2, align 8
  %3316 = extractvalue { ptr, i32 } %3314, 1
  store i32 %3316, ptr %3, align 4
  br label %3336

3317:                                             ; preds = %3272
  %3318 = landingpad { ptr, i32 }
          cleanup
  %3319 = extractvalue { ptr, i32 } %3318, 0
  store ptr %3319, ptr %2, align 8
  %3320 = extractvalue { ptr, i32 } %3318, 1
  store i32 %3320, ptr %3, align 4
  br label %3335

3321:                                             ; preds = %3273
  %3322 = landingpad { ptr, i32 }
          cleanup
  %3323 = extractvalue { ptr, i32 } %3322, 0
  store ptr %3323, ptr %2, align 8
  %3324 = extractvalue { ptr, i32 } %3322, 1
  store i32 %3324, ptr %3, align 4
  br label %3334

3325:                                             ; preds = %3274
  %3326 = landingpad { ptr, i32 }
          cleanup
  %3327 = extractvalue { ptr, i32 } %3326, 0
  store ptr %3327, ptr %2, align 8
  %3328 = extractvalue { ptr, i32 } %3326, 1
  store i32 %3328, ptr %3, align 4
  br label %3333

3329:                                             ; preds = %3275
  %3330 = landingpad { ptr, i32 }
          cleanup
  %3331 = extractvalue { ptr, i32 } %3330, 0
  store ptr %3331, ptr %2, align 8
  %3332 = extractvalue { ptr, i32 } %3330, 1
  store i32 %3332, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #7
  br label %3333

3333:                                             ; preds = %3329, %3325
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #7
  br label %3334

3334:                                             ; preds = %3333, %3321
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #7
  br label %3335

3335:                                             ; preds = %3334, %3317
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #7
  br label %3336

3336:                                             ; preds = %3335, %3313
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #7
  br label %3337

3337:                                             ; preds = %3336, %3309
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %391) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %390) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %389) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %388) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %386) #7
  br label %3541

3338:                                             ; preds = %3279
  %3339 = landingpad { ptr, i32 }
          cleanup
  %3340 = extractvalue { ptr, i32 } %3339, 0
  store ptr %3340, ptr %2, align 8
  %3341 = extractvalue { ptr, i32 } %3339, 1
  store i32 %3341, ptr %3, align 4
  br label %3366

3342:                                             ; preds = %3280
  %3343 = landingpad { ptr, i32 }
          cleanup
  %3344 = extractvalue { ptr, i32 } %3343, 0
  store ptr %3344, ptr %2, align 8
  %3345 = extractvalue { ptr, i32 } %3343, 1
  store i32 %3345, ptr %3, align 4
  br label %3365

3346:                                             ; preds = %3283, %3281
  %3347 = landingpad { ptr, i32 }
          cleanup
  %3348 = extractvalue { ptr, i32 } %3347, 0
  store ptr %3348, ptr %2, align 8
  %3349 = extractvalue { ptr, i32 } %3347, 1
  store i32 %3349, ptr %3, align 4
  br label %3364

3350:                                             ; preds = %3285
  %3351 = landingpad { ptr, i32 }
          cleanup
  %3352 = extractvalue { ptr, i32 } %3351, 0
  store ptr %3352, ptr %2, align 8
  %3353 = extractvalue { ptr, i32 } %3351, 1
  store i32 %3353, ptr %3, align 4
  br label %3363

3354:                                             ; preds = %3291
  %3355 = landingpad { ptr, i32 }
          cleanup
  %3356 = extractvalue { ptr, i32 } %3355, 0
  store ptr %3356, ptr %2, align 8
  %3357 = extractvalue { ptr, i32 } %3355, 1
  store i32 %3357, ptr %3, align 4
  br label %3362

3358:                                             ; preds = %3296, %3294, %3292
  %3359 = landingpad { ptr, i32 }
          cleanup
  %3360 = extractvalue { ptr, i32 } %3359, 0
  store ptr %3360, ptr %2, align 8
  %3361 = extractvalue { ptr, i32 } %3359, 1
  store i32 %3361, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #7
  br label %3362

3362:                                             ; preds = %3358, %3354
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #7
  br label %3363

3363:                                             ; preds = %3362, %3350
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %397) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %396) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %395) #7
  br label %3364

3364:                                             ; preds = %3363, %3346
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %392) #7
  br label %3365

3365:                                             ; preds = %3364, %3342
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #7
  br label %3366

3366:                                             ; preds = %3365, %3338
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %394) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %394) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %393) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %392) #7
  br label %3541

3367:                                             ; preds = %3299, %3268
  call void @llvm.lifetime.start.p0(i64 32, ptr %398) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %399) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %398, ptr noundef @.str.176, ptr noundef nonnull align 1 dereferenceable(1) %399)
          to label %3368 unwind label %3406

3368:                                             ; preds = %3367
  call void @llvm.lifetime.start.p0(i64 32, ptr %400) #7
  %3369 = load ptr, ptr %5, align 8, !tbaa !5
  %3370 = getelementptr inbounds %struct.LodePNGInfo, ptr %3369, i32 0, i32 15
  %3371 = load ptr, ptr %3370, align 8, !tbaa !36
  %3372 = getelementptr inbounds ptr, ptr %3371, i64 1
  %3373 = load ptr, ptr %3372, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %401) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %401) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %400, ptr noundef %3373, ptr noundef nonnull align 1 dereferenceable(1) %401)
          to label %3374 unwind label %3410

3374:                                             ; preds = %3368
  %3375 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %398, ptr noundef nonnull align 8 dereferenceable(32) %400) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %400) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %401) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %401) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %400) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %398) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %399) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %398) #7
  br i1 %3375, label %3376, label %3473

3376:                                             ; preds = %3374
  call void @llvm.lifetime.start.p0(i64 32, ptr %402) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %403) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %404) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %405) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %406) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %407) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %406, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %407)
          to label %3377 unwind label %3415

3377:                                             ; preds = %3376
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %405, ptr noundef nonnull align 8 dereferenceable(32) %406, ptr noundef @.str.253)
          to label %3378 unwind label %3419

3378:                                             ; preds = %3377
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %404, ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef @.str.3)
          to label %3379 unwind label %3423

3379:                                             ; preds = %3378
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %403, ptr noundef nonnull align 8 dereferenceable(32) %404, ptr noundef @.str.254)
          to label %3380 unwind label %3427

3380:                                             ; preds = %3379
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %402, ptr noundef nonnull align 8 dereferenceable(32) %403, ptr noundef @.str.18)
          to label %3381 unwind label %3431

3381:                                             ; preds = %3380
  %3382 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %402)
          to label %3383 unwind label %3435

3383:                                             ; preds = %3381
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %402) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %403) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %406) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %407) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %406) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %405) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %404) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %403) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %402) #7
  %3384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %3385 unwind label %1808

3385:                                             ; preds = %3383
  call void @llvm.lifetime.start.p0(i64 32, ptr %408) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %409) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %410) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %410) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef @.str.176, ptr noundef nonnull align 1 dereferenceable(1) %410)
          to label %3386 unwind label %3444

3386:                                             ; preds = %3385
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %408, ptr noundef nonnull align 8 dereferenceable(32) %409)
          to label %3387 unwind label %3448

3387:                                             ; preds = %3386
  %3388 = 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) %3384, ptr noundef nonnull align 8 dereferenceable(32) %408)
          to label %3389 unwind label %3452

3389:                                             ; preds = %3387
  %3390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3388, ptr noundef @.str.20)
          to label %3391 unwind label %3452

3391:                                             ; preds = %3389
  call void @llvm.lifetime.start.p0(i64 32, ptr %411) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %412) #7
  %3392 = load ptr, ptr %5, align 8, !tbaa !5
  %3393 = getelementptr inbounds %struct.LodePNGInfo, ptr %3392, i32 0, i32 15
  %3394 = load ptr, ptr %3393, align 8, !tbaa !36
  %3395 = getelementptr inbounds ptr, ptr %3394, i64 1
  %3396 = load ptr, ptr %3395, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %413) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef %3396, ptr noundef nonnull align 1 dereferenceable(1) %413)
          to label %3397 unwind label %3456

3397:                                             ; preds = %3391
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %411, ptr noundef nonnull align 8 dereferenceable(32) %412)
          to label %3398 unwind label %3460

3398:                                             ; preds = %3397
  %3399 = 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) %3390, ptr noundef nonnull align 8 dereferenceable(32) %411)
          to label %3400 unwind label %3464

3400:                                             ; preds = %3398
  %3401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3399, ptr noundef @.str.21)
          to label %3402 unwind label %3464

3402:                                             ; preds = %3400
  %3403 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3401, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3404 unwind label %3464

3404:                                             ; preds = %3402
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %413) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %412) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %411) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %410) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %410) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %408) #7
  invoke void @_Z4failv()
          to label %3405 unwind label %1808

3405:                                             ; preds = %3404
  br label %3473

3406:                                             ; preds = %3367
  %3407 = landingpad { ptr, i32 }
          cleanup
  %3408 = extractvalue { ptr, i32 } %3407, 0
  store ptr %3408, ptr %2, align 8
  %3409 = extractvalue { ptr, i32 } %3407, 1
  store i32 %3409, ptr %3, align 4
  br label %3414

3410:                                             ; preds = %3368
  %3411 = landingpad { ptr, i32 }
          cleanup
  %3412 = extractvalue { ptr, i32 } %3411, 0
  store ptr %3412, ptr %2, align 8
  %3413 = extractvalue { ptr, i32 } %3411, 1
  store i32 %3413, ptr %3, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %401) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %401) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %400) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %398) #7
  br label %3414

3414:                                             ; preds = %3410, %3406
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %399) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %399) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %398) #7
  br label %3541

3415:                                             ; preds = %3376
  %3416 = landingpad { ptr, i32 }
          cleanup
  %3417 = extractvalue { ptr, i32 } %3416, 0
  store ptr %3417, ptr %2, align 8
  %3418 = extractvalue { ptr, i32 } %3416, 1
  store i32 %3418, ptr %3, align 4
  br label %3443

3419:                                             ; preds = %3377
  %3420 = landingpad { ptr, i32 }
          cleanup
  %3421 = extractvalue { ptr, i32 } %3420, 0
  store ptr %3421, ptr %2, align 8
  %3422 = extractvalue { ptr, i32 } %3420, 1
  store i32 %3422, ptr %3, align 4
  br label %3442

3423:                                             ; preds = %3378
  %3424 = landingpad { ptr, i32 }
          cleanup
  %3425 = extractvalue { ptr, i32 } %3424, 0
  store ptr %3425, ptr %2, align 8
  %3426 = extractvalue { ptr, i32 } %3424, 1
  store i32 %3426, ptr %3, align 4
  br label %3441

3427:                                             ; preds = %3379
  %3428 = landingpad { ptr, i32 }
          cleanup
  %3429 = extractvalue { ptr, i32 } %3428, 0
  store ptr %3429, ptr %2, align 8
  %3430 = extractvalue { ptr, i32 } %3428, 1
  store i32 %3430, ptr %3, align 4
  br label %3440

3431:                                             ; preds = %3380
  %3432 = landingpad { ptr, i32 }
          cleanup
  %3433 = extractvalue { ptr, i32 } %3432, 0
  store ptr %3433, ptr %2, align 8
  %3434 = extractvalue { ptr, i32 } %3432, 1
  store i32 %3434, ptr %3, align 4
  br label %3439

3435:                                             ; preds = %3381
  %3436 = landingpad { ptr, i32 }
          cleanup
  %3437 = extractvalue { ptr, i32 } %3436, 0
  store ptr %3437, ptr %2, align 8
  %3438 = extractvalue { ptr, i32 } %3436, 1
  store i32 %3438, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %402) #7
  br label %3439

3439:                                             ; preds = %3435, %3431
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %403) #7
  br label %3440

3440:                                             ; preds = %3439, %3427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %404) #7
  br label %3441

3441:                                             ; preds = %3440, %3423
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #7
  br label %3442

3442:                                             ; preds = %3441, %3419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %406) #7
  br label %3443

3443:                                             ; preds = %3442, %3415
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %407) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %407) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %406) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %405) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %404) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %403) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %402) #7
  br label %3541

3444:                                             ; preds = %3385
  %3445 = landingpad { ptr, i32 }
          cleanup
  %3446 = extractvalue { ptr, i32 } %3445, 0
  store ptr %3446, ptr %2, align 8
  %3447 = extractvalue { ptr, i32 } %3445, 1
  store i32 %3447, ptr %3, align 4
  br label %3472

3448:                                             ; preds = %3386
  %3449 = landingpad { ptr, i32 }
          cleanup
  %3450 = extractvalue { ptr, i32 } %3449, 0
  store ptr %3450, ptr %2, align 8
  %3451 = extractvalue { ptr, i32 } %3449, 1
  store i32 %3451, ptr %3, align 4
  br label %3471

3452:                                             ; preds = %3389, %3387
  %3453 = landingpad { ptr, i32 }
          cleanup
  %3454 = extractvalue { ptr, i32 } %3453, 0
  store ptr %3454, ptr %2, align 8
  %3455 = extractvalue { ptr, i32 } %3453, 1
  store i32 %3455, ptr %3, align 4
  br label %3470

3456:                                             ; preds = %3391
  %3457 = landingpad { ptr, i32 }
          cleanup
  %3458 = extractvalue { ptr, i32 } %3457, 0
  store ptr %3458, ptr %2, align 8
  %3459 = extractvalue { ptr, i32 } %3457, 1
  store i32 %3459, ptr %3, align 4
  br label %3469

3460:                                             ; preds = %3397
  %3461 = landingpad { ptr, i32 }
          cleanup
  %3462 = extractvalue { ptr, i32 } %3461, 0
  store ptr %3462, ptr %2, align 8
  %3463 = extractvalue { ptr, i32 } %3461, 1
  store i32 %3463, ptr %3, align 4
  br label %3468

3464:                                             ; preds = %3402, %3400, %3398
  %3465 = landingpad { ptr, i32 }
          cleanup
  %3466 = extractvalue { ptr, i32 } %3465, 0
  store ptr %3466, ptr %2, align 8
  %3467 = extractvalue { ptr, i32 } %3465, 1
  store i32 %3467, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #7
  br label %3468

3468:                                             ; preds = %3464, %3460
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #7
  br label %3469

3469:                                             ; preds = %3468, %3456
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %413) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %413) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %412) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %411) #7
  br label %3470

3470:                                             ; preds = %3469, %3452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #7
  br label %3471

3471:                                             ; preds = %3470, %3448
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #7
  br label %3472

3472:                                             ; preds = %3471, %3444
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %410) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %410) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %408) #7
  br label %3541

3473:                                             ; preds = %3405, %3374
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508) %4) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %4) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr %414) #7
  invoke void @_ZN7lodepng5StateC1Ev(ptr noundef nonnull align 8 dereferenceable(508) %414)
          to label %3474 unwind label %3546

3474:                                             ; preds = %3473
  %3475 = getelementptr inbounds %struct.LodePNGState, ptr %414, i32 0, i32 1
  %3476 = getelementptr inbounds %struct.LodePNGDecoderSettings, ptr %3475, i32 0, i32 5
  store i32 0, ptr %3476, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 4, ptr %415) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %416) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %417) #7
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %417) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %418) #7
  %3477 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 0) #7
  %3478 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %3479 = invoke noundef i32 @_ZN7lodepng6decodeERSt6vectorIhSaIhEERjS4_RNS_5StateEPKhm(ptr noundef nonnull align 8 dereferenceable(24) %417, ptr noundef nonnull align 4 dereferenceable(4) %415, ptr noundef nonnull align 4 dereferenceable(4) %416, ptr noundef nonnull align 8 dereferenceable(508) %414, ptr noundef %3477, i64 noundef %3478)
          to label %3480 unwind label %3550

3480:                                             ; preds = %3474
  store i32 %3479, ptr %418, align 4, !tbaa !9
  %3481 = load i32, ptr %418, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %419) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %420) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %421) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %422) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %422) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %421, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %422)
          to label %3482 unwind label %3554

3482:                                             ; preds = %3480
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %420, ptr noundef nonnull align 8 dereferenceable(32) %421, ptr noundef @.str.255)
          to label %3483 unwind label %3558

3483:                                             ; preds = %3482
  call void @llvm.lifetime.start.p0(i64 32, ptr %423) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %424) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %425) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %425) #7
  store i1 false, ptr %427, align 1
  store i1 false, ptr %428, align 1
  store i1 false, ptr %430, align 1
  store i1 false, ptr %432, align 1
  store i1 false, ptr %433, align 1
  store i1 false, ptr %434, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %424, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %425)
          to label %3484 unwind label %3562

3484:                                             ; preds = %3483
  %3485 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %424) #7
  br i1 %3485, label %3486, label %3488

3486:                                             ; preds = %3484
  call void @llvm.lifetime.start.p0(i64 1, ptr %426) #7
  store i1 true, ptr %427, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #7
  store i1 true, ptr %428, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %423, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %426)
          to label %3487 unwind label %3566

3487:                                             ; preds = %3486
  br label %3491

3488:                                             ; preds = %3484
  call void @llvm.lifetime.start.p0(i64 32, ptr %429) #7
  store i1 true, ptr %430, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %431) #7
  store i1 true, ptr %432, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %431) #7
  store i1 true, ptr %433, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %431)
          to label %3489 unwind label %3570

3489:                                             ; preds = %3488
  store i1 true, ptr %434, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %423, ptr noundef @.str.3, ptr noundef nonnull align 8 dereferenceable(32) %429)
          to label %3490 unwind label %3574

3490:                                             ; preds = %3489
  br label %3491

3491:                                             ; preds = %3490, %3487
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %419, ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef nonnull align 8 dereferenceable(32) %423)
          to label %3492 unwind label %3578

3492:                                             ; preds = %3491
  invoke void @_Z16assertNoPNGErrorjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %3481, ptr noundef nonnull align 8 dereferenceable(32) %419)
          to label %3493 unwind label %3582

3493:                                             ; preds = %3492
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %419) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %423) #7
  %3494 = load i1, ptr %434, align 1
  br i1 %3494, label %3495, label %3496

3495:                                             ; preds = %3493
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #7
  br label %3496

3496:                                             ; preds = %3495, %3493
  %3497 = load i1, ptr %433, align 1
  br i1 %3497, label %3498, label %3499

3498:                                             ; preds = %3496
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %431) #7
  br label %3499

3499:                                             ; preds = %3498, %3496
  %3500 = load i1, ptr %432, align 1
  br i1 %3500, label %3501, label %3502

3501:                                             ; preds = %3499
  call void @llvm.lifetime.end.p0(i64 1, ptr %431) #7
  br label %3502

3502:                                             ; preds = %3501, %3499
  %3503 = load i1, ptr %430, align 1
  br i1 %3503, label %3504, label %3505

3504:                                             ; preds = %3502
  call void @llvm.lifetime.end.p0(i64 32, ptr %429) #7
  br label %3505

3505:                                             ; preds = %3504, %3502
  %3506 = load i1, ptr %428, align 1
  br i1 %3506, label %3507, label %3508

3507:                                             ; preds = %3505
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #7
  br label %3508

3508:                                             ; preds = %3507, %3505
  %3509 = load i1, ptr %427, align 1
  br i1 %3509, label %3510, label %3511

3510:                                             ; preds = %3508
  call void @llvm.lifetime.end.p0(i64 1, ptr %426) #7
  br label %3511

3511:                                             ; preds = %3510, %3508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %425) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %425) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %424) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %423) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %422) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %422) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %421) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %420) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %419) #7
  %3512 = getelementptr inbounds %struct.LodePNGState, ptr %414, i32 0, i32 4
  %3513 = getelementptr inbounds %struct.LodePNGInfo, ptr %3512, i32 0, i32 8
  %3514 = load i64, ptr %3513, align 8, !tbaa !44
  %3515 = icmp ne i64 0, %3514
  br i1 %3515, label %3516, label %3659

3516:                                             ; preds = %3511
  call void @llvm.lifetime.start.p0(i64 32, ptr %435) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %436) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %437) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %438) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %439) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %440) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %440)
          to label %3517 unwind label %3611

3517:                                             ; preds = %3516
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %438, ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef @.str.256)
          to label %3518 unwind label %3615

3518:                                             ; preds = %3517
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %437, ptr noundef nonnull align 8 dereferenceable(32) %438, ptr noundef @.str.3)
          to label %3519 unwind label %3619

3519:                                             ; preds = %3518
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %436, ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef @.str.257)
          to label %3520 unwind label %3623

3520:                                             ; preds = %3519
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %435, ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef @.str.18)
          to label %3521 unwind label %3627

3521:                                             ; preds = %3520
  %3522 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %435)
          to label %3523 unwind label %3631

3523:                                             ; preds = %3521
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %435) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %440) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %439) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %438) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %437) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %435) #7
  %3524 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %3525 unwind label %3550

3525:                                             ; preds = %3523
  call void @llvm.lifetime.start.p0(i64 32, ptr %441) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %442) #7
  store i32 0, ptr %442, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %441, ptr noundef nonnull align 4 dereferenceable(4) %442)
          to label %3526 unwind label %3640

3526:                                             ; preds = %3525
  %3527 = 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) %3524, ptr noundef nonnull align 8 dereferenceable(32) %441)
          to label %3528 unwind label %3644

3528:                                             ; preds = %3526
  %3529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3527, ptr noundef @.str.20)
          to label %3530 unwind label %3644

3530:                                             ; preds = %3528
  call void @llvm.lifetime.start.p0(i64 32, ptr %443) #7
  %3531 = getelementptr inbounds %struct.LodePNGState, ptr %414, i32 0, i32 4
  %3532 = getelementptr inbounds %struct.LodePNGInfo, ptr %3531, i32 0, i32 8
  invoke void @_Z8valtostrImENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %443, ptr noundef nonnull align 8 dereferenceable(8) %3532)
          to label %3533 unwind label %3648

3533:                                             ; preds = %3530
  %3534 = 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) %3529, ptr noundef nonnull align 8 dereferenceable(32) %443)
          to label %3535 unwind label %3652

3535:                                             ; preds = %3533
  %3536 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3534, ptr noundef @.str.21)
          to label %3537 unwind label %3652

3537:                                             ; preds = %3535
  %3538 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3536, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3539 unwind label %3652

3539:                                             ; preds = %3537
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %443) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %443) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %441) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %442) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %441) #7
  invoke void @_Z4failv()
          to label %3540 unwind label %3550

3540:                                             ; preds = %3539
  br label %3659

3541:                                             ; preds = %3472, %3443, %3414, %3366, %3337, %3308, %3260, %3231, %3202, %3154, %3125, %3096, %3048, %3019, %2990, %2942, %2913, %2884, %2836, %2807, %2778, %2730, %2701, %2672, %2624, %2605, %2546, %2517, %2488, %2438, %2409, %2380, %2332, %2303, %2274, %2226, %2197, %2168, %2120, %2091, %2062, %2014, %1985, %1956, %1908, %1889, %1830, %1808, %1807
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #7
  br label %3542

3542:                                             ; preds = %3541, %1775
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #7
  br label %3543

3543:                                             ; preds = %3542, %1771
  call void @llvm.lifetime.end.p0(i64 32, ptr %161) #7
  br label %3544

3544:                                             ; preds = %3543, %1743, %1724, %1665, %1646, %1587, %1568, %1509, %1490, %1431, %1412, %1351, %1332, %1271, %1252, %1191, %1172, %1111, %1092, %1031, %1012, %951, %932, %873, %854, %795, %776, %717, %698, %643, %624, %595, %535
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  call void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508) %4) #7
  br label %3545

3545:                                             ; preds = %3544, %531
  call void @llvm.lifetime.end.p0(i64 512, ptr %4) #7
  br label %3820

3546:                                             ; preds = %3473
  %3547 = landingpad { ptr, i32 }
          cleanup
  %3548 = extractvalue { ptr, i32 } %3547, 0
  store ptr %3548, ptr %2, align 8
  %3549 = extractvalue { ptr, i32 } %3547, 1
  store i32 %3549, ptr %3, align 4
  br label %3819

3550:                                             ; preds = %3767, %3750, %3687, %3671, %3539, %3523, %3474
  %3551 = landingpad { ptr, i32 }
          cleanup
  %3552 = extractvalue { ptr, i32 } %3551, 0
  store ptr %3552, ptr %2, align 8
  %3553 = extractvalue { ptr, i32 } %3551, 1
  store i32 %3553, ptr %3, align 4
  br label %3818

3554:                                             ; preds = %3480
  %3555 = landingpad { ptr, i32 }
          cleanup
  %3556 = extractvalue { ptr, i32 } %3555, 0
  store ptr %3556, ptr %2, align 8
  %3557 = extractvalue { ptr, i32 } %3555, 1
  store i32 %3557, ptr %3, align 4
  br label %3610

3558:                                             ; preds = %3482
  %3559 = landingpad { ptr, i32 }
          cleanup
  %3560 = extractvalue { ptr, i32 } %3559, 0
  store ptr %3560, ptr %2, align 8
  %3561 = extractvalue { ptr, i32 } %3559, 1
  store i32 %3561, ptr %3, align 4
  br label %3609

3562:                                             ; preds = %3483
  %3563 = landingpad { ptr, i32 }
          cleanup
  %3564 = extractvalue { ptr, i32 } %3563, 0
  store ptr %3564, ptr %2, align 8
  %3565 = extractvalue { ptr, i32 } %3563, 1
  store i32 %3565, ptr %3, align 4
  br label %3608

3566:                                             ; preds = %3486
  %3567 = landingpad { ptr, i32 }
          cleanup
  %3568 = extractvalue { ptr, i32 } %3567, 0
  store ptr %3568, ptr %2, align 8
  %3569 = extractvalue { ptr, i32 } %3567, 1
  store i32 %3569, ptr %3, align 4
  br label %3601

3570:                                             ; preds = %3488
  %3571 = landingpad { ptr, i32 }
          cleanup
  %3572 = extractvalue { ptr, i32 } %3571, 0
  store ptr %3572, ptr %2, align 8
  %3573 = extractvalue { ptr, i32 } %3571, 1
  store i32 %3573, ptr %3, align 4
  br label %3591

3574:                                             ; preds = %3489
  %3575 = landingpad { ptr, i32 }
          cleanup
  %3576 = extractvalue { ptr, i32 } %3575, 0
  store ptr %3576, ptr %2, align 8
  %3577 = extractvalue { ptr, i32 } %3575, 1
  store i32 %3577, ptr %3, align 4
  br label %3587

3578:                                             ; preds = %3491
  %3579 = landingpad { ptr, i32 }
          cleanup
  %3580 = extractvalue { ptr, i32 } %3579, 0
  store ptr %3580, ptr %2, align 8
  %3581 = extractvalue { ptr, i32 } %3579, 1
  store i32 %3581, ptr %3, align 4
  br label %3586

3582:                                             ; preds = %3492
  %3583 = landingpad { ptr, i32 }
          cleanup
  %3584 = extractvalue { ptr, i32 } %3583, 0
  store ptr %3584, ptr %2, align 8
  %3585 = extractvalue { ptr, i32 } %3583, 1
  store i32 %3585, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %419) #7
  br label %3586

3586:                                             ; preds = %3582, %3578
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %423) #7
  br label %3587

3587:                                             ; preds = %3586, %3574
  %3588 = load i1, ptr %434, align 1
  br i1 %3588, label %3589, label %3590

3589:                                             ; preds = %3587
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #7
  br label %3590

3590:                                             ; preds = %3589, %3587
  br label %3591

3591:                                             ; preds = %3590, %3570
  %3592 = load i1, ptr %433, align 1
  br i1 %3592, label %3593, label %3594

3593:                                             ; preds = %3591
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %431) #7
  br label %3594

3594:                                             ; preds = %3593, %3591
  %3595 = load i1, ptr %432, align 1
  br i1 %3595, label %3596, label %3597

3596:                                             ; preds = %3594
  call void @llvm.lifetime.end.p0(i64 1, ptr %431) #7
  br label %3597

3597:                                             ; preds = %3596, %3594
  %3598 = load i1, ptr %430, align 1
  br i1 %3598, label %3599, label %3600

3599:                                             ; preds = %3597
  call void @llvm.lifetime.end.p0(i64 32, ptr %429) #7
  br label %3600

3600:                                             ; preds = %3599, %3597
  br label %3601

3601:                                             ; preds = %3600, %3566
  %3602 = load i1, ptr %428, align 1
  br i1 %3602, label %3603, label %3604

3603:                                             ; preds = %3601
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %426) #7
  br label %3604

3604:                                             ; preds = %3603, %3601
  %3605 = load i1, ptr %427, align 1
  br i1 %3605, label %3606, label %3607

3606:                                             ; preds = %3604
  call void @llvm.lifetime.end.p0(i64 1, ptr %426) #7
  br label %3607

3607:                                             ; preds = %3606, %3604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #7
  br label %3608

3608:                                             ; preds = %3607, %3562
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %425) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %425) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %424) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %423) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #7
  br label %3609

3609:                                             ; preds = %3608, %3558
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #7
  br label %3610

3610:                                             ; preds = %3609, %3554
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %422) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %422) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %421) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %420) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %419) #7
  br label %3818

3611:                                             ; preds = %3516
  %3612 = landingpad { ptr, i32 }
          cleanup
  %3613 = extractvalue { ptr, i32 } %3612, 0
  store ptr %3613, ptr %2, align 8
  %3614 = extractvalue { ptr, i32 } %3612, 1
  store i32 %3614, ptr %3, align 4
  br label %3639

3615:                                             ; preds = %3517
  %3616 = landingpad { ptr, i32 }
          cleanup
  %3617 = extractvalue { ptr, i32 } %3616, 0
  store ptr %3617, ptr %2, align 8
  %3618 = extractvalue { ptr, i32 } %3616, 1
  store i32 %3618, ptr %3, align 4
  br label %3638

3619:                                             ; preds = %3518
  %3620 = landingpad { ptr, i32 }
          cleanup
  %3621 = extractvalue { ptr, i32 } %3620, 0
  store ptr %3621, ptr %2, align 8
  %3622 = extractvalue { ptr, i32 } %3620, 1
  store i32 %3622, ptr %3, align 4
  br label %3637

3623:                                             ; preds = %3519
  %3624 = landingpad { ptr, i32 }
          cleanup
  %3625 = extractvalue { ptr, i32 } %3624, 0
  store ptr %3625, ptr %2, align 8
  %3626 = extractvalue { ptr, i32 } %3624, 1
  store i32 %3626, ptr %3, align 4
  br label %3636

3627:                                             ; preds = %3520
  %3628 = landingpad { ptr, i32 }
          cleanup
  %3629 = extractvalue { ptr, i32 } %3628, 0
  store ptr %3629, ptr %2, align 8
  %3630 = extractvalue { ptr, i32 } %3628, 1
  store i32 %3630, ptr %3, align 4
  br label %3635

3631:                                             ; preds = %3521
  %3632 = landingpad { ptr, i32 }
          cleanup
  %3633 = extractvalue { ptr, i32 } %3632, 0
  store ptr %3633, ptr %2, align 8
  %3634 = extractvalue { ptr, i32 } %3632, 1
  store i32 %3634, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %435) #7
  br label %3635

3635:                                             ; preds = %3631, %3627
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #7
  br label %3636

3636:                                             ; preds = %3635, %3623
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #7
  br label %3637

3637:                                             ; preds = %3636, %3619
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #7
  br label %3638

3638:                                             ; preds = %3637, %3615
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #7
  br label %3639

3639:                                             ; preds = %3638, %3611
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %440) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %440) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %439) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %438) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %437) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %435) #7
  br label %3818

3640:                                             ; preds = %3525
  %3641 = landingpad { ptr, i32 }
          cleanup
  %3642 = extractvalue { ptr, i32 } %3641, 0
  store ptr %3642, ptr %2, align 8
  %3643 = extractvalue { ptr, i32 } %3641, 1
  store i32 %3643, ptr %3, align 4
  br label %3658

3644:                                             ; preds = %3528, %3526
  %3645 = landingpad { ptr, i32 }
          cleanup
  %3646 = extractvalue { ptr, i32 } %3645, 0
  store ptr %3646, ptr %2, align 8
  %3647 = extractvalue { ptr, i32 } %3645, 1
  store i32 %3647, ptr %3, align 4
  br label %3657

3648:                                             ; preds = %3530
  %3649 = landingpad { ptr, i32 }
          cleanup
  %3650 = extractvalue { ptr, i32 } %3649, 0
  store ptr %3650, ptr %2, align 8
  %3651 = extractvalue { ptr, i32 } %3649, 1
  store i32 %3651, ptr %3, align 4
  br label %3656

3652:                                             ; preds = %3537, %3535, %3533
  %3653 = landingpad { ptr, i32 }
          cleanup
  %3654 = extractvalue { ptr, i32 } %3653, 0
  store ptr %3654, ptr %2, align 8
  %3655 = extractvalue { ptr, i32 } %3653, 1
  store i32 %3655, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %443) #7
  br label %3656

3656:                                             ; preds = %3652, %3648
  call void @llvm.lifetime.end.p0(i64 32, ptr %443) #7
  br label %3657

3657:                                             ; preds = %3656, %3644
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %441) #7
  br label %3658

3658:                                             ; preds = %3657, %3640
  call void @llvm.lifetime.end.p0(i64 4, ptr %442) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %441) #7
  br label %3818

3659:                                             ; preds = %3540, %3511
  %3660 = getelementptr inbounds %struct.LodePNGState, ptr %414, i32 0, i32 4
  %3661 = getelementptr inbounds %struct.LodePNGInfo, ptr %3660, i32 0, i32 11
  %3662 = load i64, ptr %3661, align 8, !tbaa !45
  %3663 = icmp ne i64 0, %3662
  br i1 %3663, label %3664, label %3737

3664:                                             ; preds = %3659
  call void @llvm.lifetime.start.p0(i64 32, ptr %444) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %445) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %446) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %447) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %448) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %449) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %449)
          to label %3665 unwind label %3689

3665:                                             ; preds = %3664
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %447, ptr noundef nonnull align 8 dereferenceable(32) %448, ptr noundef @.str.258)
          to label %3666 unwind label %3693

3666:                                             ; preds = %3665
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %446, ptr noundef nonnull align 8 dereferenceable(32) %447, ptr noundef @.str.3)
          to label %3667 unwind label %3697

3667:                                             ; preds = %3666
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %445, ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef @.str.259)
          to label %3668 unwind label %3701

3668:                                             ; preds = %3667
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %444, ptr noundef nonnull align 8 dereferenceable(32) %445, ptr noundef @.str.18)
          to label %3669 unwind label %3705

3669:                                             ; preds = %3668
  %3670 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %444)
          to label %3671 unwind label %3709

3671:                                             ; preds = %3669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %445) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %447) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %449) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %448) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %447) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %446) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %445) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %444) #7
  %3672 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %3673 unwind label %3550

3673:                                             ; preds = %3671
  call void @llvm.lifetime.start.p0(i64 32, ptr %450) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %451) #7
  store i32 0, ptr %451, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %450, ptr noundef nonnull align 4 dereferenceable(4) %451)
          to label %3674 unwind label %3718

3674:                                             ; preds = %3673
  %3675 = 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) %3672, ptr noundef nonnull align 8 dereferenceable(32) %450)
          to label %3676 unwind label %3722

3676:                                             ; preds = %3674
  %3677 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3675, ptr noundef @.str.20)
          to label %3678 unwind label %3722

3678:                                             ; preds = %3676
  call void @llvm.lifetime.start.p0(i64 32, ptr %452) #7
  %3679 = getelementptr inbounds %struct.LodePNGState, ptr %414, i32 0, i32 4
  %3680 = getelementptr inbounds %struct.LodePNGInfo, ptr %3679, i32 0, i32 11
  invoke void @_Z8valtostrImENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %452, ptr noundef nonnull align 8 dereferenceable(8) %3680)
          to label %3681 unwind label %3726

3681:                                             ; preds = %3678
  %3682 = 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) %3677, ptr noundef nonnull align 8 dereferenceable(32) %452)
          to label %3683 unwind label %3730

3683:                                             ; preds = %3681
  %3684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3682, ptr noundef @.str.21)
          to label %3685 unwind label %3730

3685:                                             ; preds = %3683
  %3686 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3684, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3687 unwind label %3730

3687:                                             ; preds = %3685
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %452) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %451) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %450) #7
  invoke void @_Z4failv()
          to label %3688 unwind label %3550

3688:                                             ; preds = %3687
  br label %3737

3689:                                             ; preds = %3664
  %3690 = landingpad { ptr, i32 }
          cleanup
  %3691 = extractvalue { ptr, i32 } %3690, 0
  store ptr %3691, ptr %2, align 8
  %3692 = extractvalue { ptr, i32 } %3690, 1
  store i32 %3692, ptr %3, align 4
  br label %3717

3693:                                             ; preds = %3665
  %3694 = landingpad { ptr, i32 }
          cleanup
  %3695 = extractvalue { ptr, i32 } %3694, 0
  store ptr %3695, ptr %2, align 8
  %3696 = extractvalue { ptr, i32 } %3694, 1
  store i32 %3696, ptr %3, align 4
  br label %3716

3697:                                             ; preds = %3666
  %3698 = landingpad { ptr, i32 }
          cleanup
  %3699 = extractvalue { ptr, i32 } %3698, 0
  store ptr %3699, ptr %2, align 8
  %3700 = extractvalue { ptr, i32 } %3698, 1
  store i32 %3700, ptr %3, align 4
  br label %3715

3701:                                             ; preds = %3667
  %3702 = landingpad { ptr, i32 }
          cleanup
  %3703 = extractvalue { ptr, i32 } %3702, 0
  store ptr %3703, ptr %2, align 8
  %3704 = extractvalue { ptr, i32 } %3702, 1
  store i32 %3704, ptr %3, align 4
  br label %3714

3705:                                             ; preds = %3668
  %3706 = landingpad { ptr, i32 }
          cleanup
  %3707 = extractvalue { ptr, i32 } %3706, 0
  store ptr %3707, ptr %2, align 8
  %3708 = extractvalue { ptr, i32 } %3706, 1
  store i32 %3708, ptr %3, align 4
  br label %3713

3709:                                             ; preds = %3669
  %3710 = landingpad { ptr, i32 }
          cleanup
  %3711 = extractvalue { ptr, i32 } %3710, 0
  store ptr %3711, ptr %2, align 8
  %3712 = extractvalue { ptr, i32 } %3710, 1
  store i32 %3712, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #7
  br label %3713

3713:                                             ; preds = %3709, %3705
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %445) #7
  br label %3714

3714:                                             ; preds = %3713, %3701
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %446) #7
  br label %3715

3715:                                             ; preds = %3714, %3697
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %447) #7
  br label %3716

3716:                                             ; preds = %3715, %3693
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %448) #7
  br label %3717

3717:                                             ; preds = %3716, %3689
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %449) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %449) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %448) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %447) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %446) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %445) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %444) #7
  br label %3818

3718:                                             ; preds = %3673
  %3719 = landingpad { ptr, i32 }
          cleanup
  %3720 = extractvalue { ptr, i32 } %3719, 0
  store ptr %3720, ptr %2, align 8
  %3721 = extractvalue { ptr, i32 } %3719, 1
  store i32 %3721, ptr %3, align 4
  br label %3736

3722:                                             ; preds = %3676, %3674
  %3723 = landingpad { ptr, i32 }
          cleanup
  %3724 = extractvalue { ptr, i32 } %3723, 0
  store ptr %3724, ptr %2, align 8
  %3725 = extractvalue { ptr, i32 } %3723, 1
  store i32 %3725, ptr %3, align 4
  br label %3735

3726:                                             ; preds = %3678
  %3727 = landingpad { ptr, i32 }
          cleanup
  %3728 = extractvalue { ptr, i32 } %3727, 0
  store ptr %3728, ptr %2, align 8
  %3729 = extractvalue { ptr, i32 } %3727, 1
  store i32 %3729, ptr %3, align 4
  br label %3734

3730:                                             ; preds = %3685, %3683, %3681
  %3731 = landingpad { ptr, i32 }
          cleanup
  %3732 = extractvalue { ptr, i32 } %3731, 0
  store ptr %3732, ptr %2, align 8
  %3733 = extractvalue { ptr, i32 } %3731, 1
  store i32 %3733, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %452) #7
  br label %3734

3734:                                             ; preds = %3730, %3726
  call void @llvm.lifetime.end.p0(i64 32, ptr %452) #7
  br label %3735

3735:                                             ; preds = %3734, %3722
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #7
  br label %3736

3736:                                             ; preds = %3735, %3718
  call void @llvm.lifetime.end.p0(i64 4, ptr %451) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %450) #7
  br label %3818

3737:                                             ; preds = %3688, %3659
  %3738 = getelementptr inbounds %struct.LodePNGState, ptr %414, i32 0, i32 4
  %3739 = getelementptr inbounds %struct.LodePNGInfo, ptr %3738, i32 0, i32 17
  %3740 = getelementptr inbounds %struct.LodePNGTime, ptr %3739, i32 0, i32 0
  %3741 = load i32, ptr %3740, align 4, !tbaa !46
  %3742 = icmp ne i32 2012, %3741
  br i1 %3742, label %3743, label %3817

3743:                                             ; preds = %3737
  call void @llvm.lifetime.start.p0(i64 32, ptr %453) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %454) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %455) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %456) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %457) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %458) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %457, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %458)
          to label %3744 unwind label %3769

3744:                                             ; preds = %3743
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %456, ptr noundef nonnull align 8 dereferenceable(32) %457, ptr noundef @.str.260)
          to label %3745 unwind label %3773

3745:                                             ; preds = %3744
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %455, ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef @.str.3)
          to label %3746 unwind label %3777

3746:                                             ; preds = %3745
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %454, ptr noundef nonnull align 8 dereferenceable(32) %455, ptr noundef @.str.261)
          to label %3747 unwind label %3781

3747:                                             ; preds = %3746
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %453, ptr noundef nonnull align 8 dereferenceable(32) %454, ptr noundef @.str.18)
          to label %3748 unwind label %3785

3748:                                             ; preds = %3747
  %3749 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %453)
          to label %3750 unwind label %3789

3750:                                             ; preds = %3748
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %455) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %456) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %457) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %458) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %457) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %456) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %455) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %454) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %453) #7
  %3751 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
          to label %3752 unwind label %3550

3752:                                             ; preds = %3750
  call void @llvm.lifetime.start.p0(i64 32, ptr %459) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %460) #7
  store i32 2012, ptr %460, align 4, !tbaa !9
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %459, ptr noundef nonnull align 4 dereferenceable(4) %460)
          to label %3753 unwind label %3798

3753:                                             ; preds = %3752
  %3754 = 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) %3751, ptr noundef nonnull align 8 dereferenceable(32) %459)
          to label %3755 unwind label %3802

3755:                                             ; preds = %3753
  %3756 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3754, ptr noundef @.str.20)
          to label %3757 unwind label %3802

3757:                                             ; preds = %3755
  call void @llvm.lifetime.start.p0(i64 32, ptr %461) #7
  %3758 = getelementptr inbounds %struct.LodePNGState, ptr %414, i32 0, i32 4
  %3759 = getelementptr inbounds %struct.LodePNGInfo, ptr %3758, i32 0, i32 17
  %3760 = getelementptr inbounds %struct.LodePNGTime, ptr %3759, i32 0, i32 0
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %461, ptr noundef nonnull align 4 dereferenceable(4) %3760)
          to label %3761 unwind label %3806

3761:                                             ; preds = %3757
  %3762 = 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) %3756, ptr noundef nonnull align 8 dereferenceable(32) %461)
          to label %3763 unwind label %3810

3763:                                             ; preds = %3761
  %3764 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3762, ptr noundef @.str.21)
          to label %3765 unwind label %3810

3765:                                             ; preds = %3763
  %3766 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3764, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3767 unwind label %3810

3767:                                             ; preds = %3765
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %461) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %461) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %459) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %460) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %459) #7
  invoke void @_Z4failv()
          to label %3768 unwind label %3550

3768:                                             ; preds = %3767
  br label %3817

3769:                                             ; preds = %3743
  %3770 = landingpad { ptr, i32 }
          cleanup
  %3771 = extractvalue { ptr, i32 } %3770, 0
  store ptr %3771, ptr %2, align 8
  %3772 = extractvalue { ptr, i32 } %3770, 1
  store i32 %3772, ptr %3, align 4
  br label %3797

3773:                                             ; preds = %3744
  %3774 = landingpad { ptr, i32 }
          cleanup
  %3775 = extractvalue { ptr, i32 } %3774, 0
  store ptr %3775, ptr %2, align 8
  %3776 = extractvalue { ptr, i32 } %3774, 1
  store i32 %3776, ptr %3, align 4
  br label %3796

3777:                                             ; preds = %3745
  %3778 = landingpad { ptr, i32 }
          cleanup
  %3779 = extractvalue { ptr, i32 } %3778, 0
  store ptr %3779, ptr %2, align 8
  %3780 = extractvalue { ptr, i32 } %3778, 1
  store i32 %3780, ptr %3, align 4
  br label %3795

3781:                                             ; preds = %3746
  %3782 = landingpad { ptr, i32 }
          cleanup
  %3783 = extractvalue { ptr, i32 } %3782, 0
  store ptr %3783, ptr %2, align 8
  %3784 = extractvalue { ptr, i32 } %3782, 1
  store i32 %3784, ptr %3, align 4
  br label %3794

3785:                                             ; preds = %3747
  %3786 = landingpad { ptr, i32 }
          cleanup
  %3787 = extractvalue { ptr, i32 } %3786, 0
  store ptr %3787, ptr %2, align 8
  %3788 = extractvalue { ptr, i32 } %3786, 1
  store i32 %3788, ptr %3, align 4
  br label %3793

3789:                                             ; preds = %3748
  %3790 = landingpad { ptr, i32 }
          cleanup
  %3791 = extractvalue { ptr, i32 } %3790, 0
  store ptr %3791, ptr %2, align 8
  %3792 = extractvalue { ptr, i32 } %3790, 1
  store i32 %3792, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %453) #7
  br label %3793

3793:                                             ; preds = %3789, %3785
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %454) #7
  br label %3794

3794:                                             ; preds = %3793, %3781
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %455) #7
  br label %3795

3795:                                             ; preds = %3794, %3777
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %456) #7
  br label %3796

3796:                                             ; preds = %3795, %3773
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %457) #7
  br label %3797

3797:                                             ; preds = %3796, %3769
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %458) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %457) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %456) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %455) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %454) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %453) #7
  br label %3818

3798:                                             ; preds = %3752
  %3799 = landingpad { ptr, i32 }
          cleanup
  %3800 = extractvalue { ptr, i32 } %3799, 0
  store ptr %3800, ptr %2, align 8
  %3801 = extractvalue { ptr, i32 } %3799, 1
  store i32 %3801, ptr %3, align 4
  br label %3816

3802:                                             ; preds = %3755, %3753
  %3803 = landingpad { ptr, i32 }
          cleanup
  %3804 = extractvalue { ptr, i32 } %3803, 0
  store ptr %3804, ptr %2, align 8
  %3805 = extractvalue { ptr, i32 } %3803, 1
  store i32 %3805, ptr %3, align 4
  br label %3815

3806:                                             ; preds = %3757
  %3807 = landingpad { ptr, i32 }
          cleanup
  %3808 = extractvalue { ptr, i32 } %3807, 0
  store ptr %3808, ptr %2, align 8
  %3809 = extractvalue { ptr, i32 } %3807, 1
  store i32 %3809, ptr %3, align 4
  br label %3814

3810:                                             ; preds = %3765, %3763, %3761
  %3811 = landingpad { ptr, i32 }
          cleanup
  %3812 = extractvalue { ptr, i32 } %3811, 0
  store ptr %3812, ptr %2, align 8
  %3813 = extractvalue { ptr, i32 } %3811, 1
  store i32 %3813, ptr %3, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %461) #7
  br label %3814

3814:                                             ; preds = %3810, %3806
  call void @llvm.lifetime.end.p0(i64 32, ptr %461) #7
  br label %3815

3815:                                             ; preds = %3814, %3802
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %459) #7
  br label %3816

3816:                                             ; preds = %3815, %3798
  call void @llvm.lifetime.end.p0(i64 4, ptr %460) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %459) #7
  br label %3818

3817:                                             ; preds = %3768, %3737
  call void @llvm.lifetime.end.p0(i64 4, ptr %418) #7
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %417) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %417) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %416) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %415) #7
  call void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508) %414) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr %414) #7
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %1) #7
  ret void

3818:                                             ; preds = %3816, %3797, %3736, %3717, %3658, %3639, %3610, %3550
  call void @llvm.lifetime.end.p0(i64 4, ptr %418) #7
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %417) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %417) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %416) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %415) #7
  call void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508) %414) #7
  br label %3819

3819:                                             ; preds = %3818, %3546
  call void @llvm.lifetime.end.p0(i64 512, ptr %414) #7
  br label %3820

3820:                                             ; preds = %3819, %3545, %527
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %1) #7
  br label %3821

3821:                                             ; preds = %3820
  %3822 = load ptr, ptr %2, align 8
  %3823 = load i32, ptr %3, align 4
  %3824 = insertvalue { ptr, i32 } poison, ptr %3822, 0
  %3825 = insertvalue { ptr, i32 } %3824, i32 %3823, 1
  resume { ptr, i32 } %3825
}

declare noundef i32 @_ZN7lodepng6decodeERSt6vectorIhSaIhEERjS4_RNS_5StateEPKhm(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(508), ptr noundef, i64 noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #0

; 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 = { 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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #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 "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 = { inlinehint 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 #7 = { 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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 56}
!12 = !{!"_ZTS11LodePNGInfo", !10, i64 0, !10, i64 4, !10, i64 8, !13, i64 16, !10, i64 56, !10, i64 60, !10, i64 64, !10, i64 68, !15, i64 72, !6, i64 80, !6, i64 88, !15, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !10, i64 136, !16, i64 140, !10, i64 164, !10, i64 168, !10, i64 172, !10, i64 176, !10, i64 180, !10, i64 184, !10, i64 188, !10, i64 192, !10, i64 196, !10, i64 200, !10, i64 204, !10, i64 208, !10, i64 212, !10, i64 216, !10, i64 220, !10, i64 224, !10, i64 228, !10, i64 232, !6, i64 240, !6, i64 248, !10, i64 256, !7, i64 264, !7, i64 288}
!13 = !{!"_ZTS16LodePNGColorMode", !14, i64 0, !10, i64 4, !6, i64 8, !15, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36}
!14 = !{!"_ZTS16LodePNGColorType", !7, i64 0}
!15 = !{!"long", !7, i64 0}
!16 = !{!"_ZTS11LodePNGTime", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20}
!17 = !{!12, !10, i64 60}
!18 = !{!12, !10, i64 136}
!19 = !{!12, !10, i64 140}
!20 = !{!12, !10, i64 144}
!21 = !{!12, !10, i64 148}
!22 = !{!12, !10, i64 152}
!23 = !{!12, !10, i64 156}
!24 = !{!12, !10, i64 160}
!25 = !{!12, !10, i64 164}
!26 = !{!12, !10, i64 168}
!27 = !{!12, !10, i64 172}
!28 = !{!12, !10, i64 176}
!29 = !{!12, !15, i64 72}
!30 = !{!12, !6, i64 80}
!31 = !{!12, !6, i64 88}
!32 = !{!12, !15, i64 96}
!33 = !{!12, !6, i64 104}
!34 = !{!12, !6, i64 112}
!35 = !{!12, !6, i64 120}
!36 = !{!12, !6, i64 128}
!37 = !{!38, !10, i64 56}
!38 = !{!"_ZTS12LodePNGState", !39, i64 8, !41, i64 64, !13, i64 152, !12, i64 192, !10, i64 504}
!39 = !{!"_ZTS22LodePNGDecoderSettings", !40, i64 0, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52}
!40 = !{!"_ZTS25LodePNGDecompressSettings", !10, i64 0, !10, i64 4, !6, i64 8, !6, i64 16, !6, i64 24}
!41 = !{!"_ZTS22LodePNGEncoderSettings", !42, i64 0, !10, i64 48, !10, i64 52, !43, i64 56, !6, i64 64, !10, i64 72, !10, i64 76, !10, i64 80}
!42 = !{!"_ZTS23LodePNGCompressSettings", !10, i64 0, !10, i64 4, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !6, i64 24, !6, i64 32, !6, i64 40}
!43 = !{!"_ZTS21LodePNGFilterStrategy", !7, i64 0}
!44 = !{!38, !15, i64 264}
!45 = !{!38, !15, i64 288}
!46 = !{!38, !10, i64 332}


; 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::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 }
%"class.std::allocator" = type { i8 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.165 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.166 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.167 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.168 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.169 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.170 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.171 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.172 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.173 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.174 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.175 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.176 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.187 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.188 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.189 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.190 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.191 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.192 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.193 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.194 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.196 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.197 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.198 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.218 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.230 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.231 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.232 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.233 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.234 = external hidden unnamed_addr constant [31 x i8], align 1
@LODEPNG_VERSION_STRING = external local_unnamed_addr global ptr, align 8
@.str.235 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.236 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.237 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.238 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.239 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.240 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.241 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.242 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.243 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.244 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.245 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.246 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.247 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.248 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.260 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.261 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z4failv() local_unnamed_addr #0

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

declare i32 @__gxx_personality_v0(...)

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

; 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 #2

; 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 #2

; 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 #0 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)) #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z16assertNoPNGErrorjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

; 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 #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #2

; 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 nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 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 nounwind uwtable
declare dso_local void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0

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

declare void @_ZN7lodepng5StateC1Ev(ptr noundef nonnull align 8 dereferenceable(508)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508)) unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z16createComplexPNGRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z17extractChunkNamesB5cxx11RKSt6vectorIhSaIhEE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
define dso_local void @_Z14testComplexPNGv() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"class.std::vector", align 8
  %2 = alloca %"class.lodepng::State", align 8
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca %"class.std::vector", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca i32, align 4
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca i32, align 4
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca i32, align 4
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator", align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca i32, align 4
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca i32, align 4
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca i32, align 4
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca i32, align 4
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca i32, align 4
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::allocator", align 1
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca i32, align 4
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator", align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca i32, align 4
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::allocator", align 1
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca i32, align 4
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::allocator", align 1
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca i32, align 4
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca %"class.std::allocator", align 1
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca i32, align 4
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca %"class.std::__cxx11::basic_string", align 8
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %"class.std::__cxx11::basic_string", align 8
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::allocator", align 1
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca i32, align 4
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::__cxx11::basic_string", align 8
  %153 = alloca %"class.std::allocator", align 1
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.std::allocator", align 1
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::__cxx11::basic_string", align 8
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca %"class.std::__cxx11::basic_string", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"class.std::allocator", align 1
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca i32, align 4
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca %"class.std::__cxx11::basic_string", align 8
  %172 = alloca %"class.std::allocator", align 1
  %173 = alloca %"class.std::__cxx11::basic_string", align 8
  %174 = alloca %"class.std::allocator", align 1
  %175 = alloca %"class.std::__cxx11::basic_string", align 8
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca %"class.std::__cxx11::basic_string", align 8
  %178 = alloca %"class.std::__cxx11::basic_string", align 8
  %179 = alloca %"class.std::__cxx11::basic_string", align 8
  %180 = alloca %"class.std::allocator", align 1
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca %"class.std::allocator", align 1
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca %"class.std::__cxx11::basic_string", align 8
  %186 = alloca %"class.std::allocator", align 1
  %187 = alloca %"class.std::__cxx11::basic_string", align 8
  %188 = alloca %"class.std::allocator", align 1
  %189 = alloca %"class.std::__cxx11::basic_string", align 8
  %190 = alloca %"class.std::allocator", align 1
  %191 = alloca %"class.std::__cxx11::basic_string", align 8
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::__cxx11::basic_string", align 8
  %194 = alloca %"class.std::__cxx11::basic_string", align 8
  %195 = alloca %"class.std::__cxx11::basic_string", align 8
  %196 = alloca %"class.std::allocator", align 1
  %197 = alloca %"class.std::__cxx11::basic_string", align 8
  %198 = alloca %"class.std::__cxx11::basic_string", align 8
  %199 = alloca %"class.std::allocator", align 1
  %200 = alloca %"class.std::__cxx11::basic_string", align 8
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca %"class.std::allocator", align 1
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca %"class.std::allocator", align 1
  %205 = alloca %"class.std::__cxx11::basic_string", align 8
  %206 = alloca %"class.std::allocator", align 1
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::__cxx11::basic_string", align 8
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::__cxx11::basic_string", align 8
  %212 = alloca %"class.std::allocator", align 1
  %213 = alloca %"class.std::__cxx11::basic_string", align 8
  %214 = alloca %"class.std::__cxx11::basic_string", align 8
  %215 = alloca %"class.std::allocator", align 1
  %216 = alloca %"class.std::__cxx11::basic_string", align 8
  %217 = alloca %"class.std::__cxx11::basic_string", align 8
  %218 = alloca %"class.std::allocator", align 1
  %219 = alloca %"class.std::__cxx11::basic_string", align 8
  %220 = alloca %"class.std::allocator", align 1
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca %"class.std::allocator", align 1
  %223 = alloca %"class.std::__cxx11::basic_string", align 8
  %224 = alloca %"class.std::__cxx11::basic_string", align 8
  %225 = alloca %"class.std::__cxx11::basic_string", align 8
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca %"class.std::allocator", align 1
  %229 = alloca %"class.std::__cxx11::basic_string", align 8
  %230 = alloca %"class.std::__cxx11::basic_string", align 8
  %231 = alloca %"class.std::allocator", align 1
  %232 = alloca %"class.std::__cxx11::basic_string", align 8
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.std::allocator", align 1
  %235 = alloca %"class.std::__cxx11::basic_string", align 8
  %236 = alloca %"class.std::allocator", align 1
  %237 = alloca %"class.std::__cxx11::basic_string", align 8
  %238 = alloca %"class.std::allocator", align 1
  %239 = alloca %"class.std::__cxx11::basic_string", align 8
  %240 = alloca %"class.std::__cxx11::basic_string", align 8
  %241 = alloca %"class.std::__cxx11::basic_string", align 8
  %242 = alloca %"class.std::__cxx11::basic_string", align 8
  %243 = alloca %"class.std::__cxx11::basic_string", align 8
  %244 = alloca %"class.std::allocator", align 1
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca %"class.std::allocator", align 1
  %248 = alloca %"class.std::__cxx11::basic_string", align 8
  %249 = alloca %"class.std::__cxx11::basic_string", align 8
  %250 = alloca %"class.std::allocator", align 1
  %251 = alloca %"class.std::__cxx11::basic_string", align 8
  %252 = alloca %"class.std::allocator", align 1
  %253 = alloca %"class.std::__cxx11::basic_string", align 8
  %254 = alloca %"class.std::allocator", align 1
  %255 = alloca %"class.std::__cxx11::basic_string", align 8
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca %"class.std::__cxx11::basic_string", align 8
  %258 = alloca %"class.std::__cxx11::basic_string", align 8
  %259 = alloca %"class.std::__cxx11::basic_string", align 8
  %260 = alloca %"class.std::allocator", align 1
  %261 = alloca %"class.std::__cxx11::basic_string", align 8
  %262 = alloca %"class.std::__cxx11::basic_string", align 8
  %263 = alloca %"class.std::allocator", align 1
  %264 = alloca %"class.std::__cxx11::basic_string", align 8
  %265 = alloca %"class.std::__cxx11::basic_string", align 8
  %266 = alloca %"class.std::allocator", align 1
  %267 = alloca %"class.std::__cxx11::basic_string", align 8
  %268 = alloca %"class.std::__cxx11::basic_string", align 8
  %269 = alloca %"class.std::__cxx11::basic_string", align 8
  %270 = alloca %"class.std::__cxx11::basic_string", align 8
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca %"class.std::allocator", align 1
  %273 = alloca %"class.std::__cxx11::basic_string", align 8
  %274 = alloca i32, align 4
  %275 = alloca %"class.std::__cxx11::basic_string", align 8
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::allocator", align 1
  %278 = alloca %"class.std::__cxx11::basic_string", align 8
  %279 = alloca %"class.std::allocator", align 1
  %280 = alloca %"class.std::__cxx11::basic_string", align 8
  %281 = alloca %"class.std::__cxx11::basic_string", align 8
  %282 = alloca %"class.std::__cxx11::basic_string", align 8
  %283 = alloca %"class.std::__cxx11::basic_string", align 8
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.std::allocator", align 1
  %286 = alloca %"class.std::__cxx11::basic_string", align 8
  %287 = alloca %"class.std::__cxx11::basic_string", align 8
  %288 = alloca %"class.std::allocator", align 1
  %289 = alloca %"class.std::__cxx11::basic_string", align 8
  %290 = alloca %"class.std::__cxx11::basic_string", align 8
  %291 = alloca %"class.std::allocator", align 1
  %292 = alloca %"class.std::__cxx11::basic_string", align 8
  %293 = alloca %"class.std::allocator", align 1
  %294 = alloca %"class.std::__cxx11::basic_string", align 8
  %295 = alloca %"class.std::allocator", align 1
  %296 = alloca %"class.std::__cxx11::basic_string", align 8
  %297 = alloca %"class.std::__cxx11::basic_string", align 8
  %298 = alloca %"class.std::__cxx11::basic_string", align 8
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.std::__cxx11::basic_string", align 8
  %301 = alloca %"class.std::allocator", align 1
  %302 = alloca %"class.std::__cxx11::basic_string", align 8
  %303 = alloca %"class.std::__cxx11::basic_string", align 8
  %304 = alloca %"class.std::allocator", align 1
  %305 = alloca %"class.std::__cxx11::basic_string", align 8
  %306 = alloca %"class.std::__cxx11::basic_string", align 8
  %307 = alloca %"class.std::allocator", align 1
  %308 = alloca %"class.std::__cxx11::basic_string", align 8
  %309 = alloca %"class.std::allocator", align 1
  %310 = alloca %"class.std::__cxx11::basic_string", align 8
  %311 = alloca %"class.std::allocator", align 1
  %312 = alloca %"class.std::__cxx11::basic_string", align 8
  %313 = alloca %"class.std::__cxx11::basic_string", align 8
  %314 = alloca %"class.std::__cxx11::basic_string", align 8
  %315 = alloca %"class.std::__cxx11::basic_string", align 8
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca %"class.std::allocator", align 1
  %318 = alloca %"class.std::__cxx11::basic_string", align 8
  %319 = alloca %"class.std::__cxx11::basic_string", align 8
  %320 = alloca %"class.std::allocator", align 1
  %321 = alloca %"class.std::__cxx11::basic_string", align 8
  %322 = alloca %"class.std::__cxx11::basic_string", align 8
  %323 = alloca %"class.std::allocator", align 1
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca %"class.std::allocator", align 1
  %326 = alloca %"class.std::__cxx11::basic_string", align 8
  %327 = alloca %"class.std::allocator", align 1
  %328 = alloca %"class.std::__cxx11::basic_string", align 8
  %329 = alloca %"class.std::__cxx11::basic_string", align 8
  %330 = alloca %"class.std::__cxx11::basic_string", align 8
  %331 = alloca %"class.std::__cxx11::basic_string", align 8
  %332 = alloca %"class.std::__cxx11::basic_string", align 8
  %333 = alloca %"class.std::allocator", align 1
  %334 = alloca %"class.std::__cxx11::basic_string", align 8
  %335 = alloca %"class.std::__cxx11::basic_string", align 8
  %336 = alloca %"class.std::allocator", align 1
  %337 = alloca %"class.std::__cxx11::basic_string", align 8
  %338 = alloca %"class.std::__cxx11::basic_string", align 8
  %339 = alloca %"class.std::allocator", align 1
  %340 = alloca %"class.std::__cxx11::basic_string", align 8
  %341 = alloca %"class.std::allocator", align 1
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::allocator", align 1
  %344 = alloca %"class.std::__cxx11::basic_string", align 8
  %345 = alloca %"class.std::__cxx11::basic_string", align 8
  %346 = alloca %"class.std::__cxx11::basic_string", align 8
  %347 = alloca %"class.std::__cxx11::basic_string", align 8
  %348 = alloca %"class.std::__cxx11::basic_string", align 8
  %349 = alloca %"class.std::allocator", align 1
  %350 = alloca %"class.std::__cxx11::basic_string", align 8
  %351 = alloca %"class.std::__cxx11::basic_string", align 8
  %352 = alloca %"class.std::allocator", align 1
  %353 = alloca %"class.std::__cxx11::basic_string", align 8
  %354 = alloca %"class.std::__cxx11::basic_string", align 8
  %355 = alloca %"class.std::allocator", align 1
  %356 = alloca %"class.std::__cxx11::basic_string", align 8
  %357 = alloca %"class.std::allocator", align 1
  %358 = alloca %"class.std::__cxx11::basic_string", align 8
  %359 = alloca %"class.std::allocator", align 1
  %360 = alloca %"class.std::__cxx11::basic_string", align 8
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca %"class.std::__cxx11::basic_string", align 8
  %363 = alloca %"class.std::__cxx11::basic_string", align 8
  %364 = alloca %"class.std::__cxx11::basic_string", align 8
  %365 = alloca %"class.std::allocator", align 1
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca %"class.std::__cxx11::basic_string", align 8
  %368 = alloca %"class.std::allocator", align 1
  %369 = alloca %"class.std::__cxx11::basic_string", align 8
  %370 = alloca %"class.std::__cxx11::basic_string", align 8
  %371 = alloca %"class.std::allocator", align 1
  %372 = alloca %"class.std::__cxx11::basic_string", align 8
  %373 = alloca %"class.std::allocator", align 1
  %374 = alloca %"class.std::__cxx11::basic_string", align 8
  %375 = alloca %"class.std::allocator", align 1
  %376 = alloca %"class.std::__cxx11::basic_string", align 8
  %377 = alloca %"class.std::__cxx11::basic_string", align 8
  %378 = alloca %"class.std::__cxx11::basic_string", align 8
  %379 = alloca %"class.std::__cxx11::basic_string", align 8
  %380 = alloca %"class.std::__cxx11::basic_string", align 8
  %381 = alloca %"class.std::allocator", align 1
  %382 = alloca %"class.std::__cxx11::basic_string", align 8
  %383 = alloca %"class.std::__cxx11::basic_string", align 8
  %384 = alloca %"class.std::allocator", align 1
  %385 = alloca %"class.std::__cxx11::basic_string", align 8
  %386 = alloca %"class.std::__cxx11::basic_string", align 8
  %387 = alloca %"class.std::allocator", align 1
  %388 = alloca %"class.std::__cxx11::basic_string", align 8
  %389 = alloca %"class.std::allocator", align 1
  %390 = alloca %"class.std::__cxx11::basic_string", align 8
  %391 = alloca %"class.std::allocator", align 1
  %392 = alloca %"class.std::__cxx11::basic_string", align 8
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::__cxx11::basic_string", align 8
  %395 = alloca %"class.std::__cxx11::basic_string", align 8
  %396 = alloca %"class.std::__cxx11::basic_string", align 8
  %397 = alloca %"class.std::allocator", align 1
  %398 = alloca %"class.std::__cxx11::basic_string", align 8
  %399 = alloca %"class.std::__cxx11::basic_string", align 8
  %400 = alloca %"class.std::allocator", align 1
  %401 = alloca %"class.std::__cxx11::basic_string", align 8
  %402 = alloca %"class.std::__cxx11::basic_string", align 8
  %403 = alloca %"class.std::allocator", align 1
  %404 = alloca %"class.lodepng::State", align 8
  %405 = alloca i32, align 4
  %406 = alloca i32, align 4
  %407 = alloca %"class.std::vector", align 8
  %408 = alloca %"class.std::__cxx11::basic_string", align 8
  %409 = alloca %"class.std::__cxx11::basic_string", align 8
  %410 = alloca %"class.std::__cxx11::basic_string", align 8
  %411 = alloca %"class.std::allocator", align 1
  %412 = alloca %"class.std::__cxx11::basic_string", align 8
  %413 = alloca %"class.std::__cxx11::basic_string", align 8
  %414 = alloca %"class.std::allocator", align 1
  %415 = alloca %"class.std::allocator", align 1
  %416 = alloca %"class.std::__cxx11::basic_string", align 8
  %417 = alloca %"class.std::allocator", align 1
  %418 = alloca %"class.std::__cxx11::basic_string", align 8
  %419 = alloca %"class.std::__cxx11::basic_string", align 8
  %420 = alloca %"class.std::__cxx11::basic_string", align 8
  %421 = alloca %"class.std::__cxx11::basic_string", align 8
  %422 = alloca %"class.std::__cxx11::basic_string", align 8
  %423 = alloca %"class.std::allocator", align 1
  %424 = alloca %"class.std::__cxx11::basic_string", align 8
  %425 = alloca i32, align 4
  %426 = alloca %"class.std::__cxx11::basic_string", align 8
  %427 = alloca %"class.std::__cxx11::basic_string", align 8
  %428 = alloca %"class.std::__cxx11::basic_string", align 8
  %429 = alloca %"class.std::__cxx11::basic_string", align 8
  %430 = alloca %"class.std::__cxx11::basic_string", align 8
  %431 = alloca %"class.std::__cxx11::basic_string", align 8
  %432 = alloca %"class.std::allocator", align 1
  %433 = alloca %"class.std::__cxx11::basic_string", align 8
  %434 = alloca i32, align 4
  %435 = alloca %"class.std::__cxx11::basic_string", align 8
  %436 = alloca %"class.std::__cxx11::basic_string", align 8
  %437 = alloca %"class.std::__cxx11::basic_string", align 8
  %438 = alloca %"class.std::__cxx11::basic_string", align 8
  %439 = alloca %"class.std::__cxx11::basic_string", align 8
  %440 = alloca %"class.std::__cxx11::basic_string", align 8
  %441 = alloca %"class.std::allocator", align 1
  %442 = alloca %"class.std::__cxx11::basic_string", align 8
  %443 = alloca i32, align 4
  %444 = alloca %"class.std::__cxx11::basic_string", align 8
  %445 = 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.187)
  %446 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %445, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1) #7
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  invoke void @_Z16createComplexPNGRSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %447 unwind label %486

447:                                              ; preds = %0
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %2) #7
  invoke void @_ZN7lodepng5StateC1Ev(ptr noundef nonnull align 8 dereferenceable(508) %2)
          to label %448 unwind label %488

448:                                              ; preds = %447
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #7
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %449 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 0) #7
  %450 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %451 = invoke noundef i32 @_ZN7lodepng6decodeERSt6vectorIhSaIhEERjS4_RNS_5StateEPKhm(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(4) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 8 dereferenceable(508) %2, ptr noundef nonnull %449, i64 noundef %450)
          to label %452 unwind label %490

452:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %453 unwind label %492

453:                                              ; preds = %452
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.188)
          to label %454 unwind label %494

454:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %455 unwind label %496

455:                                              ; preds = %454
  %456 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br i1 %456, label %457, label %458

457:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %460 unwind label %.critedge933.thread

458:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %459 unwind label %.critedge932.thread

459:                                              ; preds = %458
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull @.str.3, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %460 unwind label %.thread

460:                                              ; preds = %459, %457
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %461 unwind label %501

461:                                              ; preds = %460
  invoke void @_Z16assertNoPNGErrorjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %451, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %462 unwind label %503

462:                                              ; preds = %461
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br i1 %456, label %.critedge948, label %.critedge

.critedge:                                        ; preds = %462
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %.critedge930

.critedge948:                                     ; preds = %462
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  br label %.critedge930

.critedge930:                                     ; preds = %.critedge, %.critedge948
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  %463 = load i32, ptr %3, align 4, !tbaa !5
  %.not = icmp eq i32 %463, 16
  br i1 %.not, label %537, label %464

464:                                              ; preds = %.critedge930
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %465 unwind label %509

465:                                              ; preds = %464
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.189)
          to label %466 unwind label %511

466:                                              ; preds = %465
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.3)
          to label %467 unwind label %513

467:                                              ; preds = %466
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.190)
          to label %468 unwind label %515

468:                                              ; preds = %467
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.18)
          to label %469 unwind label %517

469:                                              ; preds = %468
  %470 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %471 unwind label %519

471:                                              ; preds = %469
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  %472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %473 unwind label %490

473:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #7
  store i32 16, ptr %23, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %474 unwind label %526

474:                                              ; preds = %473
  %475 = 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) %472, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %476 unwind label %528

476:                                              ; preds = %474
  %477 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %475, ptr noundef nonnull @.str.20)
          to label %478 unwind label %528

478:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %479 unwind label %530

479:                                              ; preds = %478
  %480 = 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) %477, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %481 unwind label %532

481:                                              ; preds = %479
  %482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %480, ptr noundef nonnull @.str.21)
          to label %483 unwind label %532

483:                                              ; preds = %481
  %484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %482, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %485 unwind label %532

485:                                              ; preds = %483
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  invoke void @_Z4failv()
          to label %537 unwind label %490

486:                                              ; preds = %0
  %487 = landingpad { ptr, i32 }
          cleanup
  br label %2666

488:                                              ; preds = %447
  %489 = landingpad { ptr, i32 }
          cleanup
  br label %2507

490:                                              ; preds = %1249, %1235, %1196, %1182, %1143, %1129, %1090, %1076, %1037, %1023, %984, %970, %931, %917, %878, %864, %825, %811, %772, %758, %719, %705, %666, %652, %613, %599, %560, %546, %485, %471, %448
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %2506

492:                                              ; preds = %452
  %493 = landingpad { ptr, i32 }
          cleanup
  br label %508

494:                                              ; preds = %453
  %495 = landingpad { ptr, i32 }
          cleanup
  br label %507

496:                                              ; preds = %454
  %497 = landingpad { ptr, i32 }
          cleanup
  br label %506

.critedge933.thread:                              ; preds = %457
  %498 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge933

.critedge932.thread:                              ; preds = %458
  %499 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %.critedge935

.thread:                                          ; preds = %459
  %500 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge932

501:                                              ; preds = %460
  %502 = landingpad { ptr, i32 }
          cleanup
  br label %505

503:                                              ; preds = %461
  %504 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %505

505:                                              ; preds = %501, %503
  %.pn = phi { ptr, i32 } [ %504, %503 ], [ %502, %501 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br i1 %456, label %.critedge933, label %.critedge932

.critedge932:                                     ; preds = %505, %.thread
  %.pn.pn953 = phi { ptr, i32 } [ %500, %.thread ], [ %.pn, %505 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %.critedge935

.critedge933:                                     ; preds = %505, %.critedge933.thread
  %.pn.pn.pn.pn965 = phi { ptr, i32 } [ %498, %.critedge933.thread ], [ %.pn, %505 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  br label %.critedge935

.critedge935:                                     ; preds = %.critedge932, %.critedge932.thread, %.critedge933
  %.pn.pn.pn.pn964 = phi { ptr, i32 } [ %.pn.pn.pn.pn965, %.critedge933 ], [ %.pn.pn953, %.critedge932 ], [ %499, %.critedge932.thread ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %506

506:                                              ; preds = %.critedge935, %496
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn964, %.critedge935 ], [ %497, %496 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %507

507:                                              ; preds = %506, %494
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %506 ], [ %495, %494 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %508

508:                                              ; preds = %507, %492
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %507 ], [ %493, %492 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  br label %2506

509:                                              ; preds = %464
  %510 = landingpad { ptr, i32 }
          cleanup
  br label %525

511:                                              ; preds = %465
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %524

513:                                              ; preds = %466
  %514 = landingpad { ptr, i32 }
          cleanup
  br label %523

515:                                              ; preds = %467
  %516 = landingpad { ptr, i32 }
          cleanup
  br label %522

517:                                              ; preds = %468
  %518 = landingpad { ptr, i32 }
          cleanup
  br label %521

519:                                              ; preds = %469
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %521

521:                                              ; preds = %519, %517
  %.pn483 = phi { ptr, i32 } [ %520, %519 ], [ %518, %517 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %522

522:                                              ; preds = %521, %515
  %.pn483.pn = phi { ptr, i32 } [ %.pn483, %521 ], [ %516, %515 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %523

523:                                              ; preds = %522, %513
  %.pn483.pn.pn = phi { ptr, i32 } [ %.pn483.pn, %522 ], [ %514, %513 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %524

524:                                              ; preds = %523, %511
  %.pn483.pn.pn.pn = phi { ptr, i32 } [ %.pn483.pn.pn, %523 ], [ %512, %511 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %525

525:                                              ; preds = %524, %509
  %.pn483.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn483.pn.pn.pn, %524 ], [ %510, %509 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %2506

526:                                              ; preds = %473
  %527 = landingpad { ptr, i32 }
          cleanup
  br label %536

528:                                              ; preds = %476, %474
  %529 = landingpad { ptr, i32 }
          cleanup
  br label %535

530:                                              ; preds = %478
  %531 = landingpad { ptr, i32 }
          cleanup
  br label %534

532:                                              ; preds = %483, %481, %479
  %533 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %534

534:                                              ; preds = %532, %530
  %.pn489 = phi { ptr, i32 } [ %533, %532 ], [ %531, %530 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %535

535:                                              ; preds = %534, %528
  %.pn489.pn = phi { ptr, i32 } [ %.pn489, %534 ], [ %529, %528 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %536

536:                                              ; preds = %535, %526
  %.pn489.pn.pn = phi { ptr, i32 } [ %.pn489.pn, %535 ], [ %527, %526 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %2506

537:                                              ; preds = %485, %.critedge930
  %538 = load i32, ptr %4, align 4, !tbaa !5
  %.not493 = icmp eq i32 %538, 17
  br i1 %.not493, label %589, label %539

539:                                              ; preds = %537
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %540 unwind label %561

540:                                              ; preds = %539
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.191)
          to label %541 unwind label %563

541:                                              ; preds = %540
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.3)
          to label %542 unwind label %565

542:                                              ; preds = %541
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.192)
          to label %543 unwind label %567

543:                                              ; preds = %542
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.18)
          to label %544 unwind label %569

544:                                              ; preds = %543
  %545 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %546 unwind label %571

546:                                              ; preds = %544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  %547 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %548 unwind label %490

548:                                              ; preds = %546
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #7
  store i32 17, ptr %32, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %549 unwind label %578

549:                                              ; preds = %548
  %550 = 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) %547, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %551 unwind label %580

551:                                              ; preds = %549
  %552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %550, ptr noundef nonnull @.str.20)
          to label %553 unwind label %580

553:                                              ; preds = %551
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 4 dereferenceable(4) %4)
          to label %554 unwind label %582

554:                                              ; preds = %553
  %555 = 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) %552, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %556 unwind label %584

556:                                              ; preds = %554
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %555, ptr noundef nonnull @.str.21)
          to label %558 unwind label %584

558:                                              ; preds = %556
  %559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %557, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %560 unwind label %584

560:                                              ; preds = %558
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  invoke void @_Z4failv()
          to label %589 unwind label %490

561:                                              ; preds = %539
  %562 = landingpad { ptr, i32 }
          cleanup
  br label %577

563:                                              ; preds = %540
  %564 = landingpad { ptr, i32 }
          cleanup
  br label %576

565:                                              ; preds = %541
  %566 = landingpad { ptr, i32 }
          cleanup
  br label %575

567:                                              ; preds = %542
  %568 = landingpad { ptr, i32 }
          cleanup
  br label %574

569:                                              ; preds = %543
  %570 = landingpad { ptr, i32 }
          cleanup
  br label %573

571:                                              ; preds = %544
  %572 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %573

573:                                              ; preds = %571, %569
  %.pn494 = phi { ptr, i32 } [ %572, %571 ], [ %570, %569 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %574

574:                                              ; preds = %573, %567
  %.pn494.pn = phi { ptr, i32 } [ %.pn494, %573 ], [ %568, %567 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %575

575:                                              ; preds = %574, %565
  %.pn494.pn.pn = phi { ptr, i32 } [ %.pn494.pn, %574 ], [ %566, %565 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %576

576:                                              ; preds = %575, %563
  %.pn494.pn.pn.pn = phi { ptr, i32 } [ %.pn494.pn.pn, %575 ], [ %564, %563 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %577

577:                                              ; preds = %576, %561
  %.pn494.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn494.pn.pn.pn, %576 ], [ %562, %561 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %2506

578:                                              ; preds = %548
  %579 = landingpad { ptr, i32 }
          cleanup
  br label %588

580:                                              ; preds = %551, %549
  %581 = landingpad { ptr, i32 }
          cleanup
  br label %587

582:                                              ; preds = %553
  %583 = landingpad { ptr, i32 }
          cleanup
  br label %586

584:                                              ; preds = %558, %556, %554
  %585 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %586

586:                                              ; preds = %584, %582
  %.pn500 = phi { ptr, i32 } [ %585, %584 ], [ %583, %582 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #7
  br label %587

587:                                              ; preds = %586, %580
  %.pn500.pn = phi { ptr, i32 } [ %.pn500, %586 ], [ %581, %580 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %588

588:                                              ; preds = %587, %578
  %.pn500.pn.pn = phi { ptr, i32 } [ %.pn500.pn, %587 ], [ %579, %578 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #7
  br label %2506

589:                                              ; preds = %560, %537
  %590 = getelementptr inbounds i8, ptr %2, i64 248
  %591 = load i32, ptr %590, align 8, !tbaa !9
  %.not504 = icmp eq i32 %591, 1
  br i1 %.not504, label %642, label %592

592:                                              ; preds = %589
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %593 unwind label %614

593:                                              ; preds = %592
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.193)
          to label %594 unwind label %616

594:                                              ; preds = %593
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.3)
          to label %595 unwind label %618

595:                                              ; preds = %594
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.194)
          to label %596 unwind label %620

596:                                              ; preds = %595
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.18)
          to label %597 unwind label %622

597:                                              ; preds = %596
  %598 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %599 unwind label %624

599:                                              ; preds = %597
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  %600 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %601 unwind label %490

601:                                              ; preds = %599
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #7
  store i32 1, ptr %41, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %602 unwind label %631

602:                                              ; preds = %601
  %603 = 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) %600, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %604 unwind label %633

604:                                              ; preds = %602
  %605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %603, ptr noundef nonnull @.str.20)
          to label %606 unwind label %633

606:                                              ; preds = %604
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 4 dereferenceable(4) %590)
          to label %607 unwind label %635

607:                                              ; preds = %606
  %608 = 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) %605, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %609 unwind label %637

609:                                              ; preds = %607
  %610 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %608, ptr noundef nonnull @.str.21)
          to label %611 unwind label %637

611:                                              ; preds = %609
  %612 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %610, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %613 unwind label %637

613:                                              ; preds = %611
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  invoke void @_Z4failv()
          to label %642 unwind label %490

614:                                              ; preds = %592
  %615 = landingpad { ptr, i32 }
          cleanup
  br label %630

616:                                              ; preds = %593
  %617 = landingpad { ptr, i32 }
          cleanup
  br label %629

618:                                              ; preds = %594
  %619 = landingpad { ptr, i32 }
          cleanup
  br label %628

620:                                              ; preds = %595
  %621 = landingpad { ptr, i32 }
          cleanup
  br label %627

622:                                              ; preds = %596
  %623 = landingpad { ptr, i32 }
          cleanup
  br label %626

624:                                              ; preds = %597
  %625 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %626

626:                                              ; preds = %624, %622
  %.pn505 = phi { ptr, i32 } [ %625, %624 ], [ %623, %622 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %627

627:                                              ; preds = %626, %620
  %.pn505.pn = phi { ptr, i32 } [ %.pn505, %626 ], [ %621, %620 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %628

628:                                              ; preds = %627, %618
  %.pn505.pn.pn = phi { ptr, i32 } [ %.pn505.pn, %627 ], [ %619, %618 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %629

629:                                              ; preds = %628, %616
  %.pn505.pn.pn.pn = phi { ptr, i32 } [ %.pn505.pn.pn, %628 ], [ %617, %616 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %630

630:                                              ; preds = %629, %614
  %.pn505.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn505.pn.pn.pn, %629 ], [ %615, %614 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  br label %2506

631:                                              ; preds = %601
  %632 = landingpad { ptr, i32 }
          cleanup
  br label %641

633:                                              ; preds = %604, %602
  %634 = landingpad { ptr, i32 }
          cleanup
  br label %640

635:                                              ; preds = %606
  %636 = landingpad { ptr, i32 }
          cleanup
  br label %639

637:                                              ; preds = %611, %609, %607
  %638 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #7
  br label %639

639:                                              ; preds = %637, %635
  %.pn511 = phi { ptr, i32 } [ %638, %637 ], [ %636, %635 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #7
  br label %640

640:                                              ; preds = %639, %633
  %.pn511.pn = phi { ptr, i32 } [ %.pn511, %639 ], [ %634, %633 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %641

641:                                              ; preds = %640, %631
  %.pn511.pn.pn = phi { ptr, i32 } [ %.pn511.pn, %640 ], [ %632, %631 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  br label %2506

642:                                              ; preds = %613, %589
  %643 = getelementptr inbounds i8, ptr %2, i64 252
  %644 = load i32, ptr %643, align 4, !tbaa !16
  %.not515 = icmp eq i32 %644, 127
  br i1 %.not515, label %695, label %645

645:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %646 unwind label %667

646:                                              ; preds = %645
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.195)
          to label %647 unwind label %669

647:                                              ; preds = %646
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.3)
          to label %648 unwind label %671

648:                                              ; preds = %647
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.196)
          to label %649 unwind label %673

649:                                              ; preds = %648
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.18)
          to label %650 unwind label %675

650:                                              ; preds = %649
  %651 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %652 unwind label %677

652:                                              ; preds = %650
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  %653 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %654 unwind label %490

654:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #7
  store i32 127, ptr %50, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 4 dereferenceable(4) %50)
          to label %655 unwind label %684

655:                                              ; preds = %654
  %656 = 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) %653, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %657 unwind label %686

657:                                              ; preds = %655
  %658 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %656, ptr noundef nonnull @.str.20)
          to label %659 unwind label %686

659:                                              ; preds = %657
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 4 dereferenceable(4) %643)
          to label %660 unwind label %688

660:                                              ; preds = %659
  %661 = 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) %658, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %662 unwind label %690

662:                                              ; preds = %660
  %663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %661, ptr noundef nonnull @.str.21)
          to label %664 unwind label %690

664:                                              ; preds = %662
  %665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %663, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %666 unwind label %690

666:                                              ; preds = %664
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  invoke void @_Z4failv()
          to label %695 unwind label %490

667:                                              ; preds = %645
  %668 = landingpad { ptr, i32 }
          cleanup
  br label %683

669:                                              ; preds = %646
  %670 = landingpad { ptr, i32 }
          cleanup
  br label %682

671:                                              ; preds = %647
  %672 = landingpad { ptr, i32 }
          cleanup
  br label %681

673:                                              ; preds = %648
  %674 = landingpad { ptr, i32 }
          cleanup
  br label %680

675:                                              ; preds = %649
  %676 = landingpad { ptr, i32 }
          cleanup
  br label %679

677:                                              ; preds = %650
  %678 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %679

679:                                              ; preds = %677, %675
  %.pn516 = phi { ptr, i32 } [ %678, %677 ], [ %676, %675 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %680

680:                                              ; preds = %679, %673
  %.pn516.pn = phi { ptr, i32 } [ %.pn516, %679 ], [ %674, %673 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %681

681:                                              ; preds = %680, %671
  %.pn516.pn.pn = phi { ptr, i32 } [ %.pn516.pn, %680 ], [ %672, %671 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %682

682:                                              ; preds = %681, %669
  %.pn516.pn.pn.pn = phi { ptr, i32 } [ %.pn516.pn.pn, %681 ], [ %670, %669 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %683

683:                                              ; preds = %682, %667
  %.pn516.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn516.pn.pn.pn, %682 ], [ %668, %667 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #7
  br label %2506

684:                                              ; preds = %654
  %685 = landingpad { ptr, i32 }
          cleanup
  br label %694

686:                                              ; preds = %657, %655
  %687 = landingpad { ptr, i32 }
          cleanup
  br label %693

688:                                              ; preds = %659
  %689 = landingpad { ptr, i32 }
          cleanup
  br label %692

690:                                              ; preds = %664, %662, %660
  %691 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %692

692:                                              ; preds = %690, %688
  %.pn522 = phi { ptr, i32 } [ %691, %690 ], [ %689, %688 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  br label %693

693:                                              ; preds = %692, %686
  %.pn522.pn = phi { ptr, i32 } [ %.pn522, %692 ], [ %687, %686 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %694

694:                                              ; preds = %693, %684
  %.pn522.pn.pn = phi { ptr, i32 } [ %.pn522.pn, %693 ], [ %685, %684 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #7
  br label %2506

695:                                              ; preds = %666, %642
  %696 = getelementptr inbounds i8, ptr %2, i64 328
  %697 = load i32, ptr %696, align 8, !tbaa !17
  %.not526 = icmp eq i32 %697, 1
  br i1 %.not526, label %748, label %698

698:                                              ; preds = %695
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %699 unwind label %720

699:                                              ; preds = %698
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.197)
          to label %700 unwind label %722

700:                                              ; preds = %699
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.3)
          to label %701 unwind label %724

701:                                              ; preds = %700
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.198)
          to label %702 unwind label %726

702:                                              ; preds = %701
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.18)
          to label %703 unwind label %728

703:                                              ; preds = %702
  %704 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %705 unwind label %730

705:                                              ; preds = %703
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #7
  %706 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %707 unwind label %490

707:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %59) #7
  store i32 1, ptr %59, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %708 unwind label %737

708:                                              ; preds = %707
  %709 = 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) %706, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %710 unwind label %739

710:                                              ; preds = %708
  %711 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %709, ptr noundef nonnull @.str.20)
          to label %712 unwind label %739

712:                                              ; preds = %710
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 4 dereferenceable(4) %696)
          to label %713 unwind label %741

713:                                              ; preds = %712
  %714 = 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) %711, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %715 unwind label %743

715:                                              ; preds = %713
  %716 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %714, ptr noundef nonnull @.str.21)
          to label %717 unwind label %743

717:                                              ; preds = %715
  %718 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %716, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %719 unwind label %743

719:                                              ; preds = %717
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #7
  invoke void @_Z4failv()
          to label %748 unwind label %490

720:                                              ; preds = %698
  %721 = landingpad { ptr, i32 }
          cleanup
  br label %736

722:                                              ; preds = %699
  %723 = landingpad { ptr, i32 }
          cleanup
  br label %735

724:                                              ; preds = %700
  %725 = landingpad { ptr, i32 }
          cleanup
  br label %734

726:                                              ; preds = %701
  %727 = landingpad { ptr, i32 }
          cleanup
  br label %733

728:                                              ; preds = %702
  %729 = landingpad { ptr, i32 }
          cleanup
  br label %732

730:                                              ; preds = %703
  %731 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %732

732:                                              ; preds = %730, %728
  %.pn527 = phi { ptr, i32 } [ %731, %730 ], [ %729, %728 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %733

733:                                              ; preds = %732, %726
  %.pn527.pn = phi { ptr, i32 } [ %.pn527, %732 ], [ %727, %726 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %734

734:                                              ; preds = %733, %724
  %.pn527.pn.pn = phi { ptr, i32 } [ %.pn527.pn, %733 ], [ %725, %724 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %735

735:                                              ; preds = %734, %722
  %.pn527.pn.pn.pn = phi { ptr, i32 } [ %.pn527.pn.pn, %734 ], [ %723, %722 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %736

736:                                              ; preds = %735, %720
  %.pn527.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn527.pn.pn.pn, %735 ], [ %721, %720 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #7
  br label %2506

737:                                              ; preds = %707
  %738 = landingpad { ptr, i32 }
          cleanup
  br label %747

739:                                              ; preds = %710, %708
  %740 = landingpad { ptr, i32 }
          cleanup
  br label %746

741:                                              ; preds = %712
  %742 = landingpad { ptr, i32 }
          cleanup
  br label %745

743:                                              ; preds = %717, %715, %713
  %744 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %745

745:                                              ; preds = %743, %741
  %.pn533 = phi { ptr, i32 } [ %744, %743 ], [ %742, %741 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #7
  br label %746

746:                                              ; preds = %745, %739
  %.pn533.pn = phi { ptr, i32 } [ %.pn533, %745 ], [ %740, %739 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %747

747:                                              ; preds = %746, %737
  %.pn533.pn.pn = phi { ptr, i32 } [ %.pn533.pn, %746 ], [ %738, %737 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #7
  br label %2506

748:                                              ; preds = %719, %695
  %749 = getelementptr inbounds i8, ptr %2, i64 332
  %750 = load i32, ptr %749, align 4, !tbaa !18
  %.not537 = icmp eq i32 %750, 2012
  br i1 %.not537, label %801, label %751

751:                                              ; preds = %748
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %66) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %752 unwind label %773

752:                                              ; preds = %751
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull @.str.199)
          to label %753 unwind label %775

753:                                              ; preds = %752
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.3)
          to label %754 unwind label %777

754:                                              ; preds = %753
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.200)
          to label %755 unwind label %779

755:                                              ; preds = %754
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.18)
          to label %756 unwind label %781

756:                                              ; preds = %755
  %757 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %758 unwind label %783

758:                                              ; preds = %756
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #7
  %759 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %760 unwind label %490

760:                                              ; preds = %758
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %68) #7
  store i32 2012, ptr %68, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 4 dereferenceable(4) %68)
          to label %761 unwind label %790

761:                                              ; preds = %760
  %762 = 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) %759, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %763 unwind label %792

763:                                              ; preds = %761
  %764 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %762, ptr noundef nonnull @.str.20)
          to label %765 unwind label %792

765:                                              ; preds = %763
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 4 dereferenceable(4) %749)
          to label %766 unwind label %794

766:                                              ; preds = %765
  %767 = 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) %764, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %768 unwind label %796

768:                                              ; preds = %766
  %769 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %767, ptr noundef nonnull @.str.21)
          to label %770 unwind label %796

770:                                              ; preds = %768
  %771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %769, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %772 unwind label %796

772:                                              ; preds = %770
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  invoke void @_Z4failv()
          to label %801 unwind label %490

773:                                              ; preds = %751
  %774 = landingpad { ptr, i32 }
          cleanup
  br label %789

775:                                              ; preds = %752
  %776 = landingpad { ptr, i32 }
          cleanup
  br label %788

777:                                              ; preds = %753
  %778 = landingpad { ptr, i32 }
          cleanup
  br label %787

779:                                              ; preds = %754
  %780 = landingpad { ptr, i32 }
          cleanup
  br label %786

781:                                              ; preds = %755
  %782 = landingpad { ptr, i32 }
          cleanup
  br label %785

783:                                              ; preds = %756
  %784 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %785

785:                                              ; preds = %783, %781
  %.pn538 = phi { ptr, i32 } [ %784, %783 ], [ %782, %781 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %786

786:                                              ; preds = %785, %779
  %.pn538.pn = phi { ptr, i32 } [ %.pn538, %785 ], [ %780, %779 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %787

787:                                              ; preds = %786, %777
  %.pn538.pn.pn = phi { ptr, i32 } [ %.pn538.pn, %786 ], [ %778, %777 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %788

788:                                              ; preds = %787, %775
  %.pn538.pn.pn.pn = phi { ptr, i32 } [ %.pn538.pn.pn, %787 ], [ %776, %775 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %789

789:                                              ; preds = %788, %773
  %.pn538.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn538.pn.pn.pn, %788 ], [ %774, %773 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #7
  br label %2506

790:                                              ; preds = %760
  %791 = landingpad { ptr, i32 }
          cleanup
  br label %800

792:                                              ; preds = %763, %761
  %793 = landingpad { ptr, i32 }
          cleanup
  br label %799

794:                                              ; preds = %765
  %795 = landingpad { ptr, i32 }
          cleanup
  br label %798

796:                                              ; preds = %770, %768, %766
  %797 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %798

798:                                              ; preds = %796, %794
  %.pn544 = phi { ptr, i32 } [ %797, %796 ], [ %795, %794 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #7
  br label %799

799:                                              ; preds = %798, %792
  %.pn544.pn = phi { ptr, i32 } [ %.pn544, %798 ], [ %793, %792 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %800

800:                                              ; preds = %799, %790
  %.pn544.pn.pn = phi { ptr, i32 } [ %.pn544.pn, %799 ], [ %791, %790 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #7
  br label %2506

801:                                              ; preds = %772, %748
  %802 = getelementptr inbounds i8, ptr %2, i64 336
  %803 = load i32, ptr %802, align 8, !tbaa !19
  %.not548 = icmp eq i32 %803, 1
  br i1 %.not548, label %854, label %804

804:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %75) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %805 unwind label %826

805:                                              ; preds = %804
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.201)
          to label %806 unwind label %828

806:                                              ; preds = %805
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull @.str.3)
          to label %807 unwind label %830

807:                                              ; preds = %806
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.202)
          to label %808 unwind label %832

808:                                              ; preds = %807
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull @.str.18)
          to label %809 unwind label %834

809:                                              ; preds = %808
  %810 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %811 unwind label %836

811:                                              ; preds = %809
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #7
  %812 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %813 unwind label %490

813:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %77) #7
  store i32 1, ptr %77, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 4 dereferenceable(4) %77)
          to label %814 unwind label %843

814:                                              ; preds = %813
  %815 = 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) %812, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %816 unwind label %845

816:                                              ; preds = %814
  %817 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %815, ptr noundef nonnull @.str.20)
          to label %818 unwind label %845

818:                                              ; preds = %816
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 4 dereferenceable(4) %802)
          to label %819 unwind label %847

819:                                              ; preds = %818
  %820 = 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) %817, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %821 unwind label %849

821:                                              ; preds = %819
  %822 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %820, ptr noundef nonnull @.str.21)
          to label %823 unwind label %849

823:                                              ; preds = %821
  %824 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %822, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %825 unwind label %849

825:                                              ; preds = %823
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #7
  invoke void @_Z4failv()
          to label %854 unwind label %490

826:                                              ; preds = %804
  %827 = landingpad { ptr, i32 }
          cleanup
  br label %842

828:                                              ; preds = %805
  %829 = landingpad { ptr, i32 }
          cleanup
  br label %841

830:                                              ; preds = %806
  %831 = landingpad { ptr, i32 }
          cleanup
  br label %840

832:                                              ; preds = %807
  %833 = landingpad { ptr, i32 }
          cleanup
  br label %839

834:                                              ; preds = %808
  %835 = landingpad { ptr, i32 }
          cleanup
  br label %838

836:                                              ; preds = %809
  %837 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %838

838:                                              ; preds = %836, %834
  %.pn549 = phi { ptr, i32 } [ %837, %836 ], [ %835, %834 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %839

839:                                              ; preds = %838, %832
  %.pn549.pn = phi { ptr, i32 } [ %.pn549, %838 ], [ %833, %832 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #7
  br label %840

840:                                              ; preds = %839, %830
  %.pn549.pn.pn = phi { ptr, i32 } [ %.pn549.pn, %839 ], [ %831, %830 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %841

841:                                              ; preds = %840, %828
  %.pn549.pn.pn.pn = phi { ptr, i32 } [ %.pn549.pn.pn, %840 ], [ %829, %828 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %842

842:                                              ; preds = %841, %826
  %.pn549.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn549.pn.pn.pn, %841 ], [ %827, %826 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #7
  br label %2506

843:                                              ; preds = %813
  %844 = landingpad { ptr, i32 }
          cleanup
  br label %853

845:                                              ; preds = %816, %814
  %846 = landingpad { ptr, i32 }
          cleanup
  br label %852

847:                                              ; preds = %818
  %848 = landingpad { ptr, i32 }
          cleanup
  br label %851

849:                                              ; preds = %823, %821, %819
  %850 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %851

851:                                              ; preds = %849, %847
  %.pn555 = phi { ptr, i32 } [ %850, %849 ], [ %848, %847 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #7
  br label %852

852:                                              ; preds = %851, %845
  %.pn555.pn = phi { ptr, i32 } [ %.pn555, %851 ], [ %846, %845 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %853

853:                                              ; preds = %852, %843
  %.pn555.pn.pn = phi { ptr, i32 } [ %.pn555.pn, %852 ], [ %844, %843 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #7
  br label %2506

854:                                              ; preds = %825, %801
  %855 = getelementptr inbounds i8, ptr %2, i64 340
  %856 = load i32, ptr %855, align 4, !tbaa !20
  %.not559 = icmp eq i32 %856, 2
  br i1 %.not559, label %907, label %857

857:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %858 unwind label %879

858:                                              ; preds = %857
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.203)
          to label %859 unwind label %881

859:                                              ; preds = %858
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull @.str.3)
          to label %860 unwind label %883

860:                                              ; preds = %859
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull @.str.204)
          to label %861 unwind label %885

861:                                              ; preds = %860
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull @.str.18)
          to label %862 unwind label %887

862:                                              ; preds = %861
  %863 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %864 unwind label %889

864:                                              ; preds = %862
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #7
  %865 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %866 unwind label %490

866:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %86) #7
  store i32 2, ptr %86, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 4 dereferenceable(4) %86)
          to label %867 unwind label %896

867:                                              ; preds = %866
  %868 = 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) %865, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %869 unwind label %898

869:                                              ; preds = %867
  %870 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %868, ptr noundef nonnull @.str.20)
          to label %871 unwind label %898

871:                                              ; preds = %869
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 4 dereferenceable(4) %855)
          to label %872 unwind label %900

872:                                              ; preds = %871
  %873 = 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) %870, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %874 unwind label %902

874:                                              ; preds = %872
  %875 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %873, ptr noundef nonnull @.str.21)
          to label %876 unwind label %902

876:                                              ; preds = %874
  %877 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %875, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %878 unwind label %902

878:                                              ; preds = %876
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #7
  invoke void @_Z4failv()
          to label %907 unwind label %490

879:                                              ; preds = %857
  %880 = landingpad { ptr, i32 }
          cleanup
  br label %895

881:                                              ; preds = %858
  %882 = landingpad { ptr, i32 }
          cleanup
  br label %894

883:                                              ; preds = %859
  %884 = landingpad { ptr, i32 }
          cleanup
  br label %893

885:                                              ; preds = %860
  %886 = landingpad { ptr, i32 }
          cleanup
  br label %892

887:                                              ; preds = %861
  %888 = landingpad { ptr, i32 }
          cleanup
  br label %891

889:                                              ; preds = %862
  %890 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %891

891:                                              ; preds = %889, %887
  %.pn560 = phi { ptr, i32 } [ %890, %889 ], [ %888, %887 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  br label %892

892:                                              ; preds = %891, %885
  %.pn560.pn = phi { ptr, i32 } [ %.pn560, %891 ], [ %886, %885 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  br label %893

893:                                              ; preds = %892, %883
  %.pn560.pn.pn = phi { ptr, i32 } [ %.pn560.pn, %892 ], [ %884, %883 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %894

894:                                              ; preds = %893, %881
  %.pn560.pn.pn.pn = phi { ptr, i32 } [ %.pn560.pn.pn, %893 ], [ %882, %881 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %895

895:                                              ; preds = %894, %879
  %.pn560.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn560.pn.pn.pn, %894 ], [ %880, %879 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #7
  br label %2506

896:                                              ; preds = %866
  %897 = landingpad { ptr, i32 }
          cleanup
  br label %906

898:                                              ; preds = %869, %867
  %899 = landingpad { ptr, i32 }
          cleanup
  br label %905

900:                                              ; preds = %871
  %901 = landingpad { ptr, i32 }
          cleanup
  br label %904

902:                                              ; preds = %876, %874, %872
  %903 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #7
  br label %904

904:                                              ; preds = %902, %900
  %.pn566 = phi { ptr, i32 } [ %903, %902 ], [ %901, %900 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #7
  br label %905

905:                                              ; preds = %904, %898
  %.pn566.pn = phi { ptr, i32 } [ %.pn566, %904 ], [ %899, %898 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %906

906:                                              ; preds = %905, %896
  %.pn566.pn.pn = phi { ptr, i32 } [ %.pn566.pn, %905 ], [ %897, %896 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #7
  br label %2506

907:                                              ; preds = %878, %854
  %908 = getelementptr inbounds i8, ptr %2, i64 344
  %909 = load i32, ptr %908, align 8, !tbaa !21
  %.not570 = icmp eq i32 %909, 3
  br i1 %.not570, label %960, label %910

910:                                              ; preds = %907
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %93) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %911 unwind label %932

911:                                              ; preds = %910
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull @.str.205)
          to label %912 unwind label %934

912:                                              ; preds = %911
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @.str.3)
          to label %913 unwind label %936

913:                                              ; preds = %912
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull @.str.206)
          to label %914 unwind label %938

914:                                              ; preds = %913
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull @.str.18)
          to label %915 unwind label %940

915:                                              ; preds = %914
  %916 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %917 unwind label %942

917:                                              ; preds = %915
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #7
  %918 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %919 unwind label %490

919:                                              ; preds = %917
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %95) #7
  store i32 3, ptr %95, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 4 dereferenceable(4) %95)
          to label %920 unwind label %949

920:                                              ; preds = %919
  %921 = 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) %918, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %922 unwind label %951

922:                                              ; preds = %920
  %923 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %921, ptr noundef nonnull @.str.20)
          to label %924 unwind label %951

924:                                              ; preds = %922
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %96) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 4 dereferenceable(4) %908)
          to label %925 unwind label %953

925:                                              ; preds = %924
  %926 = 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) %923, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %927 unwind label %955

927:                                              ; preds = %925
  %928 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %926, ptr noundef nonnull @.str.21)
          to label %929 unwind label %955

929:                                              ; preds = %927
  %930 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %928, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %931 unwind label %955

931:                                              ; preds = %929
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #7
  invoke void @_Z4failv()
          to label %960 unwind label %490

932:                                              ; preds = %910
  %933 = landingpad { ptr, i32 }
          cleanup
  br label %948

934:                                              ; preds = %911
  %935 = landingpad { ptr, i32 }
          cleanup
  br label %947

936:                                              ; preds = %912
  %937 = landingpad { ptr, i32 }
          cleanup
  br label %946

938:                                              ; preds = %913
  %939 = landingpad { ptr, i32 }
          cleanup
  br label %945

940:                                              ; preds = %914
  %941 = landingpad { ptr, i32 }
          cleanup
  br label %944

942:                                              ; preds = %915
  %943 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  br label %944

944:                                              ; preds = %942, %940
  %.pn571 = phi { ptr, i32 } [ %943, %942 ], [ %941, %940 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  br label %945

945:                                              ; preds = %944, %938
  %.pn571.pn = phi { ptr, i32 } [ %.pn571, %944 ], [ %939, %938 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  br label %946

946:                                              ; preds = %945, %936
  %.pn571.pn.pn = phi { ptr, i32 } [ %.pn571.pn, %945 ], [ %937, %936 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %947

947:                                              ; preds = %946, %934
  %.pn571.pn.pn.pn = phi { ptr, i32 } [ %.pn571.pn.pn, %946 ], [ %935, %934 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #7
  br label %948

948:                                              ; preds = %947, %932
  %.pn571.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn571.pn.pn.pn, %947 ], [ %933, %932 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %93) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #7
  br label %2506

949:                                              ; preds = %919
  %950 = landingpad { ptr, i32 }
          cleanup
  br label %959

951:                                              ; preds = %922, %920
  %952 = landingpad { ptr, i32 }
          cleanup
  br label %958

953:                                              ; preds = %924
  %954 = landingpad { ptr, i32 }
          cleanup
  br label %957

955:                                              ; preds = %929, %927, %925
  %956 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  br label %957

957:                                              ; preds = %955, %953
  %.pn577 = phi { ptr, i32 } [ %956, %955 ], [ %954, %953 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #7
  br label %958

958:                                              ; preds = %957, %951
  %.pn577.pn = phi { ptr, i32 } [ %.pn577, %957 ], [ %952, %951 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  br label %959

959:                                              ; preds = %958, %949
  %.pn577.pn.pn = phi { ptr, i32 } [ %.pn577.pn, %958 ], [ %950, %949 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #7
  br label %2506

960:                                              ; preds = %931, %907
  %961 = getelementptr inbounds i8, ptr %2, i64 348
  %962 = load i32, ptr %961, align 4, !tbaa !22
  %.not581 = icmp eq i32 %962, 4
  br i1 %.not581, label %1013, label %963

963:                                              ; preds = %960
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %101) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %102) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %102)
          to label %964 unwind label %985

964:                                              ; preds = %963
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 8 dereferenceable(32) %101, ptr noundef nonnull @.str.207)
          to label %965 unwind label %987

965:                                              ; preds = %964
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull @.str.3)
          to label %966 unwind label %989

966:                                              ; preds = %965
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull @.str.208)
          to label %967 unwind label %991

967:                                              ; preds = %966
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull @.str.18)
          to label %968 unwind label %993

968:                                              ; preds = %967
  %969 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %970 unwind label %995

970:                                              ; preds = %968
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %102) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #7
  %971 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %972 unwind label %490

972:                                              ; preds = %970
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %104) #7
  store i32 4, ptr %104, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 4 dereferenceable(4) %104)
          to label %973 unwind label %1002

973:                                              ; preds = %972
  %974 = 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) %971, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %975 unwind label %1004

975:                                              ; preds = %973
  %976 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %974, ptr noundef nonnull @.str.20)
          to label %977 unwind label %1004

977:                                              ; preds = %975
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 4 dereferenceable(4) %961)
          to label %978 unwind label %1006

978:                                              ; preds = %977
  %979 = 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) %976, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %980 unwind label %1008

980:                                              ; preds = %978
  %981 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %979, ptr noundef nonnull @.str.21)
          to label %982 unwind label %1008

982:                                              ; preds = %980
  %983 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %981, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %984 unwind label %1008

984:                                              ; preds = %982
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  invoke void @_Z4failv()
          to label %1013 unwind label %490

985:                                              ; preds = %963
  %986 = landingpad { ptr, i32 }
          cleanup
  br label %1001

987:                                              ; preds = %964
  %988 = landingpad { ptr, i32 }
          cleanup
  br label %1000

989:                                              ; preds = %965
  %990 = landingpad { ptr, i32 }
          cleanup
  br label %999

991:                                              ; preds = %966
  %992 = landingpad { ptr, i32 }
          cleanup
  br label %998

993:                                              ; preds = %967
  %994 = landingpad { ptr, i32 }
          cleanup
  br label %997

995:                                              ; preds = %968
  %996 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  br label %997

997:                                              ; preds = %995, %993
  %.pn582 = phi { ptr, i32 } [ %996, %995 ], [ %994, %993 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #7
  br label %998

998:                                              ; preds = %997, %991
  %.pn582.pn = phi { ptr, i32 } [ %.pn582, %997 ], [ %992, %991 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  br label %999

999:                                              ; preds = %998, %989
  %.pn582.pn.pn = phi { ptr, i32 } [ %.pn582.pn, %998 ], [ %990, %989 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %1000

1000:                                             ; preds = %999, %987
  %.pn582.pn.pn.pn = phi { ptr, i32 } [ %.pn582.pn.pn, %999 ], [ %988, %987 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #7
  br label %1001

1001:                                             ; preds = %1000, %985
  %.pn582.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn582.pn.pn.pn, %1000 ], [ %986, %985 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %102) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %102) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #7
  br label %2506

1002:                                             ; preds = %972
  %1003 = landingpad { ptr, i32 }
          cleanup
  br label %1012

1004:                                             ; preds = %975, %973
  %1005 = landingpad { ptr, i32 }
          cleanup
  br label %1011

1006:                                             ; preds = %977
  %1007 = landingpad { ptr, i32 }
          cleanup
  br label %1010

1008:                                             ; preds = %982, %980, %978
  %1009 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  br label %1010

1010:                                             ; preds = %1008, %1006
  %.pn588 = phi { ptr, i32 } [ %1009, %1008 ], [ %1007, %1006 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #7
  br label %1011

1011:                                             ; preds = %1010, %1004
  %.pn588.pn = phi { ptr, i32 } [ %.pn588, %1010 ], [ %1005, %1004 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  br label %1012

1012:                                             ; preds = %1011, %1002
  %.pn588.pn.pn = phi { ptr, i32 } [ %.pn588.pn, %1011 ], [ %1003, %1002 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #7
  br label %2506

1013:                                             ; preds = %984, %960
  %1014 = getelementptr inbounds i8, ptr %2, i64 352
  %1015 = load i32, ptr %1014, align 8, !tbaa !23
  %.not592 = icmp eq i32 %1015, 5
  br i1 %.not592, label %1066, label %1016

1016:                                             ; preds = %1013
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %111) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %1017 unwind label %1038

1017:                                             ; preds = %1016
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str.209)
          to label %1018 unwind label %1040

1018:                                             ; preds = %1017
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull @.str.3)
          to label %1019 unwind label %1042

1019:                                             ; preds = %1018
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 8 dereferenceable(32) %108, ptr noundef nonnull @.str.210)
          to label %1020 unwind label %1044

1020:                                             ; preds = %1019
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull @.str.18)
          to label %1021 unwind label %1046

1021:                                             ; preds = %1020
  %1022 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %1023 unwind label %1048

1023:                                             ; preds = %1021
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #7
  %1024 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1025 unwind label %490

1025:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %113) #7
  store i32 5, ptr %113, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 4 dereferenceable(4) %113)
          to label %1026 unwind label %1055

1026:                                             ; preds = %1025
  %1027 = 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) %1024, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %1028 unwind label %1057

1028:                                             ; preds = %1026
  %1029 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1027, ptr noundef nonnull @.str.20)
          to label %1030 unwind label %1057

1030:                                             ; preds = %1028
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef nonnull align 4 dereferenceable(4) %1014)
          to label %1031 unwind label %1059

1031:                                             ; preds = %1030
  %1032 = 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) %1029, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %1033 unwind label %1061

1033:                                             ; preds = %1031
  %1034 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1032, ptr noundef nonnull @.str.21)
          to label %1035 unwind label %1061

1035:                                             ; preds = %1033
  %1036 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1034, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1037 unwind label %1061

1037:                                             ; preds = %1035
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #7
  invoke void @_Z4failv()
          to label %1066 unwind label %490

1038:                                             ; preds = %1016
  %1039 = landingpad { ptr, i32 }
          cleanup
  br label %1054

1040:                                             ; preds = %1017
  %1041 = landingpad { ptr, i32 }
          cleanup
  br label %1053

1042:                                             ; preds = %1018
  %1043 = landingpad { ptr, i32 }
          cleanup
  br label %1052

1044:                                             ; preds = %1019
  %1045 = landingpad { ptr, i32 }
          cleanup
  br label %1051

1046:                                             ; preds = %1020
  %1047 = landingpad { ptr, i32 }
          cleanup
  br label %1050

1048:                                             ; preds = %1021
  %1049 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  br label %1050

1050:                                             ; preds = %1048, %1046
  %.pn593 = phi { ptr, i32 } [ %1049, %1048 ], [ %1047, %1046 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #7
  br label %1051

1051:                                             ; preds = %1050, %1044
  %.pn593.pn = phi { ptr, i32 } [ %.pn593, %1050 ], [ %1045, %1044 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1052

1052:                                             ; preds = %1051, %1042
  %.pn593.pn.pn = phi { ptr, i32 } [ %.pn593.pn, %1051 ], [ %1043, %1042 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1053

1053:                                             ; preds = %1052, %1040
  %.pn593.pn.pn.pn = phi { ptr, i32 } [ %.pn593.pn.pn, %1052 ], [ %1041, %1040 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  br label %1054

1054:                                             ; preds = %1053, %1038
  %.pn593.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn593.pn.pn.pn, %1053 ], [ %1039, %1038 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #7
  br label %2506

1055:                                             ; preds = %1025
  %1056 = landingpad { ptr, i32 }
          cleanup
  br label %1065

1057:                                             ; preds = %1028, %1026
  %1058 = landingpad { ptr, i32 }
          cleanup
  br label %1064

1059:                                             ; preds = %1030
  %1060 = landingpad { ptr, i32 }
          cleanup
  br label %1063

1061:                                             ; preds = %1035, %1033, %1031
  %1062 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  br label %1063

1063:                                             ; preds = %1061, %1059
  %.pn599 = phi { ptr, i32 } [ %1062, %1061 ], [ %1060, %1059 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #7
  br label %1064

1064:                                             ; preds = %1063, %1057
  %.pn599.pn = phi { ptr, i32 } [ %.pn599, %1063 ], [ %1058, %1057 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #7
  br label %1065

1065:                                             ; preds = %1064, %1055
  %.pn599.pn.pn = phi { ptr, i32 } [ %.pn599.pn, %1064 ], [ %1056, %1055 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %113) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #7
  br label %2506

1066:                                             ; preds = %1037, %1013
  %1067 = getelementptr inbounds i8, ptr %2, i64 356
  %1068 = load i32, ptr %1067, align 4, !tbaa !24
  %.not603 = icmp eq i32 %1068, 1
  br i1 %.not603, label %1119, label %1069

1069:                                             ; preds = %1066
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %1070 unwind label %1091

1070:                                             ; preds = %1069
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %118, ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.211)
          to label %1071 unwind label %1093

1071:                                             ; preds = %1070
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull @.str.3)
          to label %1072 unwind label %1095

1072:                                             ; preds = %1071
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull @.str.212)
          to label %1073 unwind label %1097

1073:                                             ; preds = %1072
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %115, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef nonnull @.str.18)
          to label %1074 unwind label %1099

1074:                                             ; preds = %1073
  %1075 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %1076 unwind label %1101

1076:                                             ; preds = %1074
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #7
  %1077 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1078 unwind label %490

1078:                                             ; preds = %1076
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %121) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %122) #7
  store i32 1, ptr %122, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %121, ptr noundef nonnull align 4 dereferenceable(4) %122)
          to label %1079 unwind label %1108

1079:                                             ; preds = %1078
  %1080 = 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) %1077, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %1081 unwind label %1110

1081:                                             ; preds = %1079
  %1082 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1080, ptr noundef nonnull @.str.20)
          to label %1083 unwind label %1110

1083:                                             ; preds = %1081
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %123) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %123, ptr noundef nonnull align 4 dereferenceable(4) %1067)
          to label %1084 unwind label %1112

1084:                                             ; preds = %1083
  %1085 = 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) %1082, ptr noundef nonnull align 8 dereferenceable(32) %123)
          to label %1086 unwind label %1114

1086:                                             ; preds = %1084
  %1087 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1085, ptr noundef nonnull @.str.21)
          to label %1088 unwind label %1114

1088:                                             ; preds = %1086
  %1089 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1087, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1090 unwind label %1114

1090:                                             ; preds = %1088
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %122) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #7
  invoke void @_Z4failv()
          to label %1119 unwind label %490

1091:                                             ; preds = %1069
  %1092 = landingpad { ptr, i32 }
          cleanup
  br label %1107

1093:                                             ; preds = %1070
  %1094 = landingpad { ptr, i32 }
          cleanup
  br label %1106

1095:                                             ; preds = %1071
  %1096 = landingpad { ptr, i32 }
          cleanup
  br label %1105

1097:                                             ; preds = %1072
  %1098 = landingpad { ptr, i32 }
          cleanup
  br label %1104

1099:                                             ; preds = %1073
  %1100 = landingpad { ptr, i32 }
          cleanup
  br label %1103

1101:                                             ; preds = %1074
  %1102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  br label %1103

1103:                                             ; preds = %1101, %1099
  %.pn604 = phi { ptr, i32 } [ %1102, %1101 ], [ %1100, %1099 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1104

1104:                                             ; preds = %1103, %1097
  %.pn604.pn = phi { ptr, i32 } [ %.pn604, %1103 ], [ %1098, %1097 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1105

1105:                                             ; preds = %1104, %1095
  %.pn604.pn.pn = phi { ptr, i32 } [ %.pn604.pn, %1104 ], [ %1096, %1095 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  br label %1106

1106:                                             ; preds = %1105, %1093
  %.pn604.pn.pn.pn = phi { ptr, i32 } [ %.pn604.pn.pn, %1105 ], [ %1094, %1093 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  br label %1107

1107:                                             ; preds = %1106, %1091
  %.pn604.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn604.pn.pn.pn, %1106 ], [ %1092, %1091 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #7
  br label %2506

1108:                                             ; preds = %1078
  %1109 = landingpad { ptr, i32 }
          cleanup
  br label %1118

1110:                                             ; preds = %1081, %1079
  %1111 = landingpad { ptr, i32 }
          cleanup
  br label %1117

1112:                                             ; preds = %1083
  %1113 = landingpad { ptr, i32 }
          cleanup
  br label %1116

1114:                                             ; preds = %1088, %1086, %1084
  %1115 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #7
  br label %1116

1116:                                             ; preds = %1114, %1112
  %.pn610 = phi { ptr, i32 } [ %1115, %1114 ], [ %1113, %1112 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #7
  br label %1117

1117:                                             ; preds = %1116, %1110
  %.pn610.pn = phi { ptr, i32 } [ %.pn610, %1116 ], [ %1111, %1110 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #7
  br label %1118

1118:                                             ; preds = %1117, %1108
  %.pn610.pn.pn = phi { ptr, i32 } [ %.pn610.pn, %1117 ], [ %1109, %1108 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %122) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #7
  br label %2506

1119:                                             ; preds = %1090, %1066
  %1120 = getelementptr inbounds i8, ptr %2, i64 360
  %1121 = load i32, ptr %1120, align 8, !tbaa !25
  %.not614 = icmp eq i32 %1121, 1
  br i1 %.not614, label %1172, label %1122

1122:                                             ; preds = %1119
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %125) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %129) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %1123 unwind label %1144

1123:                                             ; preds = %1122
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull @.str.213)
          to label %1124 unwind label %1146

1124:                                             ; preds = %1123
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull @.str.3)
          to label %1125 unwind label %1148

1125:                                             ; preds = %1124
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %125, ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull @.str.214)
          to label %1126 unwind label %1150

1126:                                             ; preds = %1125
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %124, ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull @.str.18)
          to label %1127 unwind label %1152

1127:                                             ; preds = %1126
  %1128 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %124)
          to label %1129 unwind label %1154

1129:                                             ; preds = %1127
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #7
  %1130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1131 unwind label %490

1131:                                             ; preds = %1129
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %130) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %131) #7
  store i32 1, ptr %131, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr noundef nonnull align 4 dereferenceable(4) %131)
          to label %1132 unwind label %1161

1132:                                             ; preds = %1131
  %1133 = 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) %1130, ptr noundef nonnull align 8 dereferenceable(32) %130)
          to label %1134 unwind label %1163

1134:                                             ; preds = %1132
  %1135 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1133, ptr noundef nonnull @.str.20)
          to label %1136 unwind label %1163

1136:                                             ; preds = %1134
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %132) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %132, ptr noundef nonnull align 4 dereferenceable(4) %1120)
          to label %1137 unwind label %1165

1137:                                             ; preds = %1136
  %1138 = 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) %1135, ptr noundef nonnull align 8 dereferenceable(32) %132)
          to label %1139 unwind label %1167

1139:                                             ; preds = %1137
  %1140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1138, ptr noundef nonnull @.str.21)
          to label %1141 unwind label %1167

1141:                                             ; preds = %1139
  %1142 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1140, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1143 unwind label %1167

1143:                                             ; preds = %1141
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %131) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #7
  invoke void @_Z4failv()
          to label %1172 unwind label %490

1144:                                             ; preds = %1122
  %1145 = landingpad { ptr, i32 }
          cleanup
  br label %1160

1146:                                             ; preds = %1123
  %1147 = landingpad { ptr, i32 }
          cleanup
  br label %1159

1148:                                             ; preds = %1124
  %1149 = landingpad { ptr, i32 }
          cleanup
  br label %1158

1150:                                             ; preds = %1125
  %1151 = landingpad { ptr, i32 }
          cleanup
  br label %1157

1152:                                             ; preds = %1126
  %1153 = landingpad { ptr, i32 }
          cleanup
  br label %1156

1154:                                             ; preds = %1127
  %1155 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #7
  br label %1156

1156:                                             ; preds = %1154, %1152
  %.pn615 = phi { ptr, i32 } [ %1155, %1154 ], [ %1153, %1152 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #7
  br label %1157

1157:                                             ; preds = %1156, %1150
  %.pn615.pn = phi { ptr, i32 } [ %.pn615, %1156 ], [ %1151, %1150 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #7
  br label %1158

1158:                                             ; preds = %1157, %1148
  %.pn615.pn.pn = phi { ptr, i32 } [ %.pn615.pn, %1157 ], [ %1149, %1148 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  br label %1159

1159:                                             ; preds = %1158, %1146
  %.pn615.pn.pn.pn = phi { ptr, i32 } [ %.pn615.pn.pn, %1158 ], [ %1147, %1146 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #7
  br label %1160

1160:                                             ; preds = %1159, %1144
  %.pn615.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn615.pn.pn.pn, %1159 ], [ %1145, %1144 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %129) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #7
  br label %2506

1161:                                             ; preds = %1131
  %1162 = landingpad { ptr, i32 }
          cleanup
  br label %1171

1163:                                             ; preds = %1134, %1132
  %1164 = landingpad { ptr, i32 }
          cleanup
  br label %1170

1165:                                             ; preds = %1136
  %1166 = landingpad { ptr, i32 }
          cleanup
  br label %1169

1167:                                             ; preds = %1141, %1139, %1137
  %1168 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #7
  br label %1169

1169:                                             ; preds = %1167, %1165
  %.pn621 = phi { ptr, i32 } [ %1168, %1167 ], [ %1166, %1165 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #7
  br label %1170

1170:                                             ; preds = %1169, %1163
  %.pn621.pn = phi { ptr, i32 } [ %.pn621, %1169 ], [ %1164, %1163 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #7
  br label %1171

1171:                                             ; preds = %1170, %1161
  %.pn621.pn.pn = phi { ptr, i32 } [ %.pn621.pn, %1170 ], [ %1162, %1161 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %131) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #7
  br label %2506

1172:                                             ; preds = %1143, %1119
  %1173 = getelementptr inbounds i8, ptr %2, i64 364
  %1174 = load i32, ptr %1173, align 4, !tbaa !26
  %.not625 = icmp eq i32 %1174, 2
  br i1 %.not625, label %1225, label %1175

1175:                                             ; preds = %1172
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %133) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %134) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %135) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %136) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %137) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %138) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %138)
          to label %1176 unwind label %1197

1176:                                             ; preds = %1175
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %136, ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull @.str.215)
          to label %1177 unwind label %1199

1177:                                             ; preds = %1176
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %135, ptr noundef nonnull align 8 dereferenceable(32) %136, ptr noundef nonnull @.str.3)
          to label %1178 unwind label %1201

1178:                                             ; preds = %1177
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %134, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull @.str.216)
          to label %1179 unwind label %1203

1179:                                             ; preds = %1178
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %133, ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull @.str.18)
          to label %1180 unwind label %1205

1180:                                             ; preds = %1179
  %1181 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %133)
          to label %1182 unwind label %1207

1182:                                             ; preds = %1180
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %138) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #7
  %1183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1184 unwind label %490

1184:                                             ; preds = %1182
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %139) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %140) #7
  store i32 2, ptr %140, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %139, ptr noundef nonnull align 4 dereferenceable(4) %140)
          to label %1185 unwind label %1214

1185:                                             ; preds = %1184
  %1186 = 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) %1183, ptr noundef nonnull align 8 dereferenceable(32) %139)
          to label %1187 unwind label %1216

1187:                                             ; preds = %1185
  %1188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1186, ptr noundef nonnull @.str.20)
          to label %1189 unwind label %1216

1189:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %141) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %141, ptr noundef nonnull align 4 dereferenceable(4) %1173)
          to label %1190 unwind label %1218

1190:                                             ; preds = %1189
  %1191 = 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) %1188, ptr noundef nonnull align 8 dereferenceable(32) %141)
          to label %1192 unwind label %1220

1192:                                             ; preds = %1190
  %1193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1191, ptr noundef nonnull @.str.21)
          to label %1194 unwind label %1220

1194:                                             ; preds = %1192
  %1195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1193, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1196 unwind label %1220

1196:                                             ; preds = %1194
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %140) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #7
  invoke void @_Z4failv()
          to label %1225 unwind label %490

1197:                                             ; preds = %1175
  %1198 = landingpad { ptr, i32 }
          cleanup
  br label %1213

1199:                                             ; preds = %1176
  %1200 = landingpad { ptr, i32 }
          cleanup
  br label %1212

1201:                                             ; preds = %1177
  %1202 = landingpad { ptr, i32 }
          cleanup
  br label %1211

1203:                                             ; preds = %1178
  %1204 = landingpad { ptr, i32 }
          cleanup
  br label %1210

1205:                                             ; preds = %1179
  %1206 = landingpad { ptr, i32 }
          cleanup
  br label %1209

1207:                                             ; preds = %1180
  %1208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1209

1209:                                             ; preds = %1207, %1205
  %.pn626 = phi { ptr, i32 } [ %1208, %1207 ], [ %1206, %1205 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #7
  br label %1210

1210:                                             ; preds = %1209, %1203
  %.pn626.pn = phi { ptr, i32 } [ %.pn626, %1209 ], [ %1204, %1203 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #7
  br label %1211

1211:                                             ; preds = %1210, %1201
  %.pn626.pn.pn = phi { ptr, i32 } [ %.pn626.pn, %1210 ], [ %1202, %1201 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #7
  br label %1212

1212:                                             ; preds = %1211, %1199
  %.pn626.pn.pn.pn = phi { ptr, i32 } [ %.pn626.pn.pn, %1211 ], [ %1200, %1199 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #7
  br label %1213

1213:                                             ; preds = %1212, %1197
  %.pn626.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn626.pn.pn.pn, %1212 ], [ %1198, %1197 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %138) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %137) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %135) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %133) #7
  br label %2506

1214:                                             ; preds = %1184
  %1215 = landingpad { ptr, i32 }
          cleanup
  br label %1224

1216:                                             ; preds = %1187, %1185
  %1217 = landingpad { ptr, i32 }
          cleanup
  br label %1223

1218:                                             ; preds = %1189
  %1219 = landingpad { ptr, i32 }
          cleanup
  br label %1222

1220:                                             ; preds = %1194, %1192, %1190
  %1221 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #7
  br label %1222

1222:                                             ; preds = %1220, %1218
  %.pn632 = phi { ptr, i32 } [ %1221, %1220 ], [ %1219, %1218 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #7
  br label %1223

1223:                                             ; preds = %1222, %1216
  %.pn632.pn = phi { ptr, i32 } [ %.pn632, %1222 ], [ %1217, %1216 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #7
  br label %1224

1224:                                             ; preds = %1223, %1214
  %.pn632.pn.pn = phi { ptr, i32 } [ %.pn632.pn, %1223 ], [ %1215, %1214 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %140) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #7
  br label %2506

1225:                                             ; preds = %1196, %1172
  %1226 = getelementptr inbounds i8, ptr %2, i64 368
  %1227 = load i32, ptr %1226, align 8, !tbaa !27
  %.not636 = icmp eq i32 %1227, 1
  br i1 %.not636, label %1278, label %1228

1228:                                             ; preds = %1225
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %142) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %143) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %144) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %145) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %147) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %147)
          to label %1229 unwind label %1250

1229:                                             ; preds = %1228
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %145, ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull @.str.217)
          to label %1230 unwind label %1252

1230:                                             ; preds = %1229
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %144, ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull @.str.3)
          to label %1231 unwind label %1254

1231:                                             ; preds = %1230
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %143, ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull @.str.218)
          to label %1232 unwind label %1256

1232:                                             ; preds = %1231
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %142, ptr noundef nonnull align 8 dereferenceable(32) %143, ptr noundef nonnull @.str.18)
          to label %1233 unwind label %1258

1233:                                             ; preds = %1232
  %1234 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1235 unwind label %1260

1235:                                             ; preds = %1233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %145) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %143) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #7
  %1236 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1237 unwind label %490

1237:                                             ; preds = %1235
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %148) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %149) #7
  store i32 1, ptr %149, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %148, ptr noundef nonnull align 4 dereferenceable(4) %149)
          to label %1238 unwind label %1267

1238:                                             ; preds = %1237
  %1239 = 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) %1236, ptr noundef nonnull align 8 dereferenceable(32) %148)
          to label %1240 unwind label %1269

1240:                                             ; preds = %1238
  %1241 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1239, ptr noundef nonnull @.str.20)
          to label %1242 unwind label %1269

1242:                                             ; preds = %1240
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %150, ptr noundef nonnull align 4 dereferenceable(4) %1226)
          to label %1243 unwind label %1271

1243:                                             ; preds = %1242
  %1244 = 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) %1241, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1245 unwind label %1273

1245:                                             ; preds = %1243
  %1246 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1244, ptr noundef nonnull @.str.21)
          to label %1247 unwind label %1273

1247:                                             ; preds = %1245
  %1248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1246, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1249 unwind label %1273

1249:                                             ; preds = %1247
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %149) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #7
  invoke void @_Z4failv()
          to label %1278 unwind label %490

1250:                                             ; preds = %1228
  %1251 = landingpad { ptr, i32 }
          cleanup
  br label %1266

1252:                                             ; preds = %1229
  %1253 = landingpad { ptr, i32 }
          cleanup
  br label %1265

1254:                                             ; preds = %1230
  %1255 = landingpad { ptr, i32 }
          cleanup
  br label %1264

1256:                                             ; preds = %1231
  %1257 = landingpad { ptr, i32 }
          cleanup
  br label %1263

1258:                                             ; preds = %1232
  %1259 = landingpad { ptr, i32 }
          cleanup
  br label %1262

1260:                                             ; preds = %1233
  %1261 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #7
  br label %1262

1262:                                             ; preds = %1260, %1258
  %.pn637 = phi { ptr, i32 } [ %1261, %1260 ], [ %1259, %1258 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #7
  br label %1263

1263:                                             ; preds = %1262, %1256
  %.pn637.pn = phi { ptr, i32 } [ %.pn637, %1262 ], [ %1257, %1256 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #7
  br label %1264

1264:                                             ; preds = %1263, %1254
  %.pn637.pn.pn = phi { ptr, i32 } [ %.pn637.pn, %1263 ], [ %1255, %1254 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #7
  br label %1265

1265:                                             ; preds = %1264, %1252
  %.pn637.pn.pn.pn = phi { ptr, i32 } [ %.pn637.pn.pn, %1264 ], [ %1253, %1252 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #7
  br label %1266

1266:                                             ; preds = %1265, %1250
  %.pn637.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn637.pn.pn.pn, %1265 ], [ %1251, %1250 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %147) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %147) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %145) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %144) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %143) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %142) #7
  br label %2506

1267:                                             ; preds = %1237
  %1268 = landingpad { ptr, i32 }
          cleanup
  br label %1277

1269:                                             ; preds = %1240, %1238
  %1270 = landingpad { ptr, i32 }
          cleanup
  br label %1276

1271:                                             ; preds = %1242
  %1272 = landingpad { ptr, i32 }
          cleanup
  br label %1275

1273:                                             ; preds = %1247, %1245, %1243
  %1274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #7
  br label %1275

1275:                                             ; preds = %1273, %1271
  %.pn643 = phi { ptr, i32 } [ %1274, %1273 ], [ %1272, %1271 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #7
  br label %1276

1276:                                             ; preds = %1275, %1269
  %.pn643.pn = phi { ptr, i32 } [ %.pn643, %1275 ], [ %1270, %1269 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #7
  br label %1277

1277:                                             ; preds = %1276, %1267
  %.pn643.pn.pn = phi { ptr, i32 } [ %.pn643.pn, %1276 ], [ %1268, %1267 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %149) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #7
  br label %2506

1278:                                             ; preds = %1249, %1225
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %151) #7
  invoke void @_Z17extractChunkNamesB5cxx11RKSt6vectorIhSaIhEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %151, ptr noundef nonnull align 8 dereferenceable(24) %1)
          to label %1279 unwind label %1304

1279:                                             ; preds = %1278
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %152) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %153) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull @.str.219, ptr noundef nonnull align 1 dereferenceable(1) %153)
          to label %1280 unwind label %1306

1280:                                             ; preds = %1279
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %153) #7
  %1281 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull align 8 dereferenceable(32) %151) #7
  br i1 %1281, label %1282, label %1338

1282:                                             ; preds = %1280
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %154) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %155) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %156) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %157) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %158) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %159) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %1283 unwind label %1308

1283:                                             ; preds = %1282
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %157, ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull @.str.220)
          to label %1284 unwind label %1310

1284:                                             ; preds = %1283
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %156, ptr noundef nonnull align 8 dereferenceable(32) %157, ptr noundef nonnull @.str.3)
          to label %1285 unwind label %1312

1285:                                             ; preds = %1284
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %155, ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull @.str.221)
          to label %1286 unwind label %1314

1286:                                             ; preds = %1285
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %154, ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull @.str.18)
          to label %1287 unwind label %1316

1287:                                             ; preds = %1286
  %1288 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %1289 unwind label %1318

1289:                                             ; preds = %1287
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %159) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #7
  %1290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1291 unwind label %1325

1291:                                             ; preds = %1289
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %160) #7
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %160, ptr noundef nonnull align 8 dereferenceable(32) %152)
          to label %1292 unwind label %1327

1292:                                             ; preds = %1291
  %1293 = 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) %1290, ptr noundef nonnull align 8 dereferenceable(32) %160)
          to label %1294 unwind label %1329

1294:                                             ; preds = %1292
  %1295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1293, ptr noundef nonnull @.str.20)
          to label %1296 unwind label %1329

1296:                                             ; preds = %1294
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %161) #7
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %161, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %1297 unwind label %1331

1297:                                             ; preds = %1296
  %1298 = 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) %1295, ptr noundef nonnull align 8 dereferenceable(32) %161)
          to label %1299 unwind label %1333

1299:                                             ; preds = %1297
  %1300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1298, ptr noundef nonnull @.str.21)
          to label %1301 unwind label %1333

1301:                                             ; preds = %1299
  %1302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1300, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1303 unwind label %1333

1303:                                             ; preds = %1301
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #7
  invoke void @_Z4failv()
          to label %1338 unwind label %1325

1304:                                             ; preds = %1278
  %1305 = landingpad { ptr, i32 }
          cleanup
  br label %2505

1306:                                             ; preds = %1279
  %1307 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %153) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %153) #7
  br label %2504

1308:                                             ; preds = %1282
  %1309 = landingpad { ptr, i32 }
          cleanup
  br label %1324

1310:                                             ; preds = %1283
  %1311 = landingpad { ptr, i32 }
          cleanup
  br label %1323

1312:                                             ; preds = %1284
  %1313 = landingpad { ptr, i32 }
          cleanup
  br label %1322

1314:                                             ; preds = %1285
  %1315 = landingpad { ptr, i32 }
          cleanup
  br label %1321

1316:                                             ; preds = %1286
  %1317 = landingpad { ptr, i32 }
          cleanup
  br label %1320

1318:                                             ; preds = %1287
  %1319 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #7
  br label %1320

1320:                                             ; preds = %1318, %1316
  %.pn647 = phi { ptr, i32 } [ %1319, %1318 ], [ %1317, %1316 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #7
  br label %1321

1321:                                             ; preds = %1320, %1314
  %.pn647.pn = phi { ptr, i32 } [ %.pn647, %1320 ], [ %1315, %1314 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1322

1322:                                             ; preds = %1321, %1312
  %.pn647.pn.pn = phi { ptr, i32 } [ %.pn647.pn, %1321 ], [ %1313, %1312 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #7
  br label %1323

1323:                                             ; preds = %1322, %1310
  %.pn647.pn.pn.pn = phi { ptr, i32 } [ %.pn647.pn.pn, %1322 ], [ %1311, %1310 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #7
  br label %1324

1324:                                             ; preds = %1323, %1308
  %.pn647.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn647.pn.pn.pn, %1323 ], [ %1309, %1308 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %159) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %158) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %154) #7
  br label %2503

1325:                                             ; preds = %2422, %2403, %2349, %2330, %2276, %2257, %2203, %2184, %2130, %2112, %2058, %2040, %1986, %1968, %1914, %1896, %1853, %1839, %1789, %1769, %1714, %1695, %1641, %1622, %1568, %1549, %1495, %1477, %1423, %1405, %1362, %1348, %1303, %1289
  %1326 = landingpad { ptr, i32 }
          cleanup
  br label %2503

1327:                                             ; preds = %1291
  %1328 = landingpad { ptr, i32 }
          cleanup
  br label %1337

1329:                                             ; preds = %1294, %1292
  %1330 = landingpad { ptr, i32 }
          cleanup
  br label %1336

1331:                                             ; preds = %1296
  %1332 = landingpad { ptr, i32 }
          cleanup
  br label %1335

1333:                                             ; preds = %1301, %1299, %1297
  %1334 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %161) #7
  br label %1335

1335:                                             ; preds = %1333, %1331
  %.pn653 = phi { ptr, i32 } [ %1334, %1333 ], [ %1332, %1331 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %161) #7
  br label %1336

1336:                                             ; preds = %1335, %1329
  %.pn653.pn = phi { ptr, i32 } [ %.pn653, %1335 ], [ %1330, %1329 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #7
  br label %1337

1337:                                             ; preds = %1336, %1327
  %.pn653.pn.pn = phi { ptr, i32 } [ %.pn653.pn, %1336 ], [ %1328, %1327 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #7
  br label %2503

1338:                                             ; preds = %1303, %1280
  %1339 = getelementptr inbounds i8, ptr %2, i64 264
  %1340 = load i64, ptr %1339, align 8, !tbaa !28
  %.not657 = icmp eq i64 %1340, 3
  br i1 %.not657, label %1391, label %1341

1341:                                             ; preds = %1338
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %162) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %163) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %164) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %165) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %166) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %167) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %167)
          to label %1342 unwind label %1363

1342:                                             ; preds = %1341
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %165, ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull @.str.222)
          to label %1343 unwind label %1365

1343:                                             ; preds = %1342
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %164, ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull @.str.3)
          to label %1344 unwind label %1367

1344:                                             ; preds = %1343
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %163, ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull @.str.223)
          to label %1345 unwind label %1369

1345:                                             ; preds = %1344
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %162, ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef nonnull @.str.18)
          to label %1346 unwind label %1371

1346:                                             ; preds = %1345
  %1347 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %1348 unwind label %1373

1348:                                             ; preds = %1346
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %167) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %166) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #7
  %1349 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1350 unwind label %1325

1350:                                             ; preds = %1348
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %168) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %169) #7
  store i32 3, ptr %169, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %168, ptr noundef nonnull align 4 dereferenceable(4) %169)
          to label %1351 unwind label %1380

1351:                                             ; preds = %1350
  %1352 = 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) %1349, ptr noundef nonnull align 8 dereferenceable(32) %168)
          to label %1353 unwind label %1382

1353:                                             ; preds = %1351
  %1354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1352, ptr noundef nonnull @.str.20)
          to label %1355 unwind label %1382

1355:                                             ; preds = %1353
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %170) #7
  invoke void @_Z8valtostrImENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %170, ptr noundef nonnull align 8 dereferenceable(8) %1339)
          to label %1356 unwind label %1384

1356:                                             ; preds = %1355
  %1357 = 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) %1354, ptr noundef nonnull align 8 dereferenceable(32) %170)
          to label %1358 unwind label %1386

1358:                                             ; preds = %1356
  %1359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1357, ptr noundef nonnull @.str.21)
          to label %1360 unwind label %1386

1360:                                             ; preds = %1358
  %1361 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1359, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1362 unwind label %1386

1362:                                             ; preds = %1360
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %170) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %169) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %168) #7
  invoke void @_Z4failv()
          to label %1391 unwind label %1325

1363:                                             ; preds = %1341
  %1364 = landingpad { ptr, i32 }
          cleanup
  br label %1379

1365:                                             ; preds = %1342
  %1366 = landingpad { ptr, i32 }
          cleanup
  br label %1378

1367:                                             ; preds = %1343
  %1368 = landingpad { ptr, i32 }
          cleanup
  br label %1377

1369:                                             ; preds = %1344
  %1370 = landingpad { ptr, i32 }
          cleanup
  br label %1376

1371:                                             ; preds = %1345
  %1372 = landingpad { ptr, i32 }
          cleanup
  br label %1375

1373:                                             ; preds = %1346
  %1374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #7
  br label %1375

1375:                                             ; preds = %1373, %1371
  %.pn658 = phi { ptr, i32 } [ %1374, %1373 ], [ %1372, %1371 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #7
  br label %1376

1376:                                             ; preds = %1375, %1369
  %.pn658.pn = phi { ptr, i32 } [ %.pn658, %1375 ], [ %1370, %1369 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #7
  br label %1377

1377:                                             ; preds = %1376, %1367
  %.pn658.pn.pn = phi { ptr, i32 } [ %.pn658.pn, %1376 ], [ %1368, %1367 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %165) #7
  br label %1378

1378:                                             ; preds = %1377, %1365
  %.pn658.pn.pn.pn = phi { ptr, i32 } [ %.pn658.pn.pn, %1377 ], [ %1366, %1365 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  br label %1379

1379:                                             ; preds = %1378, %1363
  %.pn658.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn658.pn.pn.pn, %1378 ], [ %1364, %1363 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %167) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %167) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %166) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %165) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %164) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %163) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #7
  br label %2503

1380:                                             ; preds = %1350
  %1381 = landingpad { ptr, i32 }
          cleanup
  br label %1390

1382:                                             ; preds = %1353, %1351
  %1383 = landingpad { ptr, i32 }
          cleanup
  br label %1389

1384:                                             ; preds = %1355
  %1385 = landingpad { ptr, i32 }
          cleanup
  br label %1388

1386:                                             ; preds = %1360, %1358, %1356
  %1387 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #7
  br label %1388

1388:                                             ; preds = %1386, %1384
  %.pn664 = phi { ptr, i32 } [ %1387, %1386 ], [ %1385, %1384 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %170) #7
  br label %1389

1389:                                             ; preds = %1388, %1382
  %.pn664.pn = phi { ptr, i32 } [ %.pn664, %1388 ], [ %1383, %1382 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #7
  br label %1390

1390:                                             ; preds = %1389, %1380
  %.pn664.pn.pn = phi { ptr, i32 } [ %.pn664.pn, %1389 ], [ %1381, %1380 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %169) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %168) #7
  br label %2503

1391:                                             ; preds = %1362, %1338
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %171) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %172) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef nonnull @.str.165, ptr noundef nonnull align 1 dereferenceable(1) %172)
          to label %1392 unwind label %1424

1392:                                             ; preds = %1391
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %173) #7
  %1393 = getelementptr inbounds i8, ptr %2, i64 272
  %1394 = load ptr, ptr %1393, align 8, !tbaa !29
  %1395 = load ptr, ptr %1394, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %174) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %173, ptr noundef %1395, ptr noundef nonnull align 1 dereferenceable(1) %174)
          to label %1396 unwind label %1426

1396:                                             ; preds = %1392
  %1397 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %171, ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %173) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %174) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %172) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #7
  br i1 %1397, label %1398, label %1463

1398:                                             ; preds = %1396
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %175) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %176) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %177) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %178) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %179) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %180) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %180)
          to label %1399 unwind label %1429

1399:                                             ; preds = %1398
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %178, ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef nonnull @.str.224)
          to label %1400 unwind label %1431

1400:                                             ; preds = %1399
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %177, ptr noundef nonnull align 8 dereferenceable(32) %178, ptr noundef nonnull @.str.3)
          to label %1401 unwind label %1433

1401:                                             ; preds = %1400
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %176, ptr noundef nonnull align 8 dereferenceable(32) %177, ptr noundef nonnull @.str.225)
          to label %1402 unwind label %1435

1402:                                             ; preds = %1401
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %175, ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull @.str.18)
          to label %1403 unwind label %1437

1403:                                             ; preds = %1402
  %1404 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %175)
          to label %1405 unwind label %1439

1405:                                             ; preds = %1403
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %180) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %177) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #7
  %1406 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1407 unwind label %1325

1407:                                             ; preds = %1405
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %181) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %182) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %183) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull @.str.165, ptr noundef nonnull align 1 dereferenceable(1) %183)
          to label %1408 unwind label %1446

1408:                                             ; preds = %1407
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %181, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %1409 unwind label %1448

1409:                                             ; preds = %1408
  %1410 = 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) %1406, ptr noundef nonnull align 8 dereferenceable(32) %181)
          to label %1411 unwind label %1450

1411:                                             ; preds = %1409
  %1412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1410, ptr noundef nonnull @.str.20)
          to label %1413 unwind label %1450

1413:                                             ; preds = %1411
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %184) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %185) #7
  %1414 = load ptr, ptr %1393, align 8, !tbaa !29
  %1415 = load ptr, ptr %1414, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %186) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %185, ptr noundef %1415, ptr noundef nonnull align 1 dereferenceable(1) %186)
          to label %1416 unwind label %1452

1416:                                             ; preds = %1413
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %184, ptr noundef nonnull align 8 dereferenceable(32) %185)
          to label %1417 unwind label %1454

1417:                                             ; preds = %1416
  %1418 = 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) %1412, ptr noundef nonnull align 8 dereferenceable(32) %184)
          to label %1419 unwind label %1456

1419:                                             ; preds = %1417
  %1420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1418, ptr noundef nonnull @.str.21)
          to label %1421 unwind label %1456

1421:                                             ; preds = %1419
  %1422 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1420, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1423 unwind label %1456

1423:                                             ; preds = %1421
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %186) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %183) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %182) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %181) #7
  invoke void @_Z4failv()
          to label %1463 unwind label %1325

1424:                                             ; preds = %1391
  %1425 = landingpad { ptr, i32 }
          cleanup
  br label %1428

1426:                                             ; preds = %1392
  %1427 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %174) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %174) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %173) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #7
  br label %1428

1428:                                             ; preds = %1426, %1424
  %.pn668 = phi { ptr, i32 } [ %1427, %1426 ], [ %1425, %1424 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %172) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %171) #7
  br label %2503

1429:                                             ; preds = %1398
  %1430 = landingpad { ptr, i32 }
          cleanup
  br label %1445

1431:                                             ; preds = %1399
  %1432 = landingpad { ptr, i32 }
          cleanup
  br label %1444

1433:                                             ; preds = %1400
  %1434 = landingpad { ptr, i32 }
          cleanup
  br label %1443

1435:                                             ; preds = %1401
  %1436 = landingpad { ptr, i32 }
          cleanup
  br label %1442

1437:                                             ; preds = %1402
  %1438 = landingpad { ptr, i32 }
          cleanup
  br label %1441

1439:                                             ; preds = %1403
  %1440 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #7
  br label %1441

1441:                                             ; preds = %1439, %1437
  %.pn670 = phi { ptr, i32 } [ %1440, %1439 ], [ %1438, %1437 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #7
  br label %1442

1442:                                             ; preds = %1441, %1435
  %.pn670.pn = phi { ptr, i32 } [ %.pn670, %1441 ], [ %1436, %1435 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #7
  br label %1443

1443:                                             ; preds = %1442, %1433
  %.pn670.pn.pn = phi { ptr, i32 } [ %.pn670.pn, %1442 ], [ %1434, %1433 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %178) #7
  br label %1444

1444:                                             ; preds = %1443, %1431
  %.pn670.pn.pn.pn = phi { ptr, i32 } [ %.pn670.pn.pn, %1443 ], [ %1432, %1431 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #7
  br label %1445

1445:                                             ; preds = %1444, %1429
  %.pn670.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn670.pn.pn.pn, %1444 ], [ %1430, %1429 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %180) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %179) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %178) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %177) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %176) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %175) #7
  br label %2503

1446:                                             ; preds = %1407
  %1447 = landingpad { ptr, i32 }
          cleanup
  br label %1462

1448:                                             ; preds = %1408
  %1449 = landingpad { ptr, i32 }
          cleanup
  br label %1461

1450:                                             ; preds = %1411, %1409
  %1451 = landingpad { ptr, i32 }
          cleanup
  br label %1460

1452:                                             ; preds = %1413
  %1453 = landingpad { ptr, i32 }
          cleanup
  br label %1459

1454:                                             ; preds = %1416
  %1455 = landingpad { ptr, i32 }
          cleanup
  br label %1458

1456:                                             ; preds = %1421, %1419, %1417
  %1457 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #7
  br label %1458

1458:                                             ; preds = %1456, %1454
  %.pn676 = phi { ptr, i32 } [ %1457, %1456 ], [ %1455, %1454 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %185) #7
  br label %1459

1459:                                             ; preds = %1458, %1452
  %.pn676.pn = phi { ptr, i32 } [ %.pn676, %1458 ], [ %1453, %1452 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %186) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %186) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %185) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %184) #7
  br label %1460

1460:                                             ; preds = %1459, %1450
  %.pn676.pn.pn = phi { ptr, i32 } [ %.pn676.pn, %1459 ], [ %1451, %1450 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #7
  br label %1461

1461:                                             ; preds = %1460, %1448
  %.pn676.pn.pn.pn = phi { ptr, i32 } [ %.pn676.pn.pn, %1460 ], [ %1449, %1448 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #7
  br label %1462

1462:                                             ; preds = %1461, %1446
  %.pn676.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn676.pn.pn.pn, %1461 ], [ %1447, %1446 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %183) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %183) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %182) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %181) #7
  br label %2503

1463:                                             ; preds = %1423, %1396
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %187) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %188) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull @.str.166, ptr noundef nonnull align 1 dereferenceable(1) %188)
          to label %1464 unwind label %1496

1464:                                             ; preds = %1463
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %189) #7
  %1465 = getelementptr inbounds i8, ptr %2, i64 280
  %1466 = load ptr, ptr %1465, align 8, !tbaa !31
  %1467 = load ptr, ptr %1466, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %190) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %190) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %189, ptr noundef %1467, ptr noundef nonnull align 1 dereferenceable(1) %190)
          to label %1468 unwind label %1498

1468:                                             ; preds = %1464
  %1469 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %187, ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %189) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %190) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %190) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %189) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %188) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %187) #7
  br i1 %1469, label %1470, label %1535

1470:                                             ; preds = %1468
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %191) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %192) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %193) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %194) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %195) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %196) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %196)
          to label %1471 unwind label %1501

1471:                                             ; preds = %1470
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %194, ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef nonnull @.str.226)
          to label %1472 unwind label %1503

1472:                                             ; preds = %1471
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %193, ptr noundef nonnull align 8 dereferenceable(32) %194, ptr noundef nonnull @.str.3)
          to label %1473 unwind label %1505

1473:                                             ; preds = %1472
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %192, ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef nonnull @.str.227)
          to label %1474 unwind label %1507

1474:                                             ; preds = %1473
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %191, ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef nonnull @.str.18)
          to label %1475 unwind label %1509

1475:                                             ; preds = %1474
  %1476 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %191)
          to label %1477 unwind label %1511

1477:                                             ; preds = %1475
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %196) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %193) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %191) #7
  %1478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1479 unwind label %1325

1479:                                             ; preds = %1477
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %197) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %198) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %199) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %198, ptr noundef nonnull @.str.166, ptr noundef nonnull align 1 dereferenceable(1) %199)
          to label %1480 unwind label %1518

1480:                                             ; preds = %1479
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %197, ptr noundef nonnull align 8 dereferenceable(32) %198)
          to label %1481 unwind label %1520

1481:                                             ; preds = %1480
  %1482 = 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) %1478, ptr noundef nonnull align 8 dereferenceable(32) %197)
          to label %1483 unwind label %1522

1483:                                             ; preds = %1481
  %1484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1482, ptr noundef nonnull @.str.20)
          to label %1485 unwind label %1522

1485:                                             ; preds = %1483
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %200) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %201) #7
  %1486 = load ptr, ptr %1465, align 8, !tbaa !31
  %1487 = load ptr, ptr %1486, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %202) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef %1487, ptr noundef nonnull align 1 dereferenceable(1) %202)
          to label %1488 unwind label %1524

1488:                                             ; preds = %1485
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %200, ptr noundef nonnull align 8 dereferenceable(32) %201)
          to label %1489 unwind label %1526

1489:                                             ; preds = %1488
  %1490 = 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) %1484, ptr noundef nonnull align 8 dereferenceable(32) %200)
          to label %1491 unwind label %1528

1491:                                             ; preds = %1489
  %1492 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1490, ptr noundef nonnull @.str.21)
          to label %1493 unwind label %1528

1493:                                             ; preds = %1491
  %1494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1492, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1495 unwind label %1528

1495:                                             ; preds = %1493
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %202) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %201) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %197) #7
  invoke void @_Z4failv()
          to label %1535 unwind label %1325

1496:                                             ; preds = %1463
  %1497 = landingpad { ptr, i32 }
          cleanup
  br label %1500

1498:                                             ; preds = %1464
  %1499 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %190) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %190) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %189) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %187) #7
  br label %1500

1500:                                             ; preds = %1498, %1496
  %.pn682 = phi { ptr, i32 } [ %1499, %1498 ], [ %1497, %1496 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %188) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %188) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %187) #7
  br label %2503

1501:                                             ; preds = %1470
  %1502 = landingpad { ptr, i32 }
          cleanup
  br label %1517

1503:                                             ; preds = %1471
  %1504 = landingpad { ptr, i32 }
          cleanup
  br label %1516

1505:                                             ; preds = %1472
  %1506 = landingpad { ptr, i32 }
          cleanup
  br label %1515

1507:                                             ; preds = %1473
  %1508 = landingpad { ptr, i32 }
          cleanup
  br label %1514

1509:                                             ; preds = %1474
  %1510 = landingpad { ptr, i32 }
          cleanup
  br label %1513

1511:                                             ; preds = %1475
  %1512 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %191) #7
  br label %1513

1513:                                             ; preds = %1511, %1509
  %.pn684 = phi { ptr, i32 } [ %1512, %1511 ], [ %1510, %1509 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #7
  br label %1514

1514:                                             ; preds = %1513, %1507
  %.pn684.pn = phi { ptr, i32 } [ %.pn684, %1513 ], [ %1508, %1507 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #7
  br label %1515

1515:                                             ; preds = %1514, %1505
  %.pn684.pn.pn = phi { ptr, i32 } [ %.pn684.pn, %1514 ], [ %1506, %1505 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %194) #7
  br label %1516

1516:                                             ; preds = %1515, %1503
  %.pn684.pn.pn.pn = phi { ptr, i32 } [ %.pn684.pn.pn, %1515 ], [ %1504, %1503 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #7
  br label %1517

1517:                                             ; preds = %1516, %1501
  %.pn684.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn684.pn.pn.pn, %1516 ], [ %1502, %1501 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %196) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %196) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %195) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %194) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %193) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %192) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %191) #7
  br label %2503

1518:                                             ; preds = %1479
  %1519 = landingpad { ptr, i32 }
          cleanup
  br label %1534

1520:                                             ; preds = %1480
  %1521 = landingpad { ptr, i32 }
          cleanup
  br label %1533

1522:                                             ; preds = %1483, %1481
  %1523 = landingpad { ptr, i32 }
          cleanup
  br label %1532

1524:                                             ; preds = %1485
  %1525 = landingpad { ptr, i32 }
          cleanup
  br label %1531

1526:                                             ; preds = %1488
  %1527 = landingpad { ptr, i32 }
          cleanup
  br label %1530

1528:                                             ; preds = %1493, %1491, %1489
  %1529 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %200) #7
  br label %1530

1530:                                             ; preds = %1528, %1526
  %.pn690 = phi { ptr, i32 } [ %1529, %1528 ], [ %1527, %1526 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #7
  br label %1531

1531:                                             ; preds = %1530, %1524
  %.pn690.pn = phi { ptr, i32 } [ %.pn690, %1530 ], [ %1525, %1524 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %202) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %202) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %201) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %200) #7
  br label %1532

1532:                                             ; preds = %1531, %1522
  %.pn690.pn.pn = phi { ptr, i32 } [ %.pn690.pn, %1531 ], [ %1523, %1522 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #7
  br label %1533

1533:                                             ; preds = %1532, %1520
  %.pn690.pn.pn.pn = phi { ptr, i32 } [ %.pn690.pn.pn, %1532 ], [ %1521, %1520 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %198) #7
  br label %1534

1534:                                             ; preds = %1533, %1518
  %.pn690.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn690.pn.pn.pn, %1533 ], [ %1519, %1518 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %199) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %199) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %198) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %197) #7
  br label %2503

1535:                                             ; preds = %1495, %1468
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %203) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %204) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull @.str.167, ptr noundef nonnull align 1 dereferenceable(1) %204)
          to label %1536 unwind label %1569

1536:                                             ; preds = %1535
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %205) #7
  %1537 = load ptr, ptr %1393, align 8, !tbaa !29
  %1538 = getelementptr inbounds i8, ptr %1537, i64 8
  %1539 = load ptr, ptr %1538, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %206) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef %1539, ptr noundef nonnull align 1 dereferenceable(1) %206)
          to label %1540 unwind label %1571

1540:                                             ; preds = %1536
  %1541 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %205) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %206) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #7
  br i1 %1541, label %1542, label %1608

1542:                                             ; preds = %1540
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %207) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %208) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %209) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %210) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %211) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %212) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %212)
          to label %1543 unwind label %1574

1543:                                             ; preds = %1542
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %210, ptr noundef nonnull align 8 dereferenceable(32) %211, ptr noundef nonnull @.str.228)
          to label %1544 unwind label %1576

1544:                                             ; preds = %1543
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %209, ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull @.str.3)
          to label %1545 unwind label %1578

1545:                                             ; preds = %1544
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %208, ptr noundef nonnull align 8 dereferenceable(32) %209, ptr noundef nonnull @.str.229)
          to label %1546 unwind label %1580

1546:                                             ; preds = %1545
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %207, ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull @.str.18)
          to label %1547 unwind label %1582

1547:                                             ; preds = %1546
  %1548 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %207)
          to label %1549 unwind label %1584

1549:                                             ; preds = %1547
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %212) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %211) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %209) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %207) #7
  %1550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1551 unwind label %1325

1551:                                             ; preds = %1549
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %213) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %214) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %215) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %214, ptr noundef nonnull @.str.167, ptr noundef nonnull align 1 dereferenceable(1) %215)
          to label %1552 unwind label %1591

1552:                                             ; preds = %1551
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %213, ptr noundef nonnull align 8 dereferenceable(32) %214)
          to label %1553 unwind label %1593

1553:                                             ; preds = %1552
  %1554 = 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) %1550, ptr noundef nonnull align 8 dereferenceable(32) %213)
          to label %1555 unwind label %1595

1555:                                             ; preds = %1553
  %1556 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1554, ptr noundef nonnull @.str.20)
          to label %1557 unwind label %1595

1557:                                             ; preds = %1555
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %216) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %217) #7
  %1558 = load ptr, ptr %1393, align 8, !tbaa !29
  %1559 = getelementptr inbounds i8, ptr %1558, i64 8
  %1560 = load ptr, ptr %1559, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %218) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %217, ptr noundef %1560, ptr noundef nonnull align 1 dereferenceable(1) %218)
          to label %1561 unwind label %1597

1561:                                             ; preds = %1557
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %216, ptr noundef nonnull align 8 dereferenceable(32) %217)
          to label %1562 unwind label %1599

1562:                                             ; preds = %1561
  %1563 = 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) %1556, ptr noundef nonnull align 8 dereferenceable(32) %216)
          to label %1564 unwind label %1601

1564:                                             ; preds = %1562
  %1565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1563, ptr noundef nonnull @.str.21)
          to label %1566 unwind label %1601

1566:                                             ; preds = %1564
  %1567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1565, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1568 unwind label %1601

1568:                                             ; preds = %1566
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %218) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %217) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %215) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #7
  invoke void @_Z4failv()
          to label %1608 unwind label %1325

1569:                                             ; preds = %1535
  %1570 = landingpad { ptr, i32 }
          cleanup
  br label %1573

1571:                                             ; preds = %1536
  %1572 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %206) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %206) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %205) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #7
  br label %1573

1573:                                             ; preds = %1571, %1569
  %.pn696 = phi { ptr, i32 } [ %1572, %1571 ], [ %1570, %1569 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %204) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %204) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %203) #7
  br label %2503

1574:                                             ; preds = %1542
  %1575 = landingpad { ptr, i32 }
          cleanup
  br label %1590

1576:                                             ; preds = %1543
  %1577 = landingpad { ptr, i32 }
          cleanup
  br label %1589

1578:                                             ; preds = %1544
  %1579 = landingpad { ptr, i32 }
          cleanup
  br label %1588

1580:                                             ; preds = %1545
  %1581 = landingpad { ptr, i32 }
          cleanup
  br label %1587

1582:                                             ; preds = %1546
  %1583 = landingpad { ptr, i32 }
          cleanup
  br label %1586

1584:                                             ; preds = %1547
  %1585 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #7
  br label %1586

1586:                                             ; preds = %1584, %1582
  %.pn698 = phi { ptr, i32 } [ %1585, %1584 ], [ %1583, %1582 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  br label %1587

1587:                                             ; preds = %1586, %1580
  %.pn698.pn = phi { ptr, i32 } [ %.pn698, %1586 ], [ %1581, %1580 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %209) #7
  br label %1588

1588:                                             ; preds = %1587, %1578
  %.pn698.pn.pn = phi { ptr, i32 } [ %.pn698.pn, %1587 ], [ %1579, %1578 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #7
  br label %1589

1589:                                             ; preds = %1588, %1576
  %.pn698.pn.pn.pn = phi { ptr, i32 } [ %.pn698.pn.pn, %1588 ], [ %1577, %1576 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %211) #7
  br label %1590

1590:                                             ; preds = %1589, %1574
  %.pn698.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn698.pn.pn.pn, %1589 ], [ %1575, %1574 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %212) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %211) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %210) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %209) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %208) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %207) #7
  br label %2503

1591:                                             ; preds = %1551
  %1592 = landingpad { ptr, i32 }
          cleanup
  br label %1607

1593:                                             ; preds = %1552
  %1594 = landingpad { ptr, i32 }
          cleanup
  br label %1606

1595:                                             ; preds = %1555, %1553
  %1596 = landingpad { ptr, i32 }
          cleanup
  br label %1605

1597:                                             ; preds = %1557
  %1598 = landingpad { ptr, i32 }
          cleanup
  br label %1604

1599:                                             ; preds = %1561
  %1600 = landingpad { ptr, i32 }
          cleanup
  br label %1603

1601:                                             ; preds = %1566, %1564, %1562
  %1602 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %216) #7
  br label %1603

1603:                                             ; preds = %1601, %1599
  %.pn704 = phi { ptr, i32 } [ %1602, %1601 ], [ %1600, %1599 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %217) #7
  br label %1604

1604:                                             ; preds = %1603, %1597
  %.pn704.pn = phi { ptr, i32 } [ %.pn704, %1603 ], [ %1598, %1597 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %218) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %218) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %217) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %216) #7
  br label %1605

1605:                                             ; preds = %1604, %1595
  %.pn704.pn.pn = phi { ptr, i32 } [ %.pn704.pn, %1604 ], [ %1596, %1595 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %213) #7
  br label %1606

1606:                                             ; preds = %1605, %1593
  %.pn704.pn.pn.pn = phi { ptr, i32 } [ %.pn704.pn.pn, %1605 ], [ %1594, %1593 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %214) #7
  br label %1607

1607:                                             ; preds = %1606, %1591
  %.pn704.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn704.pn.pn.pn, %1606 ], [ %1592, %1591 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %215) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %215) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %214) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %213) #7
  br label %2503

1608:                                             ; preds = %1568, %1540
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %219) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %220) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef nonnull @.str.168, ptr noundef nonnull align 1 dereferenceable(1) %220)
          to label %1609 unwind label %1642

1609:                                             ; preds = %1608
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %221) #7
  %1610 = load ptr, ptr %1465, align 8, !tbaa !31
  %1611 = getelementptr inbounds i8, ptr %1610, i64 8
  %1612 = load ptr, ptr %1611, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %222) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef %1612, ptr noundef nonnull align 1 dereferenceable(1) %222)
          to label %1613 unwind label %1644

1613:                                             ; preds = %1609
  %1614 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %219, ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %222) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %221) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %220) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #7
  br i1 %1614, label %1615, label %1681

1615:                                             ; preds = %1613
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %223) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %224) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %225) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %226) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %227) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %228) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %228)
          to label %1616 unwind label %1647

1616:                                             ; preds = %1615
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %226, ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef nonnull @.str.230)
          to label %1617 unwind label %1649

1617:                                             ; preds = %1616
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %225, ptr noundef nonnull align 8 dereferenceable(32) %226, ptr noundef nonnull @.str.3)
          to label %1618 unwind label %1651

1618:                                             ; preds = %1617
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %224, ptr noundef nonnull align 8 dereferenceable(32) %225, ptr noundef nonnull @.str.231)
          to label %1619 unwind label %1653

1619:                                             ; preds = %1618
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %223, ptr noundef nonnull align 8 dereferenceable(32) %224, ptr noundef nonnull @.str.18)
          to label %1620 unwind label %1655

1620:                                             ; preds = %1619
  %1621 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %223)
          to label %1622 unwind label %1657

1622:                                             ; preds = %1620
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %228) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #7
  %1623 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1624 unwind label %1325

1624:                                             ; preds = %1622
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %229) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %230) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %231) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %230, ptr noundef nonnull @.str.168, ptr noundef nonnull align 1 dereferenceable(1) %231)
          to label %1625 unwind label %1664

1625:                                             ; preds = %1624
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %229, ptr noundef nonnull align 8 dereferenceable(32) %230)
          to label %1626 unwind label %1666

1626:                                             ; preds = %1625
  %1627 = 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) %1623, ptr noundef nonnull align 8 dereferenceable(32) %229)
          to label %1628 unwind label %1668

1628:                                             ; preds = %1626
  %1629 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1627, ptr noundef nonnull @.str.20)
          to label %1630 unwind label %1668

1630:                                             ; preds = %1628
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %232) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %233) #7
  %1631 = load ptr, ptr %1465, align 8, !tbaa !31
  %1632 = getelementptr inbounds i8, ptr %1631, i64 8
  %1633 = load ptr, ptr %1632, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %234) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %233, ptr noundef %1633, ptr noundef nonnull align 1 dereferenceable(1) %234)
          to label %1634 unwind label %1670

1634:                                             ; preds = %1630
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %232, ptr noundef nonnull align 8 dereferenceable(32) %233)
          to label %1635 unwind label %1672

1635:                                             ; preds = %1634
  %1636 = 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) %1629, ptr noundef nonnull align 8 dereferenceable(32) %232)
          to label %1637 unwind label %1674

1637:                                             ; preds = %1635
  %1638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1636, ptr noundef nonnull @.str.21)
          to label %1639 unwind label %1674

1639:                                             ; preds = %1637
  %1640 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1638, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1641 unwind label %1674

1641:                                             ; preds = %1639
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %234) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %233) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %232) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %231) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #7
  invoke void @_Z4failv()
          to label %1681 unwind label %1325

1642:                                             ; preds = %1608
  %1643 = landingpad { ptr, i32 }
          cleanup
  br label %1646

1644:                                             ; preds = %1609
  %1645 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %222) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %222) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %221) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %219) #7
  br label %1646

1646:                                             ; preds = %1644, %1642
  %.pn710 = phi { ptr, i32 } [ %1645, %1644 ], [ %1643, %1642 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %220) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %219) #7
  br label %2503

1647:                                             ; preds = %1615
  %1648 = landingpad { ptr, i32 }
          cleanup
  br label %1663

1649:                                             ; preds = %1616
  %1650 = landingpad { ptr, i32 }
          cleanup
  br label %1662

1651:                                             ; preds = %1617
  %1652 = landingpad { ptr, i32 }
          cleanup
  br label %1661

1653:                                             ; preds = %1618
  %1654 = landingpad { ptr, i32 }
          cleanup
  br label %1660

1655:                                             ; preds = %1619
  %1656 = landingpad { ptr, i32 }
          cleanup
  br label %1659

1657:                                             ; preds = %1620
  %1658 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %223) #7
  br label %1659

1659:                                             ; preds = %1657, %1655
  %.pn712 = phi { ptr, i32 } [ %1658, %1657 ], [ %1656, %1655 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %224) #7
  br label %1660

1660:                                             ; preds = %1659, %1653
  %.pn712.pn = phi { ptr, i32 } [ %.pn712, %1659 ], [ %1654, %1653 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %225) #7
  br label %1661

1661:                                             ; preds = %1660, %1651
  %.pn712.pn.pn = phi { ptr, i32 } [ %.pn712.pn, %1660 ], [ %1652, %1651 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #7
  br label %1662

1662:                                             ; preds = %1661, %1649
  %.pn712.pn.pn.pn = phi { ptr, i32 } [ %.pn712.pn.pn, %1661 ], [ %1650, %1649 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #7
  br label %1663

1663:                                             ; preds = %1662, %1647
  %.pn712.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn712.pn.pn.pn, %1662 ], [ %1648, %1647 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %228) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %228) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %227) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %226) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %225) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %224) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %223) #7
  br label %2503

1664:                                             ; preds = %1624
  %1665 = landingpad { ptr, i32 }
          cleanup
  br label %1680

1666:                                             ; preds = %1625
  %1667 = landingpad { ptr, i32 }
          cleanup
  br label %1679

1668:                                             ; preds = %1628, %1626
  %1669 = landingpad { ptr, i32 }
          cleanup
  br label %1678

1670:                                             ; preds = %1630
  %1671 = landingpad { ptr, i32 }
          cleanup
  br label %1677

1672:                                             ; preds = %1634
  %1673 = landingpad { ptr, i32 }
          cleanup
  br label %1676

1674:                                             ; preds = %1639, %1637, %1635
  %1675 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #7
  br label %1676

1676:                                             ; preds = %1674, %1672
  %.pn718 = phi { ptr, i32 } [ %1675, %1674 ], [ %1673, %1672 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #7
  br label %1677

1677:                                             ; preds = %1676, %1670
  %.pn718.pn = phi { ptr, i32 } [ %.pn718, %1676 ], [ %1671, %1670 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %234) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %233) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %232) #7
  br label %1678

1678:                                             ; preds = %1677, %1668
  %.pn718.pn.pn = phi { ptr, i32 } [ %.pn718.pn, %1677 ], [ %1669, %1668 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %229) #7
  br label %1679

1679:                                             ; preds = %1678, %1666
  %.pn718.pn.pn.pn = phi { ptr, i32 } [ %.pn718.pn.pn, %1678 ], [ %1667, %1666 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %230) #7
  br label %1680

1680:                                             ; preds = %1679, %1664
  %.pn718.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn718.pn.pn.pn, %1679 ], [ %1665, %1664 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %231) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %231) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %230) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %229) #7
  br label %2503

1681:                                             ; preds = %1641, %1613
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %235) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %236) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef nonnull @.str.232, ptr noundef nonnull align 1 dereferenceable(1) %236)
          to label %1682 unwind label %1715

1682:                                             ; preds = %1681
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %237) #7
  %1683 = load ptr, ptr %1393, align 8, !tbaa !29
  %1684 = getelementptr inbounds i8, ptr %1683, i64 16
  %1685 = load ptr, ptr %1684, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %238) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %237, ptr noundef %1685, ptr noundef nonnull align 1 dereferenceable(1) %238)
          to label %1686 unwind label %1717

1686:                                             ; preds = %1682
  %1687 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %237) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %238) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %237) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %236) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #7
  br i1 %1687, label %1688, label %1754

1688:                                             ; preds = %1686
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %239) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %240) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %241) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %242) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %243) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %244) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %244)
          to label %1689 unwind label %1720

1689:                                             ; preds = %1688
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %242, ptr noundef nonnull align 8 dereferenceable(32) %243, ptr noundef nonnull @.str.233)
          to label %1690 unwind label %1722

1690:                                             ; preds = %1689
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %241, ptr noundef nonnull align 8 dereferenceable(32) %242, ptr noundef nonnull @.str.3)
          to label %1691 unwind label %1724

1691:                                             ; preds = %1690
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %240, ptr noundef nonnull align 8 dereferenceable(32) %241, ptr noundef nonnull @.str.234)
          to label %1692 unwind label %1726

1692:                                             ; preds = %1691
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %239, ptr noundef nonnull align 8 dereferenceable(32) %240, ptr noundef nonnull @.str.18)
          to label %1693 unwind label %1728

1693:                                             ; preds = %1692
  %1694 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %239)
          to label %1695 unwind label %1730

1695:                                             ; preds = %1693
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %244) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %243) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %242) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %240) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %239) #7
  %1696 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1697 unwind label %1325

1697:                                             ; preds = %1695
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %245) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %246) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %247) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull @.str.232, ptr noundef nonnull align 1 dereferenceable(1) %247)
          to label %1698 unwind label %1737

1698:                                             ; preds = %1697
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %245, ptr noundef nonnull align 8 dereferenceable(32) %246)
          to label %1699 unwind label %1739

1699:                                             ; preds = %1698
  %1700 = 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) %1696, ptr noundef nonnull align 8 dereferenceable(32) %245)
          to label %1701 unwind label %1741

1701:                                             ; preds = %1699
  %1702 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1700, ptr noundef nonnull @.str.20)
          to label %1703 unwind label %1741

1703:                                             ; preds = %1701
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %248) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %249) #7
  %1704 = load ptr, ptr %1393, align 8, !tbaa !29
  %1705 = getelementptr inbounds i8, ptr %1704, i64 16
  %1706 = load ptr, ptr %1705, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %250) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %250) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %249, ptr noundef %1706, ptr noundef nonnull align 1 dereferenceable(1) %250)
          to label %1707 unwind label %1743

1707:                                             ; preds = %1703
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %248, ptr noundef nonnull align 8 dereferenceable(32) %249)
          to label %1708 unwind label %1745

1708:                                             ; preds = %1707
  %1709 = 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) %1702, ptr noundef nonnull align 8 dereferenceable(32) %248)
          to label %1710 unwind label %1747

1710:                                             ; preds = %1708
  %1711 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1709, ptr noundef nonnull @.str.21)
          to label %1712 unwind label %1747

1712:                                             ; preds = %1710
  %1713 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1711, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1714 unwind label %1747

1714:                                             ; preds = %1712
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %250) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %250) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %249) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %247) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %246) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %245) #7
  invoke void @_Z4failv()
          to label %1754 unwind label %1325

1715:                                             ; preds = %1681
  %1716 = landingpad { ptr, i32 }
          cleanup
  br label %1719

1717:                                             ; preds = %1682
  %1718 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %238) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %238) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %237) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %235) #7
  br label %1719

1719:                                             ; preds = %1717, %1715
  %.pn724 = phi { ptr, i32 } [ %1718, %1717 ], [ %1716, %1715 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %236) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %236) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %235) #7
  br label %2503

1720:                                             ; preds = %1688
  %1721 = landingpad { ptr, i32 }
          cleanup
  br label %1736

1722:                                             ; preds = %1689
  %1723 = landingpad { ptr, i32 }
          cleanup
  br label %1735

1724:                                             ; preds = %1690
  %1725 = landingpad { ptr, i32 }
          cleanup
  br label %1734

1726:                                             ; preds = %1691
  %1727 = landingpad { ptr, i32 }
          cleanup
  br label %1733

1728:                                             ; preds = %1692
  %1729 = landingpad { ptr, i32 }
          cleanup
  br label %1732

1730:                                             ; preds = %1693
  %1731 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %239) #7
  br label %1732

1732:                                             ; preds = %1730, %1728
  %.pn726 = phi { ptr, i32 } [ %1731, %1730 ], [ %1729, %1728 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %240) #7
  br label %1733

1733:                                             ; preds = %1732, %1726
  %.pn726.pn = phi { ptr, i32 } [ %.pn726, %1732 ], [ %1727, %1726 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %241) #7
  br label %1734

1734:                                             ; preds = %1733, %1724
  %.pn726.pn.pn = phi { ptr, i32 } [ %.pn726.pn, %1733 ], [ %1725, %1724 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #7
  br label %1735

1735:                                             ; preds = %1734, %1722
  %.pn726.pn.pn.pn = phi { ptr, i32 } [ %.pn726.pn.pn, %1734 ], [ %1723, %1722 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %243) #7
  br label %1736

1736:                                             ; preds = %1735, %1720
  %.pn726.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn726.pn.pn.pn, %1735 ], [ %1721, %1720 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %244) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %243) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %242) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %241) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %240) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %239) #7
  br label %2503

1737:                                             ; preds = %1697
  %1738 = landingpad { ptr, i32 }
          cleanup
  br label %1753

1739:                                             ; preds = %1698
  %1740 = landingpad { ptr, i32 }
          cleanup
  br label %1752

1741:                                             ; preds = %1701, %1699
  %1742 = landingpad { ptr, i32 }
          cleanup
  br label %1751

1743:                                             ; preds = %1703
  %1744 = landingpad { ptr, i32 }
          cleanup
  br label %1750

1745:                                             ; preds = %1707
  %1746 = landingpad { ptr, i32 }
          cleanup
  br label %1749

1747:                                             ; preds = %1712, %1710, %1708
  %1748 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #7
  br label %1749

1749:                                             ; preds = %1747, %1745
  %.pn732 = phi { ptr, i32 } [ %1748, %1747 ], [ %1746, %1745 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %249) #7
  br label %1750

1750:                                             ; preds = %1749, %1743
  %.pn732.pn = phi { ptr, i32 } [ %.pn732, %1749 ], [ %1744, %1743 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %250) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %250) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %249) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %248) #7
  br label %1751

1751:                                             ; preds = %1750, %1741
  %.pn732.pn.pn = phi { ptr, i32 } [ %.pn732.pn, %1750 ], [ %1742, %1741 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #7
  br label %1752

1752:                                             ; preds = %1751, %1739
  %.pn732.pn.pn.pn = phi { ptr, i32 } [ %.pn732.pn.pn, %1751 ], [ %1740, %1739 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #7
  br label %1753

1753:                                             ; preds = %1752, %1737
  %.pn732.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn732.pn.pn.pn, %1752 ], [ %1738, %1737 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %247) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %247) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %246) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %245) #7
  br label %2503

1754:                                             ; preds = %1714, %1686
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %251) #7
  %1755 = load ptr, ptr @LODEPNG_VERSION_STRING, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %252) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef %1755, ptr noundef nonnull align 1 dereferenceable(1) %252)
          to label %1756 unwind label %1790

1756:                                             ; preds = %1754
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %253) #7
  %1757 = load ptr, ptr %1465, align 8, !tbaa !31
  %1758 = getelementptr inbounds i8, ptr %1757, i64 16
  %1759 = load ptr, ptr %1758, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %254) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %253, ptr noundef %1759, ptr noundef nonnull align 1 dereferenceable(1) %254)
          to label %1760 unwind label %1792

1760:                                             ; preds = %1756
  %1761 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %251, ptr noundef nonnull align 8 dereferenceable(32) %253) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %253) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %254) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %253) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %252) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %251) #7
  br i1 %1761, label %1762, label %1829

1762:                                             ; preds = %1760
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %255) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %256) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %257) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %258) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %259) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %260) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %260)
          to label %1763 unwind label %1795

1763:                                             ; preds = %1762
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %258, ptr noundef nonnull align 8 dereferenceable(32) %259, ptr noundef nonnull @.str.235)
          to label %1764 unwind label %1797

1764:                                             ; preds = %1763
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %257, ptr noundef nonnull align 8 dereferenceable(32) %258, ptr noundef nonnull @.str.3)
          to label %1765 unwind label %1799

1765:                                             ; preds = %1764
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %256, ptr noundef nonnull align 8 dereferenceable(32) %257, ptr noundef nonnull @.str.236)
          to label %1766 unwind label %1801

1766:                                             ; preds = %1765
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %255, ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef nonnull @.str.18)
          to label %1767 unwind label %1803

1767:                                             ; preds = %1766
  %1768 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %255)
          to label %1769 unwind label %1805

1769:                                             ; preds = %1767
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %260) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %259) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %258) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %257) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %256) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %255) #7
  %1770 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1771 unwind label %1325

1771:                                             ; preds = %1769
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %261) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %262) #7
  %1772 = load ptr, ptr @LODEPNG_VERSION_STRING, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %263) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %262, ptr noundef %1772, ptr noundef nonnull align 1 dereferenceable(1) %263)
          to label %1773 unwind label %1812

1773:                                             ; preds = %1771
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %261, ptr noundef nonnull align 8 dereferenceable(32) %262)
          to label %1774 unwind label %1814

1774:                                             ; preds = %1773
  %1775 = 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) %1770, ptr noundef nonnull align 8 dereferenceable(32) %261)
          to label %1776 unwind label %1816

1776:                                             ; preds = %1774
  %1777 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1775, ptr noundef nonnull @.str.20)
          to label %1778 unwind label %1816

1778:                                             ; preds = %1776
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %264) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %265) #7
  %1779 = load ptr, ptr %1465, align 8, !tbaa !31
  %1780 = getelementptr inbounds i8, ptr %1779, i64 16
  %1781 = load ptr, ptr %1780, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %266) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %265, ptr noundef %1781, ptr noundef nonnull align 1 dereferenceable(1) %266)
          to label %1782 unwind label %1818

1782:                                             ; preds = %1778
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %264, ptr noundef nonnull align 8 dereferenceable(32) %265)
          to label %1783 unwind label %1820

1783:                                             ; preds = %1782
  %1784 = 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) %1777, ptr noundef nonnull align 8 dereferenceable(32) %264)
          to label %1785 unwind label %1822

1785:                                             ; preds = %1783
  %1786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1784, ptr noundef nonnull @.str.21)
          to label %1787 unwind label %1822

1787:                                             ; preds = %1785
  %1788 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1786, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1789 unwind label %1822

1789:                                             ; preds = %1787
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %266) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %265) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %264) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %263) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %262) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %261) #7
  invoke void @_Z4failv()
          to label %1829 unwind label %1325

1790:                                             ; preds = %1754
  %1791 = landingpad { ptr, i32 }
          cleanup
  br label %1794

1792:                                             ; preds = %1756
  %1793 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %254) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %254) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %253) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %251) #7
  br label %1794

1794:                                             ; preds = %1792, %1790
  %.pn738 = phi { ptr, i32 } [ %1793, %1792 ], [ %1791, %1790 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %252) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %252) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %251) #7
  br label %2503

1795:                                             ; preds = %1762
  %1796 = landingpad { ptr, i32 }
          cleanup
  br label %1811

1797:                                             ; preds = %1763
  %1798 = landingpad { ptr, i32 }
          cleanup
  br label %1810

1799:                                             ; preds = %1764
  %1800 = landingpad { ptr, i32 }
          cleanup
  br label %1809

1801:                                             ; preds = %1765
  %1802 = landingpad { ptr, i32 }
          cleanup
  br label %1808

1803:                                             ; preds = %1766
  %1804 = landingpad { ptr, i32 }
          cleanup
  br label %1807

1805:                                             ; preds = %1767
  %1806 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %255) #7
  br label %1807

1807:                                             ; preds = %1805, %1803
  %.pn740 = phi { ptr, i32 } [ %1806, %1805 ], [ %1804, %1803 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #7
  br label %1808

1808:                                             ; preds = %1807, %1801
  %.pn740.pn = phi { ptr, i32 } [ %.pn740, %1807 ], [ %1802, %1801 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %257) #7
  br label %1809

1809:                                             ; preds = %1808, %1799
  %.pn740.pn.pn = phi { ptr, i32 } [ %.pn740.pn, %1808 ], [ %1800, %1799 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %258) #7
  br label %1810

1810:                                             ; preds = %1809, %1797
  %.pn740.pn.pn.pn = phi { ptr, i32 } [ %.pn740.pn.pn, %1809 ], [ %1798, %1797 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %259) #7
  br label %1811

1811:                                             ; preds = %1810, %1795
  %.pn740.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn740.pn.pn.pn, %1810 ], [ %1796, %1795 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %260) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %260) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %259) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %258) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %257) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %256) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %255) #7
  br label %2503

1812:                                             ; preds = %1771
  %1813 = landingpad { ptr, i32 }
          cleanup
  br label %1828

1814:                                             ; preds = %1773
  %1815 = landingpad { ptr, i32 }
          cleanup
  br label %1827

1816:                                             ; preds = %1776, %1774
  %1817 = landingpad { ptr, i32 }
          cleanup
  br label %1826

1818:                                             ; preds = %1778
  %1819 = landingpad { ptr, i32 }
          cleanup
  br label %1825

1820:                                             ; preds = %1782
  %1821 = landingpad { ptr, i32 }
          cleanup
  br label %1824

1822:                                             ; preds = %1787, %1785, %1783
  %1823 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %264) #7
  br label %1824

1824:                                             ; preds = %1822, %1820
  %.pn746 = phi { ptr, i32 } [ %1823, %1822 ], [ %1821, %1820 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %265) #7
  br label %1825

1825:                                             ; preds = %1824, %1818
  %.pn746.pn = phi { ptr, i32 } [ %.pn746, %1824 ], [ %1819, %1818 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %266) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %265) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %264) #7
  br label %1826

1826:                                             ; preds = %1825, %1816
  %.pn746.pn.pn = phi { ptr, i32 } [ %.pn746.pn, %1825 ], [ %1817, %1816 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %261) #7
  br label %1827

1827:                                             ; preds = %1826, %1814
  %.pn746.pn.pn.pn = phi { ptr, i32 } [ %.pn746.pn.pn, %1826 ], [ %1815, %1814 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %262) #7
  br label %1828

1828:                                             ; preds = %1827, %1812
  %.pn746.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn746.pn.pn.pn, %1827 ], [ %1813, %1812 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %263) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %263) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %262) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %261) #7
  br label %2503

1829:                                             ; preds = %1789, %1760
  %1830 = getelementptr inbounds i8, ptr %2, i64 288
  %1831 = load i64, ptr %1830, align 8, !tbaa !32
  %.not752 = icmp eq i64 %1831, 2
  br i1 %.not752, label %1882, label %1832

1832:                                             ; preds = %1829
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %267) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %268) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %269) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %270) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %271) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %272) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %272)
          to label %1833 unwind label %1854

1833:                                             ; preds = %1832
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %270, ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef nonnull @.str.237)
          to label %1834 unwind label %1856

1834:                                             ; preds = %1833
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %269, ptr noundef nonnull align 8 dereferenceable(32) %270, ptr noundef nonnull @.str.3)
          to label %1835 unwind label %1858

1835:                                             ; preds = %1834
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %268, ptr noundef nonnull align 8 dereferenceable(32) %269, ptr noundef nonnull @.str.238)
          to label %1836 unwind label %1860

1836:                                             ; preds = %1835
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %267, ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef nonnull @.str.18)
          to label %1837 unwind label %1862

1837:                                             ; preds = %1836
  %1838 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %267)
          to label %1839 unwind label %1864

1839:                                             ; preds = %1837
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %272) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %270) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %269) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %268) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %267) #7
  %1840 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1841 unwind label %1325

1841:                                             ; preds = %1839
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %273) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %274) #7
  store i32 2, ptr %274, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %273, ptr noundef nonnull align 4 dereferenceable(4) %274)
          to label %1842 unwind label %1871

1842:                                             ; preds = %1841
  %1843 = 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) %1840, ptr noundef nonnull align 8 dereferenceable(32) %273)
          to label %1844 unwind label %1873

1844:                                             ; preds = %1842
  %1845 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1843, ptr noundef nonnull @.str.20)
          to label %1846 unwind label %1873

1846:                                             ; preds = %1844
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %275) #7
  invoke void @_Z8valtostrImENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %275, ptr noundef nonnull align 8 dereferenceable(8) %1830)
          to label %1847 unwind label %1875

1847:                                             ; preds = %1846
  %1848 = 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) %1845, ptr noundef nonnull align 8 dereferenceable(32) %275)
          to label %1849 unwind label %1877

1849:                                             ; preds = %1847
  %1850 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1848, ptr noundef nonnull @.str.21)
          to label %1851 unwind label %1877

1851:                                             ; preds = %1849
  %1852 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1850, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1853 unwind label %1877

1853:                                             ; preds = %1851
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %275) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %274) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #7
  invoke void @_Z4failv()
          to label %1882 unwind label %1325

1854:                                             ; preds = %1832
  %1855 = landingpad { ptr, i32 }
          cleanup
  br label %1870

1856:                                             ; preds = %1833
  %1857 = landingpad { ptr, i32 }
          cleanup
  br label %1869

1858:                                             ; preds = %1834
  %1859 = landingpad { ptr, i32 }
          cleanup
  br label %1868

1860:                                             ; preds = %1835
  %1861 = landingpad { ptr, i32 }
          cleanup
  br label %1867

1862:                                             ; preds = %1836
  %1863 = landingpad { ptr, i32 }
          cleanup
  br label %1866

1864:                                             ; preds = %1837
  %1865 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %267) #7
  br label %1866

1866:                                             ; preds = %1864, %1862
  %.pn753 = phi { ptr, i32 } [ %1865, %1864 ], [ %1863, %1862 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %268) #7
  br label %1867

1867:                                             ; preds = %1866, %1860
  %.pn753.pn = phi { ptr, i32 } [ %.pn753, %1866 ], [ %1861, %1860 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %269) #7
  br label %1868

1868:                                             ; preds = %1867, %1858
  %.pn753.pn.pn = phi { ptr, i32 } [ %.pn753.pn, %1867 ], [ %1859, %1858 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %270) #7
  br label %1869

1869:                                             ; preds = %1868, %1856
  %.pn753.pn.pn.pn = phi { ptr, i32 } [ %.pn753.pn.pn, %1868 ], [ %1857, %1856 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #7
  br label %1870

1870:                                             ; preds = %1869, %1854
  %.pn753.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn753.pn.pn.pn, %1869 ], [ %1855, %1854 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %272) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %272) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %271) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %270) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %269) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %268) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %267) #7
  br label %2503

1871:                                             ; preds = %1841
  %1872 = landingpad { ptr, i32 }
          cleanup
  br label %1881

1873:                                             ; preds = %1844, %1842
  %1874 = landingpad { ptr, i32 }
          cleanup
  br label %1880

1875:                                             ; preds = %1846
  %1876 = landingpad { ptr, i32 }
          cleanup
  br label %1879

1877:                                             ; preds = %1851, %1849, %1847
  %1878 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #7
  br label %1879

1879:                                             ; preds = %1877, %1875
  %.pn759 = phi { ptr, i32 } [ %1878, %1877 ], [ %1876, %1875 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %275) #7
  br label %1880

1880:                                             ; preds = %1879, %1873
  %.pn759.pn = phi { ptr, i32 } [ %.pn759, %1879 ], [ %1874, %1873 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #7
  br label %1881

1881:                                             ; preds = %1880, %1871
  %.pn759.pn.pn = phi { ptr, i32 } [ %.pn759.pn, %1880 ], [ %1872, %1871 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %274) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #7
  br label %2503

1882:                                             ; preds = %1853, %1829
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %276) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %277) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef nonnull @.str.169, ptr noundef nonnull align 1 dereferenceable(1) %277)
          to label %1883 unwind label %1915

1883:                                             ; preds = %1882
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %278) #7
  %1884 = getelementptr inbounds i8, ptr %2, i64 296
  %1885 = load ptr, ptr %1884, align 8, !tbaa !33
  %1886 = load ptr, ptr %1885, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %279) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %279) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %278, ptr noundef %1886, ptr noundef nonnull align 1 dereferenceable(1) %279)
          to label %1887 unwind label %1917

1887:                                             ; preds = %1883
  %1888 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef nonnull align 8 dereferenceable(32) %278) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %278) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %279) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %279) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %278) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %277) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %276) #7
  br i1 %1888, label %1889, label %1954

1889:                                             ; preds = %1887
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %280) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %281) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %282) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %283) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %284) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %285) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %285)
          to label %1890 unwind label %1920

1890:                                             ; preds = %1889
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %283, ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull @.str.239)
          to label %1891 unwind label %1922

1891:                                             ; preds = %1890
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %282, ptr noundef nonnull align 8 dereferenceable(32) %283, ptr noundef nonnull @.str.3)
          to label %1892 unwind label %1924

1892:                                             ; preds = %1891
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %281, ptr noundef nonnull align 8 dereferenceable(32) %282, ptr noundef nonnull @.str.240)
          to label %1893 unwind label %1926

1893:                                             ; preds = %1892
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %280, ptr noundef nonnull align 8 dereferenceable(32) %281, ptr noundef nonnull @.str.18)
          to label %1894 unwind label %1928

1894:                                             ; preds = %1893
  %1895 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %280)
          to label %1896 unwind label %1930

1896:                                             ; preds = %1894
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %283) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %285) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %284) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %283) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %282) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %281) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %280) #7
  %1897 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1898 unwind label %1325

1898:                                             ; preds = %1896
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %286) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %287) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %288) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %288) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %287, ptr noundef nonnull @.str.169, ptr noundef nonnull align 1 dereferenceable(1) %288)
          to label %1899 unwind label %1937

1899:                                             ; preds = %1898
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %286, ptr noundef nonnull align 8 dereferenceable(32) %287)
          to label %1900 unwind label %1939

1900:                                             ; preds = %1899
  %1901 = 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) %1897, ptr noundef nonnull align 8 dereferenceable(32) %286)
          to label %1902 unwind label %1941

1902:                                             ; preds = %1900
  %1903 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1901, ptr noundef nonnull @.str.20)
          to label %1904 unwind label %1941

1904:                                             ; preds = %1902
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %289) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %290) #7
  %1905 = load ptr, ptr %1884, align 8, !tbaa !33
  %1906 = load ptr, ptr %1905, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %291) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %291) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %290, ptr noundef %1906, ptr noundef nonnull align 1 dereferenceable(1) %291)
          to label %1907 unwind label %1943

1907:                                             ; preds = %1904
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %289, ptr noundef nonnull align 8 dereferenceable(32) %290)
          to label %1908 unwind label %1945

1908:                                             ; preds = %1907
  %1909 = 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) %1903, ptr noundef nonnull align 8 dereferenceable(32) %289)
          to label %1910 unwind label %1947

1910:                                             ; preds = %1908
  %1911 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1909, ptr noundef nonnull @.str.21)
          to label %1912 unwind label %1947

1912:                                             ; preds = %1910
  %1913 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1911, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1914 unwind label %1947

1914:                                             ; preds = %1912
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %289) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %291) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %291) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %290) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %289) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %288) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %288) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %286) #7
  invoke void @_Z4failv()
          to label %1954 unwind label %1325

1915:                                             ; preds = %1882
  %1916 = landingpad { ptr, i32 }
          cleanup
  br label %1919

1917:                                             ; preds = %1883
  %1918 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %279) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %279) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %278) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #7
  br label %1919

1919:                                             ; preds = %1917, %1915
  %.pn763 = phi { ptr, i32 } [ %1918, %1917 ], [ %1916, %1915 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %277) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %276) #7
  br label %2503

1920:                                             ; preds = %1889
  %1921 = landingpad { ptr, i32 }
          cleanup
  br label %1936

1922:                                             ; preds = %1890
  %1923 = landingpad { ptr, i32 }
          cleanup
  br label %1935

1924:                                             ; preds = %1891
  %1925 = landingpad { ptr, i32 }
          cleanup
  br label %1934

1926:                                             ; preds = %1892
  %1927 = landingpad { ptr, i32 }
          cleanup
  br label %1933

1928:                                             ; preds = %1893
  %1929 = landingpad { ptr, i32 }
          cleanup
  br label %1932

1930:                                             ; preds = %1894
  %1931 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %280) #7
  br label %1932

1932:                                             ; preds = %1930, %1928
  %.pn765 = phi { ptr, i32 } [ %1931, %1930 ], [ %1929, %1928 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %281) #7
  br label %1933

1933:                                             ; preds = %1932, %1926
  %.pn765.pn = phi { ptr, i32 } [ %.pn765, %1932 ], [ %1927, %1926 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #7
  br label %1934

1934:                                             ; preds = %1933, %1924
  %.pn765.pn.pn = phi { ptr, i32 } [ %.pn765.pn, %1933 ], [ %1925, %1924 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %283) #7
  br label %1935

1935:                                             ; preds = %1934, %1922
  %.pn765.pn.pn.pn = phi { ptr, i32 } [ %.pn765.pn.pn, %1934 ], [ %1923, %1922 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  br label %1936

1936:                                             ; preds = %1935, %1920
  %.pn765.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn765.pn.pn.pn, %1935 ], [ %1921, %1920 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %285) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %285) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %284) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %283) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %282) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %281) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %280) #7
  br label %2503

1937:                                             ; preds = %1898
  %1938 = landingpad { ptr, i32 }
          cleanup
  br label %1953

1939:                                             ; preds = %1899
  %1940 = landingpad { ptr, i32 }
          cleanup
  br label %1952

1941:                                             ; preds = %1902, %1900
  %1942 = landingpad { ptr, i32 }
          cleanup
  br label %1951

1943:                                             ; preds = %1904
  %1944 = landingpad { ptr, i32 }
          cleanup
  br label %1950

1945:                                             ; preds = %1907
  %1946 = landingpad { ptr, i32 }
          cleanup
  br label %1949

1947:                                             ; preds = %1912, %1910, %1908
  %1948 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %289) #7
  br label %1949

1949:                                             ; preds = %1947, %1945
  %.pn771 = phi { ptr, i32 } [ %1948, %1947 ], [ %1946, %1945 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %290) #7
  br label %1950

1950:                                             ; preds = %1949, %1943
  %.pn771.pn = phi { ptr, i32 } [ %.pn771, %1949 ], [ %1944, %1943 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %291) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %291) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %290) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %289) #7
  br label %1951

1951:                                             ; preds = %1950, %1941
  %.pn771.pn.pn = phi { ptr, i32 } [ %.pn771.pn, %1950 ], [ %1942, %1941 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #7
  br label %1952

1952:                                             ; preds = %1951, %1939
  %.pn771.pn.pn.pn = phi { ptr, i32 } [ %.pn771.pn.pn, %1951 ], [ %1940, %1939 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #7
  br label %1953

1953:                                             ; preds = %1952, %1937
  %.pn771.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn771.pn.pn.pn, %1952 ], [ %1938, %1937 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %288) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %288) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %286) #7
  br label %2503

1954:                                             ; preds = %1914, %1887
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %292) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %293) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull @.str.170, ptr noundef nonnull align 1 dereferenceable(1) %293)
          to label %1955 unwind label %1987

1955:                                             ; preds = %1954
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %294) #7
  %1956 = getelementptr inbounds i8, ptr %2, i64 304
  %1957 = load ptr, ptr %1956, align 8, !tbaa !34
  %1958 = load ptr, ptr %1957, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %295) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef %1958, ptr noundef nonnull align 1 dereferenceable(1) %295)
          to label %1959 unwind label %1989

1959:                                             ; preds = %1955
  %1960 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %295) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %294) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %293) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %292) #7
  br i1 %1960, label %1961, label %2026

1961:                                             ; preds = %1959
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %296) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %297) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %298) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %299) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %300) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %301) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %301)
          to label %1962 unwind label %1992

1962:                                             ; preds = %1961
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %299, ptr noundef nonnull align 8 dereferenceable(32) %300, ptr noundef nonnull @.str.241)
          to label %1963 unwind label %1994

1963:                                             ; preds = %1962
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %298, ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull @.str.3)
          to label %1964 unwind label %1996

1964:                                             ; preds = %1963
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %297, ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef nonnull @.str.242)
          to label %1965 unwind label %1998

1965:                                             ; preds = %1964
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %296, ptr noundef nonnull align 8 dereferenceable(32) %297, ptr noundef nonnull @.str.18)
          to label %1966 unwind label %2000

1966:                                             ; preds = %1965
  %1967 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %296)
          to label %1968 unwind label %2002

1968:                                             ; preds = %1966
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %301) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %300) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %299) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %298) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %296) #7
  %1969 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %1970 unwind label %1325

1970:                                             ; preds = %1968
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %302) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %303) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %304) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %304) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %303, ptr noundef nonnull @.str.170, ptr noundef nonnull align 1 dereferenceable(1) %304)
          to label %1971 unwind label %2009

1971:                                             ; preds = %1970
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %302, ptr noundef nonnull align 8 dereferenceable(32) %303)
          to label %1972 unwind label %2011

1972:                                             ; preds = %1971
  %1973 = 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) %1969, ptr noundef nonnull align 8 dereferenceable(32) %302)
          to label %1974 unwind label %2013

1974:                                             ; preds = %1972
  %1975 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1973, ptr noundef nonnull @.str.20)
          to label %1976 unwind label %2013

1976:                                             ; preds = %1974
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %305) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %306) #7
  %1977 = load ptr, ptr %1956, align 8, !tbaa !34
  %1978 = load ptr, ptr %1977, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %307) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %307) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %306, ptr noundef %1978, ptr noundef nonnull align 1 dereferenceable(1) %307)
          to label %1979 unwind label %2015

1979:                                             ; preds = %1976
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %305, ptr noundef nonnull align 8 dereferenceable(32) %306)
          to label %1980 unwind label %2017

1980:                                             ; preds = %1979
  %1981 = 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) %1975, ptr noundef nonnull align 8 dereferenceable(32) %305)
          to label %1982 unwind label %2019

1982:                                             ; preds = %1980
  %1983 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1981, ptr noundef nonnull @.str.21)
          to label %1984 unwind label %2019

1984:                                             ; preds = %1982
  %1985 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1983, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1986 unwind label %2019

1986:                                             ; preds = %1984
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %307) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %307) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %306) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %305) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %304) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %304) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %303) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %302) #7
  invoke void @_Z4failv()
          to label %2026 unwind label %1325

1987:                                             ; preds = %1954
  %1988 = landingpad { ptr, i32 }
          cleanup
  br label %1991

1989:                                             ; preds = %1955
  %1990 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %295) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %294) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #7
  br label %1991

1991:                                             ; preds = %1989, %1987
  %.pn777 = phi { ptr, i32 } [ %1990, %1989 ], [ %1988, %1987 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %293) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %292) #7
  br label %2503

1992:                                             ; preds = %1961
  %1993 = landingpad { ptr, i32 }
          cleanup
  br label %2008

1994:                                             ; preds = %1962
  %1995 = landingpad { ptr, i32 }
          cleanup
  br label %2007

1996:                                             ; preds = %1963
  %1997 = landingpad { ptr, i32 }
          cleanup
  br label %2006

1998:                                             ; preds = %1964
  %1999 = landingpad { ptr, i32 }
          cleanup
  br label %2005

2000:                                             ; preds = %1965
  %2001 = landingpad { ptr, i32 }
          cleanup
  br label %2004

2002:                                             ; preds = %1966
  %2003 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #7
  br label %2004

2004:                                             ; preds = %2002, %2000
  %.pn779 = phi { ptr, i32 } [ %2003, %2002 ], [ %2001, %2000 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #7
  br label %2005

2005:                                             ; preds = %2004, %1998
  %.pn779.pn = phi { ptr, i32 } [ %.pn779, %2004 ], [ %1999, %1998 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #7
  br label %2006

2006:                                             ; preds = %2005, %1996
  %.pn779.pn.pn = phi { ptr, i32 } [ %.pn779.pn, %2005 ], [ %1997, %1996 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #7
  br label %2007

2007:                                             ; preds = %2006, %1994
  %.pn779.pn.pn.pn = phi { ptr, i32 } [ %.pn779.pn.pn, %2006 ], [ %1995, %1994 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #7
  br label %2008

2008:                                             ; preds = %2007, %1992
  %.pn779.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn779.pn.pn.pn, %2007 ], [ %1993, %1992 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %301) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %301) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %300) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %299) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %298) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %296) #7
  br label %2503

2009:                                             ; preds = %1970
  %2010 = landingpad { ptr, i32 }
          cleanup
  br label %2025

2011:                                             ; preds = %1971
  %2012 = landingpad { ptr, i32 }
          cleanup
  br label %2024

2013:                                             ; preds = %1974, %1972
  %2014 = landingpad { ptr, i32 }
          cleanup
  br label %2023

2015:                                             ; preds = %1976
  %2016 = landingpad { ptr, i32 }
          cleanup
  br label %2022

2017:                                             ; preds = %1979
  %2018 = landingpad { ptr, i32 }
          cleanup
  br label %2021

2019:                                             ; preds = %1984, %1982, %1980
  %2020 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #7
  br label %2021

2021:                                             ; preds = %2019, %2017
  %.pn785 = phi { ptr, i32 } [ %2020, %2019 ], [ %2018, %2017 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #7
  br label %2022

2022:                                             ; preds = %2021, %2015
  %.pn785.pn = phi { ptr, i32 } [ %.pn785, %2021 ], [ %2016, %2015 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %307) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %307) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %306) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %305) #7
  br label %2023

2023:                                             ; preds = %2022, %2013
  %.pn785.pn.pn = phi { ptr, i32 } [ %.pn785.pn, %2022 ], [ %2014, %2013 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #7
  br label %2024

2024:                                             ; preds = %2023, %2011
  %.pn785.pn.pn.pn = phi { ptr, i32 } [ %.pn785.pn.pn, %2023 ], [ %2012, %2011 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #7
  br label %2025

2025:                                             ; preds = %2024, %2009
  %.pn785.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn785.pn.pn.pn, %2024 ], [ %2010, %2009 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %304) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %304) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %303) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %302) #7
  br label %2503

2026:                                             ; preds = %1986, %1959
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %308) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %309) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %309) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %308, ptr noundef nonnull @.str.171, ptr noundef nonnull align 1 dereferenceable(1) %309)
          to label %2027 unwind label %2059

2027:                                             ; preds = %2026
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %310) #7
  %2028 = getelementptr inbounds i8, ptr %2, i64 312
  %2029 = load ptr, ptr %2028, align 8, !tbaa !35
  %2030 = load ptr, ptr %2029, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %311) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %310, ptr noundef %2030, ptr noundef nonnull align 1 dereferenceable(1) %311)
          to label %2031 unwind label %2061

2031:                                             ; preds = %2027
  %2032 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %308, ptr noundef nonnull align 8 dereferenceable(32) %310) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %310) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %311) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %310) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %309) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %309) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %308) #7
  br i1 %2032, label %2033, label %2098

2033:                                             ; preds = %2031
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %312) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %313) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %314) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %315) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %316) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %317) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %317)
          to label %2034 unwind label %2064

2034:                                             ; preds = %2033
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %315, ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef nonnull @.str.243)
          to label %2035 unwind label %2066

2035:                                             ; preds = %2034
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %314, ptr noundef nonnull align 8 dereferenceable(32) %315, ptr noundef nonnull @.str.3)
          to label %2036 unwind label %2068

2036:                                             ; preds = %2035
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %313, ptr noundef nonnull align 8 dereferenceable(32) %314, ptr noundef nonnull @.str.244)
          to label %2037 unwind label %2070

2037:                                             ; preds = %2036
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %312, ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull @.str.18)
          to label %2038 unwind label %2072

2038:                                             ; preds = %2037
  %2039 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %312)
          to label %2040 unwind label %2074

2040:                                             ; preds = %2038
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %317) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %315) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %314) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %313) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %312) #7
  %2041 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %2042 unwind label %1325

2042:                                             ; preds = %2040
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %318) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %319) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %320) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %319, ptr noundef nonnull @.str.171, ptr noundef nonnull align 1 dereferenceable(1) %320)
          to label %2043 unwind label %2081

2043:                                             ; preds = %2042
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %318, ptr noundef nonnull align 8 dereferenceable(32) %319)
          to label %2044 unwind label %2083

2044:                                             ; preds = %2043
  %2045 = 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) %2041, ptr noundef nonnull align 8 dereferenceable(32) %318)
          to label %2046 unwind label %2085

2046:                                             ; preds = %2044
  %2047 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2045, ptr noundef nonnull @.str.20)
          to label %2048 unwind label %2085

2048:                                             ; preds = %2046
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %321) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %322) #7
  %2049 = load ptr, ptr %2028, align 8, !tbaa !35
  %2050 = load ptr, ptr %2049, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %323) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef %2050, ptr noundef nonnull align 1 dereferenceable(1) %323)
          to label %2051 unwind label %2087

2051:                                             ; preds = %2048
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %321, ptr noundef nonnull align 8 dereferenceable(32) %322)
          to label %2052 unwind label %2089

2052:                                             ; preds = %2051
  %2053 = 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) %2047, ptr noundef nonnull align 8 dereferenceable(32) %321)
          to label %2054 unwind label %2091

2054:                                             ; preds = %2052
  %2055 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2053, ptr noundef nonnull @.str.21)
          to label %2056 unwind label %2091

2056:                                             ; preds = %2054
  %2057 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2055, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2058 unwind label %2091

2058:                                             ; preds = %2056
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %323) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %321) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %318) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %320) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %319) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %318) #7
  invoke void @_Z4failv()
          to label %2098 unwind label %1325

2059:                                             ; preds = %2026
  %2060 = landingpad { ptr, i32 }
          cleanup
  br label %2063

2061:                                             ; preds = %2027
  %2062 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %311) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %310) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %308) #7
  br label %2063

2063:                                             ; preds = %2061, %2059
  %.pn791 = phi { ptr, i32 } [ %2062, %2061 ], [ %2060, %2059 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %309) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %309) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %308) #7
  br label %2503

2064:                                             ; preds = %2033
  %2065 = landingpad { ptr, i32 }
          cleanup
  br label %2080

2066:                                             ; preds = %2034
  %2067 = landingpad { ptr, i32 }
          cleanup
  br label %2079

2068:                                             ; preds = %2035
  %2069 = landingpad { ptr, i32 }
          cleanup
  br label %2078

2070:                                             ; preds = %2036
  %2071 = landingpad { ptr, i32 }
          cleanup
  br label %2077

2072:                                             ; preds = %2037
  %2073 = landingpad { ptr, i32 }
          cleanup
  br label %2076

2074:                                             ; preds = %2038
  %2075 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %312) #7
  br label %2076

2076:                                             ; preds = %2074, %2072
  %.pn793 = phi { ptr, i32 } [ %2075, %2074 ], [ %2073, %2072 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #7
  br label %2077

2077:                                             ; preds = %2076, %2070
  %.pn793.pn = phi { ptr, i32 } [ %.pn793, %2076 ], [ %2071, %2070 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %314) #7
  br label %2078

2078:                                             ; preds = %2077, %2068
  %.pn793.pn.pn = phi { ptr, i32 } [ %.pn793.pn, %2077 ], [ %2069, %2068 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %315) #7
  br label %2079

2079:                                             ; preds = %2078, %2066
  %.pn793.pn.pn.pn = phi { ptr, i32 } [ %.pn793.pn.pn, %2078 ], [ %2067, %2066 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #7
  br label %2080

2080:                                             ; preds = %2079, %2064
  %.pn793.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn793.pn.pn.pn, %2079 ], [ %2065, %2064 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %317) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %317) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %316) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %315) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %314) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %313) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %312) #7
  br label %2503

2081:                                             ; preds = %2042
  %2082 = landingpad { ptr, i32 }
          cleanup
  br label %2097

2083:                                             ; preds = %2043
  %2084 = landingpad { ptr, i32 }
          cleanup
  br label %2096

2085:                                             ; preds = %2046, %2044
  %2086 = landingpad { ptr, i32 }
          cleanup
  br label %2095

2087:                                             ; preds = %2048
  %2088 = landingpad { ptr, i32 }
          cleanup
  br label %2094

2089:                                             ; preds = %2051
  %2090 = landingpad { ptr, i32 }
          cleanup
  br label %2093

2091:                                             ; preds = %2056, %2054, %2052
  %2092 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #7
  br label %2093

2093:                                             ; preds = %2091, %2089
  %.pn799 = phi { ptr, i32 } [ %2092, %2091 ], [ %2090, %2089 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #7
  br label %2094

2094:                                             ; preds = %2093, %2087
  %.pn799.pn = phi { ptr, i32 } [ %.pn799, %2093 ], [ %2088, %2087 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %323) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %323) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %321) #7
  br label %2095

2095:                                             ; preds = %2094, %2085
  %.pn799.pn.pn = phi { ptr, i32 } [ %.pn799.pn, %2094 ], [ %2086, %2085 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %318) #7
  br label %2096

2096:                                             ; preds = %2095, %2083
  %.pn799.pn.pn.pn = phi { ptr, i32 } [ %.pn799.pn.pn, %2095 ], [ %2084, %2083 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #7
  br label %2097

2097:                                             ; preds = %2096, %2081
  %.pn799.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn799.pn.pn.pn, %2096 ], [ %2082, %2081 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %320) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %320) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %319) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %318) #7
  br label %2503

2098:                                             ; preds = %2058, %2031
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %324) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %325) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef nonnull @.str.172, ptr noundef nonnull align 1 dereferenceable(1) %325)
          to label %2099 unwind label %2131

2099:                                             ; preds = %2098
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %326) #7
  %2100 = getelementptr inbounds i8, ptr %2, i64 320
  %2101 = load ptr, ptr %2100, align 8, !tbaa !36
  %2102 = load ptr, ptr %2101, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %327) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %327) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %326, ptr noundef %2102, ptr noundef nonnull align 1 dereferenceable(1) %327)
          to label %2103 unwind label %2133

2103:                                             ; preds = %2099
  %2104 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %327) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %327) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %326) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %325) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %324) #7
  br i1 %2104, label %2105, label %2170

2105:                                             ; preds = %2103
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %328) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %329) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %330) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %331) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %332) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %333) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %333) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %333)
          to label %2106 unwind label %2136

2106:                                             ; preds = %2105
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %331, ptr noundef nonnull align 8 dereferenceable(32) %332, ptr noundef nonnull @.str.245)
          to label %2107 unwind label %2138

2107:                                             ; preds = %2106
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %330, ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull @.str.3)
          to label %2108 unwind label %2140

2108:                                             ; preds = %2107
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %329, ptr noundef nonnull align 8 dereferenceable(32) %330, ptr noundef nonnull @.str.246)
          to label %2109 unwind label %2142

2109:                                             ; preds = %2108
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %328, ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef nonnull @.str.18)
          to label %2110 unwind label %2144

2110:                                             ; preds = %2109
  %2111 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %328)
          to label %2112 unwind label %2146

2112:                                             ; preds = %2110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %333) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %333) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %332) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %330) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %328) #7
  %2113 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %2114 unwind label %1325

2114:                                             ; preds = %2112
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %334) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %335) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %336) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %336) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %335, ptr noundef nonnull @.str.172, ptr noundef nonnull align 1 dereferenceable(1) %336)
          to label %2115 unwind label %2153

2115:                                             ; preds = %2114
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %334, ptr noundef nonnull align 8 dereferenceable(32) %335)
          to label %2116 unwind label %2155

2116:                                             ; preds = %2115
  %2117 = 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) %2113, ptr noundef nonnull align 8 dereferenceable(32) %334)
          to label %2118 unwind label %2157

2118:                                             ; preds = %2116
  %2119 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2117, ptr noundef nonnull @.str.20)
          to label %2120 unwind label %2157

2120:                                             ; preds = %2118
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %337) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %338) #7
  %2121 = load ptr, ptr %2100, align 8, !tbaa !36
  %2122 = load ptr, ptr %2121, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %339) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %339) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %338, ptr noundef %2122, ptr noundef nonnull align 1 dereferenceable(1) %339)
          to label %2123 unwind label %2159

2123:                                             ; preds = %2120
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %337, ptr noundef nonnull align 8 dereferenceable(32) %338)
          to label %2124 unwind label %2161

2124:                                             ; preds = %2123
  %2125 = 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) %2119, ptr noundef nonnull align 8 dereferenceable(32) %337)
          to label %2126 unwind label %2163

2126:                                             ; preds = %2124
  %2127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2125, ptr noundef nonnull @.str.21)
          to label %2128 unwind label %2163

2128:                                             ; preds = %2126
  %2129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2127, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2130 unwind label %2163

2130:                                             ; preds = %2128
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %339) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %339) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %338) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %337) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %336) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %336) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %335) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %334) #7
  invoke void @_Z4failv()
          to label %2170 unwind label %1325

2131:                                             ; preds = %2098
  %2132 = landingpad { ptr, i32 }
          cleanup
  br label %2135

2133:                                             ; preds = %2099
  %2134 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %327) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %327) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %326) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  br label %2135

2135:                                             ; preds = %2133, %2131
  %.pn805 = phi { ptr, i32 } [ %2134, %2133 ], [ %2132, %2131 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %325) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %325) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %324) #7
  br label %2503

2136:                                             ; preds = %2105
  %2137 = landingpad { ptr, i32 }
          cleanup
  br label %2152

2138:                                             ; preds = %2106
  %2139 = landingpad { ptr, i32 }
          cleanup
  br label %2151

2140:                                             ; preds = %2107
  %2141 = landingpad { ptr, i32 }
          cleanup
  br label %2150

2142:                                             ; preds = %2108
  %2143 = landingpad { ptr, i32 }
          cleanup
  br label %2149

2144:                                             ; preds = %2109
  %2145 = landingpad { ptr, i32 }
          cleanup
  br label %2148

2146:                                             ; preds = %2110
  %2147 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #7
  br label %2148

2148:                                             ; preds = %2146, %2144
  %.pn807 = phi { ptr, i32 } [ %2147, %2146 ], [ %2145, %2144 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #7
  br label %2149

2149:                                             ; preds = %2148, %2142
  %.pn807.pn = phi { ptr, i32 } [ %.pn807, %2148 ], [ %2143, %2142 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #7
  br label %2150

2150:                                             ; preds = %2149, %2140
  %.pn807.pn.pn = phi { ptr, i32 } [ %.pn807.pn, %2149 ], [ %2141, %2140 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %331) #7
  br label %2151

2151:                                             ; preds = %2150, %2138
  %.pn807.pn.pn.pn = phi { ptr, i32 } [ %.pn807.pn.pn, %2150 ], [ %2139, %2138 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #7
  br label %2152

2152:                                             ; preds = %2151, %2136
  %.pn807.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn807.pn.pn.pn, %2151 ], [ %2137, %2136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %333) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %333) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %332) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %331) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %330) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %328) #7
  br label %2503

2153:                                             ; preds = %2114
  %2154 = landingpad { ptr, i32 }
          cleanup
  br label %2169

2155:                                             ; preds = %2115
  %2156 = landingpad { ptr, i32 }
          cleanup
  br label %2168

2157:                                             ; preds = %2118, %2116
  %2158 = landingpad { ptr, i32 }
          cleanup
  br label %2167

2159:                                             ; preds = %2120
  %2160 = landingpad { ptr, i32 }
          cleanup
  br label %2166

2161:                                             ; preds = %2123
  %2162 = landingpad { ptr, i32 }
          cleanup
  br label %2165

2163:                                             ; preds = %2128, %2126, %2124
  %2164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #7
  br label %2165

2165:                                             ; preds = %2163, %2161
  %.pn813 = phi { ptr, i32 } [ %2164, %2163 ], [ %2162, %2161 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #7
  br label %2166

2166:                                             ; preds = %2165, %2159
  %.pn813.pn = phi { ptr, i32 } [ %.pn813, %2165 ], [ %2160, %2159 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %339) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %339) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %338) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %337) #7
  br label %2167

2167:                                             ; preds = %2166, %2157
  %.pn813.pn.pn = phi { ptr, i32 } [ %.pn813.pn, %2166 ], [ %2158, %2157 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #7
  br label %2168

2168:                                             ; preds = %2167, %2155
  %.pn813.pn.pn.pn = phi { ptr, i32 } [ %.pn813.pn.pn, %2167 ], [ %2156, %2155 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #7
  br label %2169

2169:                                             ; preds = %2168, %2153
  %.pn813.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn813.pn.pn.pn, %2168 ], [ %2154, %2153 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %336) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %336) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %335) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %334) #7
  br label %2503

2170:                                             ; preds = %2130, %2103
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %340) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %341) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull @.str.173, ptr noundef nonnull align 1 dereferenceable(1) %341)
          to label %2171 unwind label %2204

2171:                                             ; preds = %2170
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %342) #7
  %2172 = load ptr, ptr %1884, align 8, !tbaa !33
  %2173 = getelementptr inbounds i8, ptr %2172, i64 8
  %2174 = load ptr, ptr %2173, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %343) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef %2174, ptr noundef nonnull align 1 dereferenceable(1) %343)
          to label %2175 unwind label %2206

2175:                                             ; preds = %2171
  %2176 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %341) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %340) #7
  br i1 %2176, label %2177, label %2243

2177:                                             ; preds = %2175
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %344) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %345) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %346) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %347) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %348) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %349) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %349)
          to label %2178 unwind label %2209

2178:                                             ; preds = %2177
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %347, ptr noundef nonnull align 8 dereferenceable(32) %348, ptr noundef nonnull @.str.247)
          to label %2179 unwind label %2211

2179:                                             ; preds = %2178
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %346, ptr noundef nonnull align 8 dereferenceable(32) %347, ptr noundef nonnull @.str.3)
          to label %2180 unwind label %2213

2180:                                             ; preds = %2179
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %345, ptr noundef nonnull align 8 dereferenceable(32) %346, ptr noundef nonnull @.str.248)
          to label %2181 unwind label %2215

2181:                                             ; preds = %2180
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %344, ptr noundef nonnull align 8 dereferenceable(32) %345, ptr noundef nonnull @.str.18)
          to label %2182 unwind label %2217

2182:                                             ; preds = %2181
  %2183 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %344)
          to label %2184 unwind label %2219

2184:                                             ; preds = %2182
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %347) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %349) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %348) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %347) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %346) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %344) #7
  %2185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %2186 unwind label %1325

2186:                                             ; preds = %2184
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %350) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %351) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %352) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %352) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %351, ptr noundef nonnull @.str.173, ptr noundef nonnull align 1 dereferenceable(1) %352)
          to label %2187 unwind label %2226

2187:                                             ; preds = %2186
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %350, ptr noundef nonnull align 8 dereferenceable(32) %351)
          to label %2188 unwind label %2228

2188:                                             ; preds = %2187
  %2189 = 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) %2185, ptr noundef nonnull align 8 dereferenceable(32) %350)
          to label %2190 unwind label %2230

2190:                                             ; preds = %2188
  %2191 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2189, ptr noundef nonnull @.str.20)
          to label %2192 unwind label %2230

2192:                                             ; preds = %2190
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %353) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %354) #7
  %2193 = load ptr, ptr %1884, align 8, !tbaa !33
  %2194 = getelementptr inbounds i8, ptr %2193, i64 8
  %2195 = load ptr, ptr %2194, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %355) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %354, ptr noundef %2195, ptr noundef nonnull align 1 dereferenceable(1) %355)
          to label %2196 unwind label %2232

2196:                                             ; preds = %2192
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %353, ptr noundef nonnull align 8 dereferenceable(32) %354)
          to label %2197 unwind label %2234

2197:                                             ; preds = %2196
  %2198 = 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) %2191, ptr noundef nonnull align 8 dereferenceable(32) %353)
          to label %2199 unwind label %2236

2199:                                             ; preds = %2197
  %2200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2198, ptr noundef nonnull @.str.21)
          to label %2201 unwind label %2236

2201:                                             ; preds = %2199
  %2202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2200, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2203 unwind label %2236

2203:                                             ; preds = %2201
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %355) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %354) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %353) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %350) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %352) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %352) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %350) #7
  invoke void @_Z4failv()
          to label %2243 unwind label %1325

2204:                                             ; preds = %2170
  %2205 = landingpad { ptr, i32 }
          cleanup
  br label %2208

2206:                                             ; preds = %2171
  %2207 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %343) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %343) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %340) #7
  br label %2208

2208:                                             ; preds = %2206, %2204
  %.pn819 = phi { ptr, i32 } [ %2207, %2206 ], [ %2205, %2204 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %341) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %341) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %340) #7
  br label %2503

2209:                                             ; preds = %2177
  %2210 = landingpad { ptr, i32 }
          cleanup
  br label %2225

2211:                                             ; preds = %2178
  %2212 = landingpad { ptr, i32 }
          cleanup
  br label %2224

2213:                                             ; preds = %2179
  %2214 = landingpad { ptr, i32 }
          cleanup
  br label %2223

2215:                                             ; preds = %2180
  %2216 = landingpad { ptr, i32 }
          cleanup
  br label %2222

2217:                                             ; preds = %2181
  %2218 = landingpad { ptr, i32 }
          cleanup
  br label %2221

2219:                                             ; preds = %2182
  %2220 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #7
  br label %2221

2221:                                             ; preds = %2219, %2217
  %.pn821 = phi { ptr, i32 } [ %2220, %2219 ], [ %2218, %2217 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %345) #7
  br label %2222

2222:                                             ; preds = %2221, %2215
  %.pn821.pn = phi { ptr, i32 } [ %.pn821, %2221 ], [ %2216, %2215 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #7
  br label %2223

2223:                                             ; preds = %2222, %2213
  %.pn821.pn.pn = phi { ptr, i32 } [ %.pn821.pn, %2222 ], [ %2214, %2213 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %347) #7
  br label %2224

2224:                                             ; preds = %2223, %2211
  %.pn821.pn.pn.pn = phi { ptr, i32 } [ %.pn821.pn.pn, %2223 ], [ %2212, %2211 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %348) #7
  br label %2225

2225:                                             ; preds = %2224, %2209
  %.pn821.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn821.pn.pn.pn, %2224 ], [ %2210, %2209 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %349) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %349) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %348) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %347) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %346) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %345) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %344) #7
  br label %2503

2226:                                             ; preds = %2186
  %2227 = landingpad { ptr, i32 }
          cleanup
  br label %2242

2228:                                             ; preds = %2187
  %2229 = landingpad { ptr, i32 }
          cleanup
  br label %2241

2230:                                             ; preds = %2190, %2188
  %2231 = landingpad { ptr, i32 }
          cleanup
  br label %2240

2232:                                             ; preds = %2192
  %2233 = landingpad { ptr, i32 }
          cleanup
  br label %2239

2234:                                             ; preds = %2196
  %2235 = landingpad { ptr, i32 }
          cleanup
  br label %2238

2236:                                             ; preds = %2201, %2199, %2197
  %2237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #7
  br label %2238

2238:                                             ; preds = %2236, %2234
  %.pn827 = phi { ptr, i32 } [ %2237, %2236 ], [ %2235, %2234 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #7
  br label %2239

2239:                                             ; preds = %2238, %2232
  %.pn827.pn = phi { ptr, i32 } [ %.pn827, %2238 ], [ %2233, %2232 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %355) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %355) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %354) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %353) #7
  br label %2240

2240:                                             ; preds = %2239, %2230
  %.pn827.pn.pn = phi { ptr, i32 } [ %.pn827.pn, %2239 ], [ %2231, %2230 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %350) #7
  br label %2241

2241:                                             ; preds = %2240, %2228
  %.pn827.pn.pn.pn = phi { ptr, i32 } [ %.pn827.pn.pn, %2240 ], [ %2229, %2228 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #7
  br label %2242

2242:                                             ; preds = %2241, %2226
  %.pn827.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn827.pn.pn.pn, %2241 ], [ %2227, %2226 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %352) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %352) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %350) #7
  br label %2503

2243:                                             ; preds = %2203, %2175
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %356) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %357) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %357) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %356, ptr noundef nonnull @.str.174, ptr noundef nonnull align 1 dereferenceable(1) %357)
          to label %2244 unwind label %2277

2244:                                             ; preds = %2243
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %358) #7
  %2245 = load ptr, ptr %1956, align 8, !tbaa !34
  %2246 = getelementptr inbounds i8, ptr %2245, i64 8
  %2247 = load ptr, ptr %2246, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %359) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %358, ptr noundef %2247, ptr noundef nonnull align 1 dereferenceable(1) %359)
          to label %2248 unwind label %2279

2248:                                             ; preds = %2244
  %2249 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %356, ptr noundef nonnull align 8 dereferenceable(32) %358) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %359) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %358) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %357) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %357) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %356) #7
  br i1 %2249, label %2250, label %2316

2250:                                             ; preds = %2248
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %360) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %361) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %362) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %363) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %364) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %365) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %365)
          to label %2251 unwind label %2282

2251:                                             ; preds = %2250
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %363, ptr noundef nonnull align 8 dereferenceable(32) %364, ptr noundef nonnull @.str.249)
          to label %2252 unwind label %2284

2252:                                             ; preds = %2251
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %362, ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull @.str.3)
          to label %2253 unwind label %2286

2253:                                             ; preds = %2252
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %361, ptr noundef nonnull align 8 dereferenceable(32) %362, ptr noundef nonnull @.str.250)
          to label %2254 unwind label %2288

2254:                                             ; preds = %2253
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %360, ptr noundef nonnull align 8 dereferenceable(32) %361, ptr noundef nonnull @.str.18)
          to label %2255 unwind label %2290

2255:                                             ; preds = %2254
  %2256 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %360)
          to label %2257 unwind label %2292

2257:                                             ; preds = %2255
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %365) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %364) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %363) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %362) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %360) #7
  %2258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %2259 unwind label %1325

2259:                                             ; preds = %2257
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %366) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %367) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %368) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %368) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %367, ptr noundef nonnull @.str.174, ptr noundef nonnull align 1 dereferenceable(1) %368)
          to label %2260 unwind label %2299

2260:                                             ; preds = %2259
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %366, ptr noundef nonnull align 8 dereferenceable(32) %367)
          to label %2261 unwind label %2301

2261:                                             ; preds = %2260
  %2262 = 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) %2258, ptr noundef nonnull align 8 dereferenceable(32) %366)
          to label %2263 unwind label %2303

2263:                                             ; preds = %2261
  %2264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2262, ptr noundef nonnull @.str.20)
          to label %2265 unwind label %2303

2265:                                             ; preds = %2263
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %369) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %370) #7
  %2266 = load ptr, ptr %1956, align 8, !tbaa !34
  %2267 = getelementptr inbounds i8, ptr %2266, i64 8
  %2268 = load ptr, ptr %2267, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %371) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %370, ptr noundef %2268, ptr noundef nonnull align 1 dereferenceable(1) %371)
          to label %2269 unwind label %2305

2269:                                             ; preds = %2265
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %369, ptr noundef nonnull align 8 dereferenceable(32) %370)
          to label %2270 unwind label %2307

2270:                                             ; preds = %2269
  %2271 = 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) %2264, ptr noundef nonnull align 8 dereferenceable(32) %369)
          to label %2272 unwind label %2309

2272:                                             ; preds = %2270
  %2273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2271, ptr noundef nonnull @.str.21)
          to label %2274 unwind label %2309

2274:                                             ; preds = %2272
  %2275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2273, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2276 unwind label %2309

2276:                                             ; preds = %2274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %371) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %370) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %369) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %368) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %368) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %366) #7
  invoke void @_Z4failv()
          to label %2316 unwind label %1325

2277:                                             ; preds = %2243
  %2278 = landingpad { ptr, i32 }
          cleanup
  br label %2281

2279:                                             ; preds = %2244
  %2280 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %359) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %358) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #7
  br label %2281

2281:                                             ; preds = %2279, %2277
  %.pn833 = phi { ptr, i32 } [ %2280, %2279 ], [ %2278, %2277 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %357) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %357) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %356) #7
  br label %2503

2282:                                             ; preds = %2250
  %2283 = landingpad { ptr, i32 }
          cleanup
  br label %2298

2284:                                             ; preds = %2251
  %2285 = landingpad { ptr, i32 }
          cleanup
  br label %2297

2286:                                             ; preds = %2252
  %2287 = landingpad { ptr, i32 }
          cleanup
  br label %2296

2288:                                             ; preds = %2253
  %2289 = landingpad { ptr, i32 }
          cleanup
  br label %2295

2290:                                             ; preds = %2254
  %2291 = landingpad { ptr, i32 }
          cleanup
  br label %2294

2292:                                             ; preds = %2255
  %2293 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %360) #7
  br label %2294

2294:                                             ; preds = %2292, %2290
  %.pn835 = phi { ptr, i32 } [ %2293, %2292 ], [ %2291, %2290 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #7
  br label %2295

2295:                                             ; preds = %2294, %2288
  %.pn835.pn = phi { ptr, i32 } [ %.pn835, %2294 ], [ %2289, %2288 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %362) #7
  br label %2296

2296:                                             ; preds = %2295, %2286
  %.pn835.pn.pn = phi { ptr, i32 } [ %.pn835.pn, %2295 ], [ %2287, %2286 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #7
  br label %2297

2297:                                             ; preds = %2296, %2284
  %.pn835.pn.pn.pn = phi { ptr, i32 } [ %.pn835.pn.pn, %2296 ], [ %2285, %2284 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #7
  br label %2298

2298:                                             ; preds = %2297, %2282
  %.pn835.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn835.pn.pn.pn, %2297 ], [ %2283, %2282 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %365) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %365) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %364) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %363) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %362) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %361) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %360) #7
  br label %2503

2299:                                             ; preds = %2259
  %2300 = landingpad { ptr, i32 }
          cleanup
  br label %2315

2301:                                             ; preds = %2260
  %2302 = landingpad { ptr, i32 }
          cleanup
  br label %2314

2303:                                             ; preds = %2263, %2261
  %2304 = landingpad { ptr, i32 }
          cleanup
  br label %2313

2305:                                             ; preds = %2265
  %2306 = landingpad { ptr, i32 }
          cleanup
  br label %2312

2307:                                             ; preds = %2269
  %2308 = landingpad { ptr, i32 }
          cleanup
  br label %2311

2309:                                             ; preds = %2274, %2272, %2270
  %2310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %369) #7
  br label %2311

2311:                                             ; preds = %2309, %2307
  %.pn841 = phi { ptr, i32 } [ %2310, %2309 ], [ %2308, %2307 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %370) #7
  br label %2312

2312:                                             ; preds = %2311, %2305
  %.pn841.pn = phi { ptr, i32 } [ %.pn841, %2311 ], [ %2306, %2305 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %371) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %371) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %370) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %369) #7
  br label %2313

2313:                                             ; preds = %2312, %2303
  %.pn841.pn.pn = phi { ptr, i32 } [ %.pn841.pn, %2312 ], [ %2304, %2303 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #7
  br label %2314

2314:                                             ; preds = %2313, %2301
  %.pn841.pn.pn.pn = phi { ptr, i32 } [ %.pn841.pn.pn, %2313 ], [ %2302, %2301 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %367) #7
  br label %2315

2315:                                             ; preds = %2314, %2299
  %.pn841.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn841.pn.pn.pn, %2314 ], [ %2300, %2299 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %368) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %368) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %367) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %366) #7
  br label %2503

2316:                                             ; preds = %2276, %2248
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %372) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %373) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %373) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %372, ptr noundef nonnull @.str.175, ptr noundef nonnull align 1 dereferenceable(1) %373)
          to label %2317 unwind label %2350

2317:                                             ; preds = %2316
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %374) #7
  %2318 = load ptr, ptr %2028, align 8, !tbaa !35
  %2319 = getelementptr inbounds i8, ptr %2318, i64 8
  %2320 = load ptr, ptr %2319, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %375) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %374, ptr noundef %2320, ptr noundef nonnull align 1 dereferenceable(1) %375)
          to label %2321 unwind label %2352

2321:                                             ; preds = %2317
  %2322 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %372, ptr noundef nonnull align 8 dereferenceable(32) %374) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %374) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %375) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %374) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %373) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %373) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %372) #7
  br i1 %2322, label %2323, label %2389

2323:                                             ; preds = %2321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %376) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %377) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %378) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %379) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %380) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %381) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %381)
          to label %2324 unwind label %2355

2324:                                             ; preds = %2323
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %379, ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef nonnull @.str.251)
          to label %2325 unwind label %2357

2325:                                             ; preds = %2324
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %378, ptr noundef nonnull align 8 dereferenceable(32) %379, ptr noundef nonnull @.str.3)
          to label %2326 unwind label %2359

2326:                                             ; preds = %2325
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %377, ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef nonnull @.str.252)
          to label %2327 unwind label %2361

2327:                                             ; preds = %2326
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %376, ptr noundef nonnull align 8 dereferenceable(32) %377, ptr noundef nonnull @.str.18)
          to label %2328 unwind label %2363

2328:                                             ; preds = %2327
  %2329 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %376)
          to label %2330 unwind label %2365

2330:                                             ; preds = %2328
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %381) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %380) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %379) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %378) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %377) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %376) #7
  %2331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %2332 unwind label %1325

2332:                                             ; preds = %2330
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %382) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %383) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %384) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %384) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %383, ptr noundef nonnull @.str.175, ptr noundef nonnull align 1 dereferenceable(1) %384)
          to label %2333 unwind label %2372

2333:                                             ; preds = %2332
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %382, ptr noundef nonnull align 8 dereferenceable(32) %383)
          to label %2334 unwind label %2374

2334:                                             ; preds = %2333
  %2335 = 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) %2331, ptr noundef nonnull align 8 dereferenceable(32) %382)
          to label %2336 unwind label %2376

2336:                                             ; preds = %2334
  %2337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2335, ptr noundef nonnull @.str.20)
          to label %2338 unwind label %2376

2338:                                             ; preds = %2336
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %385) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %386) #7
  %2339 = load ptr, ptr %2028, align 8, !tbaa !35
  %2340 = getelementptr inbounds i8, ptr %2339, i64 8
  %2341 = load ptr, ptr %2340, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %387) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %387) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %386, ptr noundef %2341, ptr noundef nonnull align 1 dereferenceable(1) %387)
          to label %2342 unwind label %2378

2342:                                             ; preds = %2338
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %385, ptr noundef nonnull align 8 dereferenceable(32) %386)
          to label %2343 unwind label %2380

2343:                                             ; preds = %2342
  %2344 = 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) %2337, ptr noundef nonnull align 8 dereferenceable(32) %385)
          to label %2345 unwind label %2382

2345:                                             ; preds = %2343
  %2346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2344, ptr noundef nonnull @.str.21)
          to label %2347 unwind label %2382

2347:                                             ; preds = %2345
  %2348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2346, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2349 unwind label %2382

2349:                                             ; preds = %2347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %385) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %387) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %387) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %386) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %385) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %383) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %384) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %384) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %383) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %382) #7
  invoke void @_Z4failv()
          to label %2389 unwind label %1325

2350:                                             ; preds = %2316
  %2351 = landingpad { ptr, i32 }
          cleanup
  br label %2354

2352:                                             ; preds = %2317
  %2353 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %375) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %375) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %374) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #7
  br label %2354

2354:                                             ; preds = %2352, %2350
  %.pn847 = phi { ptr, i32 } [ %2353, %2352 ], [ %2351, %2350 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %373) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %373) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %372) #7
  br label %2503

2355:                                             ; preds = %2323
  %2356 = landingpad { ptr, i32 }
          cleanup
  br label %2371

2357:                                             ; preds = %2324
  %2358 = landingpad { ptr, i32 }
          cleanup
  br label %2370

2359:                                             ; preds = %2325
  %2360 = landingpad { ptr, i32 }
          cleanup
  br label %2369

2361:                                             ; preds = %2326
  %2362 = landingpad { ptr, i32 }
          cleanup
  br label %2368

2363:                                             ; preds = %2327
  %2364 = landingpad { ptr, i32 }
          cleanup
  br label %2367

2365:                                             ; preds = %2328
  %2366 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %376) #7
  br label %2367

2367:                                             ; preds = %2365, %2363
  %.pn849 = phi { ptr, i32 } [ %2366, %2365 ], [ %2364, %2363 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #7
  br label %2368

2368:                                             ; preds = %2367, %2361
  %.pn849.pn = phi { ptr, i32 } [ %.pn849, %2367 ], [ %2362, %2361 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378) #7
  br label %2369

2369:                                             ; preds = %2368, %2359
  %.pn849.pn.pn = phi { ptr, i32 } [ %.pn849.pn, %2368 ], [ %2360, %2359 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %379) #7
  br label %2370

2370:                                             ; preds = %2369, %2357
  %.pn849.pn.pn.pn = phi { ptr, i32 } [ %.pn849.pn.pn, %2369 ], [ %2358, %2357 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #7
  br label %2371

2371:                                             ; preds = %2370, %2355
  %.pn849.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn849.pn.pn.pn, %2370 ], [ %2356, %2355 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %381) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %381) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %380) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %379) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %378) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %377) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %376) #7
  br label %2503

2372:                                             ; preds = %2332
  %2373 = landingpad { ptr, i32 }
          cleanup
  br label %2388

2374:                                             ; preds = %2333
  %2375 = landingpad { ptr, i32 }
          cleanup
  br label %2387

2376:                                             ; preds = %2336, %2334
  %2377 = landingpad { ptr, i32 }
          cleanup
  br label %2386

2378:                                             ; preds = %2338
  %2379 = landingpad { ptr, i32 }
          cleanup
  br label %2385

2380:                                             ; preds = %2342
  %2381 = landingpad { ptr, i32 }
          cleanup
  br label %2384

2382:                                             ; preds = %2347, %2345, %2343
  %2383 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %385) #7
  br label %2384

2384:                                             ; preds = %2382, %2380
  %.pn855 = phi { ptr, i32 } [ %2383, %2382 ], [ %2381, %2380 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #7
  br label %2385

2385:                                             ; preds = %2384, %2378
  %.pn855.pn = phi { ptr, i32 } [ %.pn855, %2384 ], [ %2379, %2378 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %387) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %387) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %386) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %385) #7
  br label %2386

2386:                                             ; preds = %2385, %2376
  %.pn855.pn.pn = phi { ptr, i32 } [ %.pn855.pn, %2385 ], [ %2377, %2376 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %382) #7
  br label %2387

2387:                                             ; preds = %2386, %2374
  %.pn855.pn.pn.pn = phi { ptr, i32 } [ %.pn855.pn.pn, %2386 ], [ %2375, %2374 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %383) #7
  br label %2388

2388:                                             ; preds = %2387, %2372
  %.pn855.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn855.pn.pn.pn, %2387 ], [ %2373, %2372 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %384) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %384) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %383) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %382) #7
  br label %2503

2389:                                             ; preds = %2349, %2321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %388) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %389) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %389) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef nonnull @.str.176, ptr noundef nonnull align 1 dereferenceable(1) %389)
          to label %2390 unwind label %2423

2390:                                             ; preds = %2389
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %390) #7
  %2391 = load ptr, ptr %2100, align 8, !tbaa !36
  %2392 = getelementptr inbounds i8, ptr %2391, i64 8
  %2393 = load ptr, ptr %2392, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %391) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %390, ptr noundef %2393, ptr noundef nonnull align 1 dereferenceable(1) %391)
          to label %2394 unwind label %2425

2394:                                             ; preds = %2390
  %2395 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef nonnull align 8 dereferenceable(32) %390) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %391) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %390) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %389) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %389) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %388) #7
  br i1 %2395, label %2396, label %2462

2396:                                             ; preds = %2394
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %392) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %393) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %394) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %395) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %396) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %397) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %396, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %397)
          to label %2397 unwind label %2428

2397:                                             ; preds = %2396
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %395, ptr noundef nonnull align 8 dereferenceable(32) %396, ptr noundef nonnull @.str.253)
          to label %2398 unwind label %2430

2398:                                             ; preds = %2397
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %394, ptr noundef nonnull align 8 dereferenceable(32) %395, ptr noundef nonnull @.str.3)
          to label %2399 unwind label %2432

2399:                                             ; preds = %2398
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %393, ptr noundef nonnull align 8 dereferenceable(32) %394, ptr noundef nonnull @.str.254)
          to label %2400 unwind label %2434

2400:                                             ; preds = %2399
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %392, ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef nonnull @.str.18)
          to label %2401 unwind label %2436

2401:                                             ; preds = %2400
  %2402 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %392)
          to label %2403 unwind label %2438

2403:                                             ; preds = %2401
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %392) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %394) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %397) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %396) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %395) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %394) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %393) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %392) #7
  %2404 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %2405 unwind label %1325

2405:                                             ; preds = %2403
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %398) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %399) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %400) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %399, ptr noundef nonnull @.str.176, ptr noundef nonnull align 1 dereferenceable(1) %400)
          to label %2406 unwind label %2445

2406:                                             ; preds = %2405
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %398, ptr noundef nonnull align 8 dereferenceable(32) %399)
          to label %2407 unwind label %2447

2407:                                             ; preds = %2406
  %2408 = 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) %2404, ptr noundef nonnull align 8 dereferenceable(32) %398)
          to label %2409 unwind label %2449

2409:                                             ; preds = %2407
  %2410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2408, ptr noundef nonnull @.str.20)
          to label %2411 unwind label %2449

2411:                                             ; preds = %2409
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %401) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %402) #7
  %2412 = load ptr, ptr %2100, align 8, !tbaa !36
  %2413 = getelementptr inbounds i8, ptr %2412, i64 8
  %2414 = load ptr, ptr %2413, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %403) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %403) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %402, ptr noundef %2414, ptr noundef nonnull align 1 dereferenceable(1) %403)
          to label %2415 unwind label %2451

2415:                                             ; preds = %2411
  invoke void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %401, ptr noundef nonnull align 8 dereferenceable(32) %402)
          to label %2416 unwind label %2453

2416:                                             ; preds = %2415
  %2417 = 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) %2410, ptr noundef nonnull align 8 dereferenceable(32) %401)
          to label %2418 unwind label %2455

2418:                                             ; preds = %2416
  %2419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2417, ptr noundef nonnull @.str.21)
          to label %2420 unwind label %2455

2420:                                             ; preds = %2418
  %2421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2419, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2422 unwind label %2455

2422:                                             ; preds = %2420
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %402) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %403) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %403) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %402) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %401) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %398) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %400) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %399) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %398) #7
  invoke void @_Z4failv()
          to label %2462 unwind label %1325

2423:                                             ; preds = %2389
  %2424 = landingpad { ptr, i32 }
          cleanup
  br label %2427

2425:                                             ; preds = %2390
  %2426 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %391) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %391) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %390) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #7
  br label %2427

2427:                                             ; preds = %2425, %2423
  %.pn861 = phi { ptr, i32 } [ %2426, %2425 ], [ %2424, %2423 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %389) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %389) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %388) #7
  br label %2503

2428:                                             ; preds = %2396
  %2429 = landingpad { ptr, i32 }
          cleanup
  br label %2444

2430:                                             ; preds = %2397
  %2431 = landingpad { ptr, i32 }
          cleanup
  br label %2443

2432:                                             ; preds = %2398
  %2433 = landingpad { ptr, i32 }
          cleanup
  br label %2442

2434:                                             ; preds = %2399
  %2435 = landingpad { ptr, i32 }
          cleanup
  br label %2441

2436:                                             ; preds = %2400
  %2437 = landingpad { ptr, i32 }
          cleanup
  br label %2440

2438:                                             ; preds = %2401
  %2439 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %392) #7
  br label %2440

2440:                                             ; preds = %2438, %2436
  %.pn863 = phi { ptr, i32 } [ %2439, %2438 ], [ %2437, %2436 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #7
  br label %2441

2441:                                             ; preds = %2440, %2434
  %.pn863.pn = phi { ptr, i32 } [ %.pn863, %2440 ], [ %2435, %2434 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %394) #7
  br label %2442

2442:                                             ; preds = %2441, %2432
  %.pn863.pn.pn = phi { ptr, i32 } [ %.pn863.pn, %2441 ], [ %2433, %2432 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %395) #7
  br label %2443

2443:                                             ; preds = %2442, %2430
  %.pn863.pn.pn.pn = phi { ptr, i32 } [ %.pn863.pn.pn, %2442 ], [ %2431, %2430 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #7
  br label %2444

2444:                                             ; preds = %2443, %2428
  %.pn863.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn863.pn.pn.pn, %2443 ], [ %2429, %2428 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %397) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %397) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %396) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %395) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %394) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %393) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %392) #7
  br label %2503

2445:                                             ; preds = %2405
  %2446 = landingpad { ptr, i32 }
          cleanup
  br label %2461

2447:                                             ; preds = %2406
  %2448 = landingpad { ptr, i32 }
          cleanup
  br label %2460

2449:                                             ; preds = %2409, %2407
  %2450 = landingpad { ptr, i32 }
          cleanup
  br label %2459

2451:                                             ; preds = %2411
  %2452 = landingpad { ptr, i32 }
          cleanup
  br label %2458

2453:                                             ; preds = %2415
  %2454 = landingpad { ptr, i32 }
          cleanup
  br label %2457

2455:                                             ; preds = %2420, %2418, %2416
  %2456 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #7
  br label %2457

2457:                                             ; preds = %2455, %2453
  %.pn869 = phi { ptr, i32 } [ %2456, %2455 ], [ %2454, %2453 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %402) #7
  br label %2458

2458:                                             ; preds = %2457, %2451
  %.pn869.pn = phi { ptr, i32 } [ %.pn869, %2457 ], [ %2452, %2451 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %403) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %403) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %402) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %401) #7
  br label %2459

2459:                                             ; preds = %2458, %2449
  %.pn869.pn.pn = phi { ptr, i32 } [ %.pn869.pn, %2458 ], [ %2450, %2449 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %398) #7
  br label %2460

2460:                                             ; preds = %2459, %2447
  %.pn869.pn.pn.pn = phi { ptr, i32 } [ %.pn869.pn.pn, %2459 ], [ %2448, %2447 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %399) #7
  br label %2461

2461:                                             ; preds = %2460, %2445
  %.pn869.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn869.pn.pn.pn, %2460 ], [ %2446, %2445 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %400) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %400) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %399) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %398) #7
  br label %2503

2462:                                             ; preds = %2422, %2394
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #7
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  call void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508) %2) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %2) #7
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %404) #7
  invoke void @_ZN7lodepng5StateC1Ev(ptr noundef nonnull align 8 dereferenceable(508) %404)
          to label %2463 unwind label %2508

2463:                                             ; preds = %2462
  %2464 = getelementptr inbounds i8, ptr %404, i64 56
  store i32 0, ptr %2464, align 8, !tbaa !37
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %405) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %406) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %407) #7
  call void @_ZNSt6vectorIhSaIhEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %407) #7
  %2465 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt6vectorIhSaIhEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1, i64 noundef 0) #7
  %2466 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  %2467 = invoke noundef i32 @_ZN7lodepng6decodeERSt6vectorIhSaIhEERjS4_RNS_5StateEPKhm(ptr noundef nonnull align 8 dereferenceable(24) %407, ptr noundef nonnull align 4 dereferenceable(4) %405, ptr noundef nonnull align 4 dereferenceable(4) %406, ptr noundef nonnull align 8 dereferenceable(508) %404, ptr noundef nonnull %2465, i64 noundef %2466)
          to label %2468 unwind label %2510

2468:                                             ; preds = %2463
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %408) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %409) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %410) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %411) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %411)
          to label %2469 unwind label %2512

2469:                                             ; preds = %2468
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %409, ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef nonnull @.str.255)
          to label %2470 unwind label %2514

2470:                                             ; preds = %2469
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %412) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %413) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %414) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %414) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %413, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %414)
          to label %2471 unwind label %2516

2471:                                             ; preds = %2470
  %2472 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %413) #7
  br i1 %2472, label %2473, label %2474

2473:                                             ; preds = %2471
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %415) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %415)
          to label %2476 unwind label %.critedge945.thread

2474:                                             ; preds = %2471
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %416) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %417) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %417) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %416, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %417)
          to label %2475 unwind label %.critedge944.thread

2475:                                             ; preds = %2474
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %412, ptr noundef nonnull @.str.3, ptr noundef nonnull align 8 dereferenceable(32) %416)
          to label %2476 unwind label %.thread966

2476:                                             ; preds = %2475, %2473
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %408, ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef nonnull align 8 dereferenceable(32) %412)
          to label %2477 unwind label %2521

2477:                                             ; preds = %2476
  invoke void @_Z16assertNoPNGErrorjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i32 noundef %2467, ptr noundef nonnull align 8 dereferenceable(32) %408)
          to label %2478 unwind label %2523

2478:                                             ; preds = %2477
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #7
  br i1 %2472, label %.critedge949, label %.critedge937

.critedge937:                                     ; preds = %2478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %416) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %417) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %417) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %416) #7
  br label %.critedge942

.critedge949:                                     ; preds = %2478
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %415) #7
  br label %.critedge942

.critedge942:                                     ; preds = %.critedge937, %.critedge949
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %414) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %414) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %413) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %412) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %411) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %410) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %409) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %408) #7
  %2479 = getelementptr inbounds i8, ptr %404, i64 264
  %2480 = load i64, ptr %2479, align 8, !tbaa !44
  %.not889 = icmp eq i64 %2480, 0
  br i1 %.not889, label %2557, label %2481

2481:                                             ; preds = %.critedge942
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %418) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %419) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %420) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %421) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %422) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %423) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %422, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %423)
          to label %2482 unwind label %2529

2482:                                             ; preds = %2481
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %421, ptr noundef nonnull align 8 dereferenceable(32) %422, ptr noundef nonnull @.str.256)
          to label %2483 unwind label %2531

2483:                                             ; preds = %2482
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %420, ptr noundef nonnull align 8 dereferenceable(32) %421, ptr noundef nonnull @.str.3)
          to label %2484 unwind label %2533

2484:                                             ; preds = %2483
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %419, ptr noundef nonnull align 8 dereferenceable(32) %420, ptr noundef nonnull @.str.257)
          to label %2485 unwind label %2535

2485:                                             ; preds = %2484
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %418, ptr noundef nonnull align 8 dereferenceable(32) %419, ptr noundef nonnull @.str.18)
          to label %2486 unwind label %2537

2486:                                             ; preds = %2485
  %2487 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %418)
          to label %2488 unwind label %2539

2488:                                             ; preds = %2486
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %418) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %419) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %422) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %423) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %422) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %421) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %420) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %419) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %418) #7
  %2489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %2490 unwind label %2510

2490:                                             ; preds = %2488
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %424) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %425) #7
  store i32 0, ptr %425, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %424, ptr noundef nonnull align 4 dereferenceable(4) %425)
          to label %2491 unwind label %2546

2491:                                             ; preds = %2490
  %2492 = 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) %2489, ptr noundef nonnull align 8 dereferenceable(32) %424)
          to label %2493 unwind label %2548

2493:                                             ; preds = %2491
  %2494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2492, ptr noundef nonnull @.str.20)
          to label %2495 unwind label %2548

2495:                                             ; preds = %2493
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %426) #7
  invoke void @_Z8valtostrImENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %426, ptr noundef nonnull align 8 dereferenceable(8) %2479)
          to label %2496 unwind label %2550

2496:                                             ; preds = %2495
  %2497 = 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) %2494, ptr noundef nonnull align 8 dereferenceable(32) %426)
          to label %2498 unwind label %2552

2498:                                             ; preds = %2496
  %2499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2497, ptr noundef nonnull @.str.21)
          to label %2500 unwind label %2552

2500:                                             ; preds = %2498
  %2501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2499, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2502 unwind label %2552

2502:                                             ; preds = %2500
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %426) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %426) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %425) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %424) #7
  invoke void @_Z4failv()
          to label %2557 unwind label %2510

2503:                                             ; preds = %2461, %2444, %2427, %2388, %2371, %2354, %2315, %2298, %2281, %2242, %2225, %2208, %2169, %2152, %2135, %2097, %2080, %2063, %2025, %2008, %1991, %1953, %1936, %1919, %1881, %1870, %1828, %1811, %1794, %1753, %1736, %1719, %1680, %1663, %1646, %1607, %1590, %1573, %1534, %1517, %1500, %1462, %1445, %1428, %1390, %1379, %1337, %1325, %1324
  %.pn875 = phi { ptr, i32 } [ %1326, %1325 ], [ %.pn869.pn.pn.pn.pn, %2461 ], [ %.pn863.pn.pn.pn.pn, %2444 ], [ %.pn861, %2427 ], [ %.pn855.pn.pn.pn.pn, %2388 ], [ %.pn849.pn.pn.pn.pn, %2371 ], [ %.pn847, %2354 ], [ %.pn841.pn.pn.pn.pn, %2315 ], [ %.pn835.pn.pn.pn.pn, %2298 ], [ %.pn833, %2281 ], [ %.pn827.pn.pn.pn.pn, %2242 ], [ %.pn821.pn.pn.pn.pn, %2225 ], [ %.pn819, %2208 ], [ %.pn813.pn.pn.pn.pn, %2169 ], [ %.pn807.pn.pn.pn.pn, %2152 ], [ %.pn805, %2135 ], [ %.pn799.pn.pn.pn.pn, %2097 ], [ %.pn793.pn.pn.pn.pn, %2080 ], [ %.pn791, %2063 ], [ %.pn785.pn.pn.pn.pn, %2025 ], [ %.pn779.pn.pn.pn.pn, %2008 ], [ %.pn777, %1991 ], [ %.pn771.pn.pn.pn.pn, %1953 ], [ %.pn765.pn.pn.pn.pn, %1936 ], [ %.pn763, %1919 ], [ %.pn759.pn.pn, %1881 ], [ %.pn753.pn.pn.pn.pn, %1870 ], [ %.pn746.pn.pn.pn.pn, %1828 ], [ %.pn740.pn.pn.pn.pn, %1811 ], [ %.pn738, %1794 ], [ %.pn732.pn.pn.pn.pn, %1753 ], [ %.pn726.pn.pn.pn.pn, %1736 ], [ %.pn724, %1719 ], [ %.pn718.pn.pn.pn.pn, %1680 ], [ %.pn712.pn.pn.pn.pn, %1663 ], [ %.pn710, %1646 ], [ %.pn704.pn.pn.pn.pn, %1607 ], [ %.pn698.pn.pn.pn.pn, %1590 ], [ %.pn696, %1573 ], [ %.pn690.pn.pn.pn.pn, %1534 ], [ %.pn684.pn.pn.pn.pn, %1517 ], [ %.pn682, %1500 ], [ %.pn676.pn.pn.pn.pn, %1462 ], [ %.pn670.pn.pn.pn.pn, %1445 ], [ %.pn668, %1428 ], [ %.pn664.pn.pn, %1390 ], [ %.pn658.pn.pn.pn.pn, %1379 ], [ %.pn653.pn.pn, %1337 ], [ %.pn647.pn.pn.pn.pn, %1324 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #7
  br label %2504

2504:                                             ; preds = %2503, %1306
  %.pn875.pn = phi { ptr, i32 } [ %.pn875, %2503 ], [ %1307, %1306 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %152) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #7
  br label %2505

2505:                                             ; preds = %2504, %1304
  %.pn875.pn.pn = phi { ptr, i32 } [ %.pn875.pn, %2504 ], [ %1305, %1304 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #7
  br label %2506

2506:                                             ; preds = %2505, %1277, %1266, %1224, %1213, %1171, %1160, %1118, %1107, %1065, %1054, %1012, %1001, %959, %948, %906, %895, %853, %842, %800, %789, %747, %736, %694, %683, %641, %630, %588, %577, %536, %525, %508, %490
  %.pn875.pn.pn.pn = phi { ptr, i32 } [ %.pn875.pn.pn, %2505 ], [ %491, %490 ], [ %.pn643.pn.pn, %1277 ], [ %.pn637.pn.pn.pn.pn, %1266 ], [ %.pn632.pn.pn, %1224 ], [ %.pn626.pn.pn.pn.pn, %1213 ], [ %.pn621.pn.pn, %1171 ], [ %.pn615.pn.pn.pn.pn, %1160 ], [ %.pn610.pn.pn, %1118 ], [ %.pn604.pn.pn.pn.pn, %1107 ], [ %.pn599.pn.pn, %1065 ], [ %.pn593.pn.pn.pn.pn, %1054 ], [ %.pn588.pn.pn, %1012 ], [ %.pn582.pn.pn.pn.pn, %1001 ], [ %.pn577.pn.pn, %959 ], [ %.pn571.pn.pn.pn.pn, %948 ], [ %.pn566.pn.pn, %906 ], [ %.pn560.pn.pn.pn.pn, %895 ], [ %.pn555.pn.pn, %853 ], [ %.pn549.pn.pn.pn.pn, %842 ], [ %.pn544.pn.pn, %800 ], [ %.pn538.pn.pn.pn.pn, %789 ], [ %.pn533.pn.pn, %747 ], [ %.pn527.pn.pn.pn.pn, %736 ], [ %.pn522.pn.pn, %694 ], [ %.pn516.pn.pn.pn.pn, %683 ], [ %.pn511.pn.pn, %641 ], [ %.pn505.pn.pn.pn.pn, %630 ], [ %.pn500.pn.pn, %588 ], [ %.pn494.pn.pn.pn.pn, %577 ], [ %.pn489.pn.pn, %536 ], [ %.pn483.pn.pn.pn.pn, %525 ], [ %.pn.pn.pn.pn.pn.pn.pn, %508 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7
  call void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508) %2) #7
  br label %2507

2507:                                             ; preds = %2506, %488
  %.pn875.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn875.pn.pn.pn, %2506 ], [ %489, %488 ]
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %2) #7
  br label %2666

2508:                                             ; preds = %2462
  %2509 = landingpad { ptr, i32 }
          cleanup
  br label %2665

2510:                                             ; preds = %2634, %2620, %2581, %2567, %2502, %2488, %2463
  %2511 = landingpad { ptr, i32 }
          cleanup
  br label %2664

2512:                                             ; preds = %2468
  %2513 = landingpad { ptr, i32 }
          cleanup
  br label %2528

2514:                                             ; preds = %2469
  %2515 = landingpad { ptr, i32 }
          cleanup
  br label %2527

2516:                                             ; preds = %2470
  %2517 = landingpad { ptr, i32 }
          cleanup
  br label %2526

.critedge945.thread:                              ; preds = %2473
  %2518 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge945

.critedge944.thread:                              ; preds = %2474
  %2519 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %417) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %417) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %416) #7
  br label %.critedge947

.thread966:                                       ; preds = %2475
  %2520 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge944

2521:                                             ; preds = %2476
  %2522 = landingpad { ptr, i32 }
          cleanup
  br label %2525

2523:                                             ; preds = %2477
  %2524 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #7
  br label %2525

2525:                                             ; preds = %2521, %2523
  %.pn881 = phi { ptr, i32 } [ %2524, %2523 ], [ %2522, %2521 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #7
  br i1 %2472, label %.critedge945, label %.critedge944

.critedge944:                                     ; preds = %2525, %.thread966
  %.pn881.pn970 = phi { ptr, i32 } [ %2520, %.thread966 ], [ %.pn881, %2525 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %416) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %417) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %417) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %416) #7
  br label %.critedge947

.critedge945:                                     ; preds = %2525, %.critedge945.thread
  %.pn881.pn.pn.pn983 = phi { ptr, i32 } [ %2518, %.critedge945.thread ], [ %.pn881, %2525 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %415) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %415) #7
  br label %.critedge947

.critedge947:                                     ; preds = %.critedge944, %.critedge944.thread, %.critedge945
  %.pn881.pn.pn.pn982 = phi { ptr, i32 } [ %.pn881.pn.pn.pn983, %.critedge945 ], [ %.pn881.pn970, %.critedge944 ], [ %2519, %.critedge944.thread ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #7
  br label %2526

2526:                                             ; preds = %.critedge947, %2516
  %.pn881.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn881.pn.pn.pn982, %.critedge947 ], [ %2517, %2516 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %414) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %414) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %413) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %412) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #7
  br label %2527

2527:                                             ; preds = %2526, %2514
  %.pn881.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn881.pn.pn.pn.pn, %2526 ], [ %2515, %2514 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #7
  br label %2528

2528:                                             ; preds = %2527, %2512
  %.pn881.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn881.pn.pn.pn.pn.pn, %2527 ], [ %2513, %2512 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %411) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %411) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %410) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %409) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %408) #7
  br label %2664

2529:                                             ; preds = %2481
  %2530 = landingpad { ptr, i32 }
          cleanup
  br label %2545

2531:                                             ; preds = %2482
  %2532 = landingpad { ptr, i32 }
          cleanup
  br label %2544

2533:                                             ; preds = %2483
  %2534 = landingpad { ptr, i32 }
          cleanup
  br label %2543

2535:                                             ; preds = %2484
  %2536 = landingpad { ptr, i32 }
          cleanup
  br label %2542

2537:                                             ; preds = %2485
  %2538 = landingpad { ptr, i32 }
          cleanup
  br label %2541

2539:                                             ; preds = %2486
  %2540 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %418) #7
  br label %2541

2541:                                             ; preds = %2539, %2537
  %.pn890 = phi { ptr, i32 } [ %2540, %2539 ], [ %2538, %2537 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %419) #7
  br label %2542

2542:                                             ; preds = %2541, %2535
  %.pn890.pn = phi { ptr, i32 } [ %.pn890, %2541 ], [ %2536, %2535 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %420) #7
  br label %2543

2543:                                             ; preds = %2542, %2533
  %.pn890.pn.pn = phi { ptr, i32 } [ %.pn890.pn, %2542 ], [ %2534, %2533 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #7
  br label %2544

2544:                                             ; preds = %2543, %2531
  %.pn890.pn.pn.pn = phi { ptr, i32 } [ %.pn890.pn.pn, %2543 ], [ %2532, %2531 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %422) #7
  br label %2545

2545:                                             ; preds = %2544, %2529
  %.pn890.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn890.pn.pn.pn, %2544 ], [ %2530, %2529 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %423) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %422) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %421) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %420) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %419) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %418) #7
  br label %2664

2546:                                             ; preds = %2490
  %2547 = landingpad { ptr, i32 }
          cleanup
  br label %2556

2548:                                             ; preds = %2493, %2491
  %2549 = landingpad { ptr, i32 }
          cleanup
  br label %2555

2550:                                             ; preds = %2495
  %2551 = landingpad { ptr, i32 }
          cleanup
  br label %2554

2552:                                             ; preds = %2500, %2498, %2496
  %2553 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %426) #7
  br label %2554

2554:                                             ; preds = %2552, %2550
  %.pn896 = phi { ptr, i32 } [ %2553, %2552 ], [ %2551, %2550 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %426) #7
  br label %2555

2555:                                             ; preds = %2554, %2548
  %.pn896.pn = phi { ptr, i32 } [ %.pn896, %2554 ], [ %2549, %2548 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %424) #7
  br label %2556

2556:                                             ; preds = %2555, %2546
  %.pn896.pn.pn = phi { ptr, i32 } [ %.pn896.pn, %2555 ], [ %2547, %2546 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %425) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %424) #7
  br label %2664

2557:                                             ; preds = %2502, %.critedge942
  %2558 = getelementptr inbounds i8, ptr %404, i64 288
  %2559 = load i64, ptr %2558, align 8, !tbaa !45
  %.not900 = icmp eq i64 %2559, 0
  br i1 %.not900, label %2610, label %2560

2560:                                             ; preds = %2557
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %427) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %428) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %429) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %430) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %431) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %432) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %432) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %431, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %432)
          to label %2561 unwind label %2582

2561:                                             ; preds = %2560
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %430, ptr noundef nonnull align 8 dereferenceable(32) %431, ptr noundef nonnull @.str.258)
          to label %2562 unwind label %2584

2562:                                             ; preds = %2561
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %429, ptr noundef nonnull align 8 dereferenceable(32) %430, ptr noundef nonnull @.str.3)
          to label %2563 unwind label %2586

2563:                                             ; preds = %2562
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %428, ptr noundef nonnull align 8 dereferenceable(32) %429, ptr noundef nonnull @.str.259)
          to label %2564 unwind label %2588

2564:                                             ; preds = %2563
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %427, ptr noundef nonnull align 8 dereferenceable(32) %428, ptr noundef nonnull @.str.18)
          to label %2565 unwind label %2590

2565:                                             ; preds = %2564
  %2566 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %427)
          to label %2567 unwind label %2592

2567:                                             ; preds = %2565
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %427) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %428) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %430) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %431) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %432) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %432) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %431) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %430) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %429) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %428) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %427) #7
  %2568 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %2569 unwind label %2510

2569:                                             ; preds = %2567
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %433) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %434) #7
  store i32 0, ptr %434, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %433, ptr noundef nonnull align 4 dereferenceable(4) %434)
          to label %2570 unwind label %2599

2570:                                             ; preds = %2569
  %2571 = 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) %2568, ptr noundef nonnull align 8 dereferenceable(32) %433)
          to label %2572 unwind label %2601

2572:                                             ; preds = %2570
  %2573 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2571, ptr noundef nonnull @.str.20)
          to label %2574 unwind label %2601

2574:                                             ; preds = %2572
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %435) #7
  invoke void @_Z8valtostrImENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %435, ptr noundef nonnull align 8 dereferenceable(8) %2558)
          to label %2575 unwind label %2603

2575:                                             ; preds = %2574
  %2576 = 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) %2573, ptr noundef nonnull align 8 dereferenceable(32) %435)
          to label %2577 unwind label %2605

2577:                                             ; preds = %2575
  %2578 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2576, ptr noundef nonnull @.str.21)
          to label %2579 unwind label %2605

2579:                                             ; preds = %2577
  %2580 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2578, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2581 unwind label %2605

2581:                                             ; preds = %2579
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %435) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %435) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %433) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %434) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %433) #7
  invoke void @_Z4failv()
          to label %2610 unwind label %2510

2582:                                             ; preds = %2560
  %2583 = landingpad { ptr, i32 }
          cleanup
  br label %2598

2584:                                             ; preds = %2561
  %2585 = landingpad { ptr, i32 }
          cleanup
  br label %2597

2586:                                             ; preds = %2562
  %2587 = landingpad { ptr, i32 }
          cleanup
  br label %2596

2588:                                             ; preds = %2563
  %2589 = landingpad { ptr, i32 }
          cleanup
  br label %2595

2590:                                             ; preds = %2564
  %2591 = landingpad { ptr, i32 }
          cleanup
  br label %2594

2592:                                             ; preds = %2565
  %2593 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %427) #7
  br label %2594

2594:                                             ; preds = %2592, %2590
  %.pn901 = phi { ptr, i32 } [ %2593, %2592 ], [ %2591, %2590 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %428) #7
  br label %2595

2595:                                             ; preds = %2594, %2588
  %.pn901.pn = phi { ptr, i32 } [ %.pn901, %2594 ], [ %2589, %2588 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %429) #7
  br label %2596

2596:                                             ; preds = %2595, %2586
  %.pn901.pn.pn = phi { ptr, i32 } [ %.pn901.pn, %2595 ], [ %2587, %2586 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %430) #7
  br label %2597

2597:                                             ; preds = %2596, %2584
  %.pn901.pn.pn.pn = phi { ptr, i32 } [ %.pn901.pn.pn, %2596 ], [ %2585, %2584 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %431) #7
  br label %2598

2598:                                             ; preds = %2597, %2582
  %.pn901.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn901.pn.pn.pn, %2597 ], [ %2583, %2582 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %432) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %432) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %431) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %430) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %429) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %428) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %427) #7
  br label %2664

2599:                                             ; preds = %2569
  %2600 = landingpad { ptr, i32 }
          cleanup
  br label %2609

2601:                                             ; preds = %2572, %2570
  %2602 = landingpad { ptr, i32 }
          cleanup
  br label %2608

2603:                                             ; preds = %2574
  %2604 = landingpad { ptr, i32 }
          cleanup
  br label %2607

2605:                                             ; preds = %2579, %2577, %2575
  %2606 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %435) #7
  br label %2607

2607:                                             ; preds = %2605, %2603
  %.pn907 = phi { ptr, i32 } [ %2606, %2605 ], [ %2604, %2603 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %435) #7
  br label %2608

2608:                                             ; preds = %2607, %2601
  %.pn907.pn = phi { ptr, i32 } [ %.pn907, %2607 ], [ %2602, %2601 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %433) #7
  br label %2609

2609:                                             ; preds = %2608, %2599
  %.pn907.pn.pn = phi { ptr, i32 } [ %.pn907.pn, %2608 ], [ %2600, %2599 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %434) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %433) #7
  br label %2664

2610:                                             ; preds = %2581, %2557
  %2611 = getelementptr inbounds i8, ptr %404, i64 332
  %2612 = load i32, ptr %2611, align 4, !tbaa !46
  %.not911 = icmp eq i32 %2612, 2012
  br i1 %.not911, label %2663, label %2613

2613:                                             ; preds = %2610
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %436) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %437) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %438) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %439) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %440) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %441) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %441) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %440, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %441)
          to label %2614 unwind label %2635

2614:                                             ; preds = %2613
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %439, ptr noundef nonnull align 8 dereferenceable(32) %440, ptr noundef nonnull @.str.260)
          to label %2615 unwind label %2637

2615:                                             ; preds = %2614
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %438, ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull @.str.3)
          to label %2616 unwind label %2639

2616:                                             ; preds = %2615
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %437, ptr noundef nonnull align 8 dereferenceable(32) %438, ptr noundef nonnull @.str.261)
          to label %2617 unwind label %2641

2617:                                             ; preds = %2616
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %436, ptr noundef nonnull align 8 dereferenceable(32) %437, ptr noundef nonnull @.str.18)
          to label %2618 unwind label %2643

2618:                                             ; preds = %2617
  %2619 = 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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %436)
          to label %2620 unwind label %2645

2620:                                             ; preds = %2618
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %440) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %441) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %441) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %440) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %439) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %438) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %437) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %436) #7
  %2621 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.19)
          to label %2622 unwind label %2510

2622:                                             ; preds = %2620
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %442) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %443) #7
  store i32 2012, ptr %443, align 4, !tbaa !5
  invoke void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %442, ptr noundef nonnull align 4 dereferenceable(4) %443)
          to label %2623 unwind label %2652

2623:                                             ; preds = %2622
  %2624 = 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) %2621, ptr noundef nonnull align 8 dereferenceable(32) %442)
          to label %2625 unwind label %2654

2625:                                             ; preds = %2623
  %2626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2624, ptr noundef nonnull @.str.20)
          to label %2627 unwind label %2654

2627:                                             ; preds = %2625
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %444) #7
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %444, ptr noundef nonnull align 4 dereferenceable(4) %2611)
          to label %2628 unwind label %2656

2628:                                             ; preds = %2627
  %2629 = 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) %2626, ptr noundef nonnull align 8 dereferenceable(32) %444)
          to label %2630 unwind label %2658

2630:                                             ; preds = %2628
  %2631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2629, ptr noundef nonnull @.str.21)
          to label %2632 unwind label %2658

2632:                                             ; preds = %2630
  %2633 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2631, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2634 unwind label %2658

2634:                                             ; preds = %2632
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %444) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %442) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %443) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %442) #7
  invoke void @_Z4failv()
          to label %2663 unwind label %2510

2635:                                             ; preds = %2613
  %2636 = landingpad { ptr, i32 }
          cleanup
  br label %2651

2637:                                             ; preds = %2614
  %2638 = landingpad { ptr, i32 }
          cleanup
  br label %2650

2639:                                             ; preds = %2615
  %2640 = landingpad { ptr, i32 }
          cleanup
  br label %2649

2641:                                             ; preds = %2616
  %2642 = landingpad { ptr, i32 }
          cleanup
  br label %2648

2643:                                             ; preds = %2617
  %2644 = landingpad { ptr, i32 }
          cleanup
  br label %2647

2645:                                             ; preds = %2618
  %2646 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #7
  br label %2647

2647:                                             ; preds = %2645, %2643
  %.pn912 = phi { ptr, i32 } [ %2646, %2645 ], [ %2644, %2643 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %437) #7
  br label %2648

2648:                                             ; preds = %2647, %2641
  %.pn912.pn = phi { ptr, i32 } [ %.pn912, %2647 ], [ %2642, %2641 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %438) #7
  br label %2649

2649:                                             ; preds = %2648, %2639
  %.pn912.pn.pn = phi { ptr, i32 } [ %.pn912.pn, %2648 ], [ %2640, %2639 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #7
  br label %2650

2650:                                             ; preds = %2649, %2637
  %.pn912.pn.pn.pn = phi { ptr, i32 } [ %.pn912.pn.pn, %2649 ], [ %2638, %2637 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %440) #7
  br label %2651

2651:                                             ; preds = %2650, %2635
  %.pn912.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn912.pn.pn.pn, %2650 ], [ %2636, %2635 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %441) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %441) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %440) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %439) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %438) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %437) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %436) #7
  br label %2664

2652:                                             ; preds = %2622
  %2653 = landingpad { ptr, i32 }
          cleanup
  br label %2662

2654:                                             ; preds = %2625, %2623
  %2655 = landingpad { ptr, i32 }
          cleanup
  br label %2661

2656:                                             ; preds = %2627
  %2657 = landingpad { ptr, i32 }
          cleanup
  br label %2660

2658:                                             ; preds = %2632, %2630, %2628
  %2659 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #7
  br label %2660

2660:                                             ; preds = %2658, %2656
  %.pn918 = phi { ptr, i32 } [ %2659, %2658 ], [ %2657, %2656 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %444) #7
  br label %2661

2661:                                             ; preds = %2660, %2654
  %.pn918.pn = phi { ptr, i32 } [ %.pn918, %2660 ], [ %2655, %2654 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %442) #7
  br label %2662

2662:                                             ; preds = %2661, %2652
  %.pn918.pn.pn = phi { ptr, i32 } [ %.pn918.pn, %2661 ], [ %2653, %2652 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %443) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %442) #7
  br label %2664

2663:                                             ; preds = %2634, %2610
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %407) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %407) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %406) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %405) #7
  call void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508) %404) #7
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %404) #7
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #7
  ret void

2664:                                             ; preds = %2662, %2651, %2609, %2598, %2556, %2545, %2528, %2510
  %.pn922 = phi { ptr, i32 } [ %2511, %2510 ], [ %.pn918.pn.pn, %2662 ], [ %.pn912.pn.pn.pn.pn, %2651 ], [ %.pn907.pn.pn, %2609 ], [ %.pn901.pn.pn.pn.pn, %2598 ], [ %.pn896.pn.pn, %2556 ], [ %.pn890.pn.pn.pn.pn, %2545 ], [ %.pn881.pn.pn.pn.pn.pn.pn, %2528 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %407) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %407) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %406) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %405) #7
  call void @_ZN7lodepng5StateD1Ev(ptr noundef nonnull align 8 dereferenceable(508) %404) #7
  br label %2665

2665:                                             ; preds = %2664, %2508
  %.pn922.pn = phi { ptr, i32 } [ %.pn922, %2664 ], [ %2509, %2508 ]
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %404) #7
  br label %2666

2666:                                             ; preds = %2665, %2507, %486
  %.pn922.pn.pn = phi { ptr, i32 } [ %.pn922.pn, %2665 ], [ %.pn875.pn.pn.pn.pn, %2507 ], [ %487, %486 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %1) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1) #7
  resume { ptr, i32 } %.pn922.pn.pn
}

declare noundef i32 @_ZN7lodepng6decodeERSt6vectorIhSaIhEERjS4_RNS_5StateEPKhm(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(508), ptr noundef, i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z8valtostrIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z8valtostrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES5_RKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

; 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 = { 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #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 "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 = { inlinehint 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 #7 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 56}
!10 = !{!"_ZTS11LodePNGInfo", !6, i64 0, !6, i64 4, !6, i64 8, !11, i64 16, !6, i64 56, !6, i64 60, !6, i64 64, !6, i64 68, !14, i64 72, !13, i64 80, !13, i64 88, !14, i64 96, !13, i64 104, !13, i64 112, !13, i64 120, !13, i64 128, !6, i64 136, !15, i64 140, !6, i64 164, !6, i64 168, !6, i64 172, !6, i64 176, !6, i64 180, !6, i64 184, !6, i64 188, !6, i64 192, !6, i64 196, !6, i64 200, !6, i64 204, !6, i64 208, !6, i64 212, !6, i64 216, !6, i64 220, !6, i64 224, !6, i64 228, !6, i64 232, !13, i64 240, !13, i64 248, !6, i64 256, !7, i64 264, !7, i64 288}
!11 = !{!"_ZTS16LodePNGColorMode", !12, i64 0, !6, i64 4, !13, i64 8, !14, i64 16, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36}
!12 = !{!"_ZTS16LodePNGColorType", !7, i64 0}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!"_ZTS11LodePNGTime", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20}
!16 = !{!10, !6, i64 60}
!17 = !{!10, !6, i64 136}
!18 = !{!10, !6, i64 140}
!19 = !{!10, !6, i64 144}
!20 = !{!10, !6, i64 148}
!21 = !{!10, !6, i64 152}
!22 = !{!10, !6, i64 156}
!23 = !{!10, !6, i64 160}
!24 = !{!10, !6, i64 164}
!25 = !{!10, !6, i64 168}
!26 = !{!10, !6, i64 172}
!27 = !{!10, !6, i64 176}
!28 = !{!10, !14, i64 72}
!29 = !{!10, !13, i64 80}
!30 = !{!13, !13, i64 0}
!31 = !{!10, !13, i64 88}
!32 = !{!10, !14, i64 96}
!33 = !{!10, !13, i64 104}
!34 = !{!10, !13, i64 112}
!35 = !{!10, !13, i64 120}
!36 = !{!10, !13, i64 128}
!37 = !{!38, !6, i64 56}
!38 = !{!"_ZTS12LodePNGState", !39, i64 8, !41, i64 64, !11, i64 152, !10, i64 192, !6, i64 504}
!39 = !{!"_ZTS22LodePNGDecoderSettings", !40, i64 0, !6, i64 32, !6, i64 36, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52}
!40 = !{!"_ZTS25LodePNGDecompressSettings", !6, i64 0, !6, i64 4, !13, i64 8, !13, i64 16, !13, i64 24}
!41 = !{!"_ZTS22LodePNGEncoderSettings", !42, i64 0, !6, i64 48, !6, i64 52, !43, i64 56, !13, i64 64, !6, i64 72, !6, i64 76, !6, i64 80}
!42 = !{!"_ZTS23LodePNGCompressSettings", !6, i64 0, !6, i64 4, !6, i64 8, !6, i64 12, !6, i64 16, !6, i64 20, !13, i64 24, !13, i64 32, !13, i64 40}
!43 = !{!"_ZTS21LodePNGFilterStrategy", !7, i64 0}
!44 = !{!38, !14, i64 264}
!45 = !{!38, !14, i64 288}
!46 = !{!38, !6, i64 332}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,SROAPass,SimplifyCFGPass,TailCallElimPass