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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%struct.LodePNGState = type <{ ptr, %struct.LodePNGDecoderSettings, %struct.LodePNGEncoderSettings, %struct.LodePNGColorMode, %struct.LodePNGInfo, i32, [4 x i8] }>
%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 }

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.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.436 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [27 x i8], align 1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z8valtostrIhENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(1)) #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 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 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 uwtable
define dso_local void @_Z27assertColorProfileDataEqualRKN7lodepng5StateES2_(ptr noundef nonnull align 8 dereferenceable(508) %0, ptr noundef nonnull align 8 dereferenceable(508) %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", 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::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %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 %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::__cxx11::basic_string", align 8
  %124 = alloca %"class.std::allocator", align 1
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca i64, align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::allocator", align 1
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %136 = load ptr, ptr %3, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.LodePNGState, ptr %136, i32 0, i32 4
  %138 = getelementptr inbounds %struct.LodePNGInfo, ptr %137, i32 0, i32 22
  %139 = load i32, ptr %138, align 4, !tbaa !9
  %140 = load ptr, ptr %4, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.LodePNGState, ptr %140, i32 0, i32 4
  %142 = getelementptr inbounds %struct.LodePNGInfo, ptr %141, i32 0, i32 22
  %143 = load i32, ptr %142, align 4, !tbaa !9
  %144 = icmp ne i32 %139, %143
  br i1 %144, label %145, label %214

145:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %146 unwind label %171

146:                                              ; preds = %145
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef @.str.436)
          to label %147 unwind label %175

147:                                              ; preds = %146
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.3)
          to label %148 unwind label %179

148:                                              ; preds = %147
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.437)
          to label %149 unwind label %183

149:                                              ; preds = %148
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef @.str.18)
          to label %150 unwind label %187

150:                                              ; preds = %149
  %151 = 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) %5)
          to label %152 unwind label %191

152:                                              ; preds = %150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #4
  %153 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #4
  %154 = load ptr, ptr %3, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.LodePNGState, ptr %154, i32 0, i32 4
  %156 = getelementptr inbounds %struct.LodePNGInfo, ptr %155, i32 0, i32 22
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 4 dereferenceable(4) %156)
  %157 = 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) %153, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %158 unwind label %200

158:                                              ; preds = %152
  %159 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %157, ptr noundef @.str.20)
          to label %160 unwind label %200

160:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #4
  %161 = load ptr, ptr %4, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.LodePNGState, ptr %161, i32 0, i32 4
  %163 = getelementptr inbounds %struct.LodePNGInfo, ptr %162, i32 0, i32 22
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 4 dereferenceable(4) %163)
          to label %164 unwind label %204

164:                                              ; preds = %160
  %165 = 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) %159, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %166 unwind label %208

166:                                              ; preds = %164
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %165, ptr noundef @.str.21)
          to label %168 unwind label %208

168:                                              ; preds = %166
  %169 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %167, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %170 unwind label %208

170:                                              ; preds = %168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #4
  call void @_Z4failv()
  br label %214

171:                                              ; preds = %145
  %172 = landingpad { ptr, i32 }
          cleanup
  %173 = extractvalue { ptr, i32 } %172, 0
  store ptr %173, ptr %11, align 8
  %174 = extractvalue { ptr, i32 } %172, 1
  store i32 %174, ptr %12, align 4
  br label %199

175:                                              ; preds = %146
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %11, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %12, align 4
  br label %198

179:                                              ; preds = %147
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %11, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %12, align 4
  br label %197

183:                                              ; preds = %148
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %11, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %12, align 4
  br label %196

187:                                              ; preds = %149
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %11, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %12, align 4
  br label %195

191:                                              ; preds = %150
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %11, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #4
  br label %195

195:                                              ; preds = %191, %187
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #4
  br label %196

196:                                              ; preds = %195, %183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  br label %197

197:                                              ; preds = %196, %179
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #4
  br label %198

198:                                              ; preds = %197, %175
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #4
  br label %199

199:                                              ; preds = %198, %171
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #4
  br label %1457

200:                                              ; preds = %158, %152
  %201 = landingpad { ptr, i32 }
          cleanup
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %11, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %12, align 4
  br label %213

204:                                              ; preds = %160
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %11, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %12, align 4
  br label %212

208:                                              ; preds = %168, %166, %164
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %11, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  br label %212

212:                                              ; preds = %208, %204
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #4
  br label %213

213:                                              ; preds = %212, %200
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #4
  br label %1457

214:                                              ; preds = %170, %2
  %215 = load ptr, ptr %3, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.LodePNGState, ptr %215, i32 0, i32 4
  %217 = getelementptr inbounds %struct.LodePNGInfo, ptr %216, i32 0, i32 22
  %218 = load i32, ptr %217, align 4, !tbaa !9
  %219 = icmp ne i32 %218, 0
  br i1 %219, label %220, label %300

220:                                              ; preds = %214
  %221 = load ptr, ptr %3, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.LodePNGState, ptr %221, i32 0, i32 4
  %223 = getelementptr inbounds %struct.LodePNGInfo, ptr %222, i32 0, i32 23
  %224 = load i32, ptr %223, align 8, !tbaa !22
  %225 = load ptr, ptr %4, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.LodePNGState, ptr %225, i32 0, i32 4
  %227 = getelementptr inbounds %struct.LodePNGInfo, ptr %226, i32 0, i32 23
  %228 = load i32, ptr %227, align 8, !tbaa !22
  %229 = icmp ne i32 %224, %228
  br i1 %229, label %230, label %299

230:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %231 unwind label %256

231:                                              ; preds = %230
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.438)
          to label %232 unwind label %260

232:                                              ; preds = %231
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef @.str.3)
          to label %233 unwind label %264

233:                                              ; preds = %232
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.439)
          to label %234 unwind label %268

234:                                              ; preds = %233
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.18)
          to label %235 unwind label %272

235:                                              ; preds = %234
  %236 = 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) %15)
          to label %237 unwind label %276

237:                                              ; preds = %235
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #4
  %238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #4
  %239 = load ptr, ptr %3, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.LodePNGState, ptr %239, i32 0, i32 4
  %241 = getelementptr inbounds %struct.LodePNGInfo, ptr %240, i32 0, i32 23
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 4 dereferenceable(4) %241)
  %242 = 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) %238, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %243 unwind label %285

243:                                              ; preds = %237
  %244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef @.str.20)
          to label %245 unwind label %285

245:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #4
  %246 = load ptr, ptr %4, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.LodePNGState, ptr %246, i32 0, i32 4
  %248 = getelementptr inbounds %struct.LodePNGInfo, ptr %247, i32 0, i32 23
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 4 dereferenceable(4) %248)
          to label %249 unwind label %289

249:                                              ; preds = %245
  %250 = 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) %244, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %251 unwind label %293

251:                                              ; preds = %249
  %252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef @.str.21)
          to label %253 unwind label %293

253:                                              ; preds = %251
  %254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %252, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %255 unwind label %293

255:                                              ; preds = %253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #4
  call void @_Z4failv()
  br label %299

256:                                              ; preds = %230
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %11, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %12, align 4
  br label %284

260:                                              ; preds = %231
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %11, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %12, align 4
  br label %283

264:                                              ; preds = %232
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %11, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %12, align 4
  br label %282

268:                                              ; preds = %233
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %11, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %12, align 4
  br label %281

272:                                              ; preds = %234
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %11, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %12, align 4
  br label %280

276:                                              ; preds = %235
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %11, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #4
  br label %280

280:                                              ; preds = %276, %272
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #4
  br label %281

281:                                              ; preds = %280, %268
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  br label %282

282:                                              ; preds = %281, %264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #4
  br label %283

283:                                              ; preds = %282, %260
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #4
  br label %284

284:                                              ; preds = %283, %256
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #4
  br label %1457

285:                                              ; preds = %243, %237
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %11, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %12, align 4
  br label %298

289:                                              ; preds = %245
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %11, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %12, align 4
  br label %297

293:                                              ; preds = %253, %251, %249
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %11, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #4
  br label %297

297:                                              ; preds = %293, %289
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #4
  br label %298

298:                                              ; preds = %297, %285
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #4
  br label %1457

299:                                              ; preds = %255, %220
  br label %300

300:                                              ; preds = %299, %214
  %301 = load ptr, ptr %3, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.LodePNGState, ptr %301, i32 0, i32 4
  %303 = getelementptr inbounds %struct.LodePNGInfo, ptr %302, i32 0, i32 24
  %304 = load i32, ptr %303, align 4, !tbaa !23
  %305 = load ptr, ptr %4, align 8, !tbaa !5
  %306 = getelementptr inbounds %struct.LodePNGState, ptr %305, i32 0, i32 4
  %307 = getelementptr inbounds %struct.LodePNGInfo, ptr %306, i32 0, i32 24
  %308 = load i32, ptr %307, align 4, !tbaa !23
  %309 = icmp ne i32 %304, %308
  br i1 %309, label %310, label %379

310:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %311 unwind label %336

311:                                              ; preds = %310
  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.440)
          to label %312 unwind label %340

312:                                              ; preds = %311
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef @.str.3)
          to label %313 unwind label %344

313:                                              ; preds = %312
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.441)
          to label %314 unwind label %348

314:                                              ; preds = %313
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.18)
          to label %315 unwind label %352

315:                                              ; preds = %314
  %316 = 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) %23)
          to label %317 unwind label %356

317:                                              ; preds = %315
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #4
  %318 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #4
  %319 = load ptr, ptr %3, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.LodePNGState, ptr %319, i32 0, i32 4
  %321 = getelementptr inbounds %struct.LodePNGInfo, ptr %320, i32 0, i32 24
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 4 dereferenceable(4) %321)
  %322 = 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) %318, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %323 unwind label %365

323:                                              ; preds = %317
  %324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %322, ptr noundef @.str.20)
          to label %325 unwind label %365

325:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #4
  %326 = load ptr, ptr %4, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.LodePNGState, ptr %326, i32 0, i32 4
  %328 = getelementptr inbounds %struct.LodePNGInfo, ptr %327, i32 0, i32 24
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 4 dereferenceable(4) %328)
          to label %329 unwind label %369

329:                                              ; preds = %325
  %330 = 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) %324, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %331 unwind label %373

331:                                              ; preds = %329
  %332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %330, ptr noundef @.str.21)
          to label %333 unwind label %373

333:                                              ; preds = %331
  %334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %332, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %335 unwind label %373

335:                                              ; preds = %333
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #4
  call void @_Z4failv()
  br label %379

336:                                              ; preds = %310
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %11, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %12, align 4
  br label %364

340:                                              ; preds = %311
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %11, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %12, align 4
  br label %363

344:                                              ; preds = %312
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %11, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %12, align 4
  br label %362

348:                                              ; preds = %313
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %11, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %12, align 4
  br label %361

352:                                              ; preds = %314
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %11, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %12, align 4
  br label %360

356:                                              ; preds = %315
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %11, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  br label %360

360:                                              ; preds = %356, %352
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #4
  br label %361

361:                                              ; preds = %360, %348
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  br label %362

362:                                              ; preds = %361, %344
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #4
  br label %363

363:                                              ; preds = %362, %340
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  br label %364

364:                                              ; preds = %363, %336
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #4
  br label %1457

365:                                              ; preds = %323, %317
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %11, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %12, align 4
  br label %378

369:                                              ; preds = %325
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %11, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %12, align 4
  br label %377

373:                                              ; preds = %333, %331, %329
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %11, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #4
  br label %377

377:                                              ; preds = %373, %369
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #4
  br label %378

378:                                              ; preds = %377, %365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #4
  br label %1457

379:                                              ; preds = %335, %300
  %380 = load ptr, ptr %3, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.LodePNGState, ptr %380, i32 0, i32 4
  %382 = getelementptr inbounds %struct.LodePNGInfo, ptr %381, i32 0, i32 24
  %383 = load i32, ptr %382, align 4, !tbaa !23
  %384 = icmp ne i32 %383, 0
  br i1 %384, label %385, label %1018

385:                                              ; preds = %379
  %386 = load ptr, ptr %3, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.LodePNGState, ptr %386, i32 0, i32 4
  %388 = getelementptr inbounds %struct.LodePNGInfo, ptr %387, i32 0, i32 25
  %389 = load i32, ptr %388, align 8, !tbaa !24
  %390 = load ptr, ptr %4, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.LodePNGState, ptr %390, i32 0, i32 4
  %392 = getelementptr inbounds %struct.LodePNGInfo, ptr %391, i32 0, i32 25
  %393 = load i32, ptr %392, align 8, !tbaa !24
  %394 = icmp ne i32 %389, %393
  br i1 %394, label %395, label %464

395:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %396 unwind label %421

396:                                              ; preds = %395
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.442)
          to label %397 unwind label %425

397:                                              ; preds = %396
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.3)
          to label %398 unwind label %429

398:                                              ; preds = %397
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.443)
          to label %399 unwind label %433

399:                                              ; preds = %398
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.18)
          to label %400 unwind label %437

400:                                              ; preds = %399
  %401 = 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) %31)
          to label %402 unwind label %441

402:                                              ; preds = %400
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #4
  %403 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #4
  %404 = load ptr, ptr %3, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.LodePNGState, ptr %404, i32 0, i32 4
  %406 = getelementptr inbounds %struct.LodePNGInfo, ptr %405, i32 0, i32 25
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 4 dereferenceable(4) %406)
  %407 = 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) %403, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %408 unwind label %450

408:                                              ; preds = %402
  %409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %407, ptr noundef @.str.20)
          to label %410 unwind label %450

410:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #4
  %411 = load ptr, ptr %4, align 8, !tbaa !5
  %412 = getelementptr inbounds %struct.LodePNGState, ptr %411, i32 0, i32 4
  %413 = getelementptr inbounds %struct.LodePNGInfo, ptr %412, i32 0, i32 25
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 4 dereferenceable(4) %413)
          to label %414 unwind label %454

414:                                              ; preds = %410
  %415 = 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) %409, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %416 unwind label %458

416:                                              ; preds = %414
  %417 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %415, ptr noundef @.str.21)
          to label %418 unwind label %458

418:                                              ; preds = %416
  %419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %417, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %420 unwind label %458

420:                                              ; preds = %418
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #4
  call void @_Z4failv()
  br label %464

421:                                              ; preds = %395
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %11, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %12, align 4
  br label %449

425:                                              ; preds = %396
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %11, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %12, align 4
  br label %448

429:                                              ; preds = %397
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %11, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %12, align 4
  br label %447

433:                                              ; preds = %398
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %11, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %12, align 4
  br label %446

437:                                              ; preds = %399
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %11, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %12, align 4
  br label %445

441:                                              ; preds = %400
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %11, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  br label %445

445:                                              ; preds = %441, %437
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #4
  br label %446

446:                                              ; preds = %445, %433
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  br label %447

447:                                              ; preds = %446, %429
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #4
  br label %448

448:                                              ; preds = %447, %425
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  br label %449

449:                                              ; preds = %448, %421
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #4
  br label %1457

450:                                              ; preds = %408, %402
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %11, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %12, align 4
  br label %463

454:                                              ; preds = %410
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %11, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %12, align 4
  br label %462

458:                                              ; preds = %418, %416, %414
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %11, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #4
  br label %462

462:                                              ; preds = %458, %454
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #4
  br label %463

463:                                              ; preds = %462, %450
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #4
  br label %1457

464:                                              ; preds = %420, %385
  %465 = load ptr, ptr %3, align 8, !tbaa !5
  %466 = getelementptr inbounds %struct.LodePNGState, ptr %465, i32 0, i32 4
  %467 = getelementptr inbounds %struct.LodePNGInfo, ptr %466, i32 0, i32 26
  %468 = load i32, ptr %467, align 4, !tbaa !25
  %469 = load ptr, ptr %4, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.LodePNGState, ptr %469, i32 0, i32 4
  %471 = getelementptr inbounds %struct.LodePNGInfo, ptr %470, i32 0, i32 26
  %472 = load i32, ptr %471, align 4, !tbaa !25
  %473 = icmp ne i32 %468, %472
  br i1 %473, label %474, label %543

474:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %475 unwind label %500

475:                                              ; preds = %474
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef @.str.444)
          to label %476 unwind label %504

476:                                              ; preds = %475
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.3)
          to label %477 unwind label %508

477:                                              ; preds = %476
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.445)
          to label %478 unwind label %512

478:                                              ; preds = %477
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.18)
          to label %479 unwind label %516

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) @_ZSt4cout, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %481 unwind label %520

481:                                              ; preds = %479
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #4
  %482 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #4
  %483 = load ptr, ptr %3, align 8, !tbaa !5
  %484 = getelementptr inbounds %struct.LodePNGState, ptr %483, i32 0, i32 4
  %485 = getelementptr inbounds %struct.LodePNGInfo, ptr %484, i32 0, i32 26
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 4 dereferenceable(4) %485)
  %486 = 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) %482, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %487 unwind label %529

487:                                              ; preds = %481
  %488 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef @.str.20)
          to label %489 unwind label %529

489:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #4
  %490 = load ptr, ptr %4, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.LodePNGState, ptr %490, i32 0, i32 4
  %492 = getelementptr inbounds %struct.LodePNGInfo, ptr %491, i32 0, i32 26
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 4 dereferenceable(4) %492)
          to label %493 unwind label %533

493:                                              ; preds = %489
  %494 = 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) %488, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %495 unwind label %537

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %494, ptr noundef @.str.21)
          to label %497 unwind label %537

497:                                              ; preds = %495
  %498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %496, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %499 unwind label %537

499:                                              ; preds = %497
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #4
  call void @_Z4failv()
  br label %543

500:                                              ; preds = %474
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %11, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %12, align 4
  br label %528

504:                                              ; preds = %475
  %505 = landingpad { ptr, i32 }
          cleanup
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %11, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %12, align 4
  br label %527

508:                                              ; preds = %476
  %509 = landingpad { ptr, i32 }
          cleanup
  %510 = extractvalue { ptr, i32 } %509, 0
  store ptr %510, ptr %11, align 8
  %511 = extractvalue { ptr, i32 } %509, 1
  store i32 %511, ptr %12, align 4
  br label %526

512:                                              ; preds = %477
  %513 = landingpad { ptr, i32 }
          cleanup
  %514 = extractvalue { ptr, i32 } %513, 0
  store ptr %514, ptr %11, align 8
  %515 = extractvalue { ptr, i32 } %513, 1
  store i32 %515, ptr %12, align 4
  br label %525

516:                                              ; preds = %478
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %11, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %12, align 4
  br label %524

520:                                              ; preds = %479
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %11, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  br label %524

524:                                              ; preds = %520, %516
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #4
  br label %525

525:                                              ; preds = %524, %512
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  br label %526

526:                                              ; preds = %525, %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #4
  br label %527

527:                                              ; preds = %526, %504
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  br label %528

528:                                              ; preds = %527, %500
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #4
  br label %1457

529:                                              ; preds = %487, %481
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %11, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %12, align 4
  br label %542

533:                                              ; preds = %489
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %11, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %12, align 4
  br label %541

537:                                              ; preds = %497, %495, %493
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %11, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #4
  br label %541

541:                                              ; preds = %537, %533
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #4
  br label %542

542:                                              ; preds = %541, %529
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #4
  br label %1457

543:                                              ; preds = %499, %464
  %544 = load ptr, ptr %3, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.LodePNGState, ptr %544, i32 0, i32 4
  %546 = getelementptr inbounds %struct.LodePNGInfo, ptr %545, i32 0, i32 27
  %547 = load i32, ptr %546, align 8, !tbaa !26
  %548 = load ptr, ptr %4, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.LodePNGState, ptr %548, i32 0, i32 4
  %550 = getelementptr inbounds %struct.LodePNGInfo, ptr %549, i32 0, i32 27
  %551 = load i32, ptr %550, align 8, !tbaa !26
  %552 = icmp ne i32 %547, %551
  br i1 %552, label %553, label %622

553:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %554 unwind label %579

554:                                              ; preds = %553
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.446)
          to label %555 unwind label %583

555:                                              ; preds = %554
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.3)
          to label %556 unwind label %587

556:                                              ; preds = %555
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.447)
          to label %557 unwind label %591

557:                                              ; preds = %556
  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.18)
          to label %558 unwind label %595

558:                                              ; preds = %557
  %559 = 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) %47)
          to label %560 unwind label %599

560:                                              ; preds = %558
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #4
  %561 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #4
  %562 = load ptr, ptr %3, align 8, !tbaa !5
  %563 = getelementptr inbounds %struct.LodePNGState, ptr %562, i32 0, i32 4
  %564 = getelementptr inbounds %struct.LodePNGInfo, ptr %563, i32 0, i32 27
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 4 dereferenceable(4) %564)
  %565 = 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) %561, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %566 unwind label %608

566:                                              ; preds = %560
  %567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %565, ptr noundef @.str.20)
          to label %568 unwind label %608

568:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #4
  %569 = load ptr, ptr %4, align 8, !tbaa !5
  %570 = getelementptr inbounds %struct.LodePNGState, ptr %569, i32 0, i32 4
  %571 = getelementptr inbounds %struct.LodePNGInfo, ptr %570, i32 0, i32 27
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 4 dereferenceable(4) %571)
          to label %572 unwind label %612

572:                                              ; preds = %568
  %573 = 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) %567, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %574 unwind label %616

574:                                              ; preds = %572
  %575 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %573, ptr noundef @.str.21)
          to label %576 unwind label %616

576:                                              ; preds = %574
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %575, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %578 unwind label %616

578:                                              ; preds = %576
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #4
  call void @_Z4failv()
  br label %622

579:                                              ; preds = %553
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %11, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %12, align 4
  br label %607

583:                                              ; preds = %554
  %584 = landingpad { ptr, i32 }
          cleanup
  %585 = extractvalue { ptr, i32 } %584, 0
  store ptr %585, ptr %11, align 8
  %586 = extractvalue { ptr, i32 } %584, 1
  store i32 %586, ptr %12, align 4
  br label %606

587:                                              ; preds = %555
  %588 = landingpad { ptr, i32 }
          cleanup
  %589 = extractvalue { ptr, i32 } %588, 0
  store ptr %589, ptr %11, align 8
  %590 = extractvalue { ptr, i32 } %588, 1
  store i32 %590, ptr %12, align 4
  br label %605

591:                                              ; preds = %556
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %11, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %12, align 4
  br label %604

595:                                              ; preds = %557
  %596 = landingpad { ptr, i32 }
          cleanup
  %597 = extractvalue { ptr, i32 } %596, 0
  store ptr %597, ptr %11, align 8
  %598 = extractvalue { ptr, i32 } %596, 1
  store i32 %598, ptr %12, align 4
  br label %603

599:                                              ; preds = %558
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %11, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #4
  br label %603

603:                                              ; preds = %599, %595
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #4
  br label %604

604:                                              ; preds = %603, %591
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  br label %605

605:                                              ; preds = %604, %587
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #4
  br label %606

606:                                              ; preds = %605, %583
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #4
  br label %607

607:                                              ; preds = %606, %579
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #4
  br label %1457

608:                                              ; preds = %566, %560
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %11, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %12, align 4
  br label %621

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

616:                                              ; preds = %576, %574, %572
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %11, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #4
  br label %620

620:                                              ; preds = %616, %612
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #4
  br label %621

621:                                              ; preds = %620, %608
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #4
  br label %1457

622:                                              ; preds = %578, %543
  %623 = load ptr, ptr %3, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.LodePNGState, ptr %623, i32 0, i32 4
  %625 = getelementptr inbounds %struct.LodePNGInfo, ptr %624, i32 0, i32 28
  %626 = load i32, ptr %625, align 4, !tbaa !27
  %627 = load ptr, ptr %4, align 8, !tbaa !5
  %628 = getelementptr inbounds %struct.LodePNGState, ptr %627, i32 0, i32 4
  %629 = getelementptr inbounds %struct.LodePNGInfo, ptr %628, i32 0, i32 28
  %630 = load i32, ptr %629, align 4, !tbaa !27
  %631 = icmp ne i32 %626, %630
  br i1 %631, label %632, label %701

632:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %633 unwind label %658

633:                                              ; preds = %632
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.448)
          to label %634 unwind label %662

634:                                              ; preds = %633
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef @.str.3)
          to label %635 unwind label %666

635:                                              ; preds = %634
  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.449)
          to label %636 unwind label %670

636:                                              ; preds = %635
  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.18)
          to label %637 unwind label %674

637:                                              ; preds = %636
  %638 = 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) %55)
          to label %639 unwind label %678

639:                                              ; preds = %637
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #4
  %640 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #4
  %641 = load ptr, ptr %3, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.LodePNGState, ptr %641, i32 0, i32 4
  %643 = getelementptr inbounds %struct.LodePNGInfo, ptr %642, i32 0, i32 28
  call 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) %643)
  %644 = 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) %640, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %645 unwind label %687

645:                                              ; preds = %639
  %646 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %644, ptr noundef @.str.20)
          to label %647 unwind label %687

647:                                              ; preds = %645
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #4
  %648 = load ptr, ptr %4, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.LodePNGState, ptr %648, i32 0, i32 4
  %650 = getelementptr inbounds %struct.LodePNGInfo, ptr %649, i32 0, i32 28
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 4 dereferenceable(4) %650)
          to label %651 unwind label %691

651:                                              ; preds = %647
  %652 = 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) %646, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %653 unwind label %695

653:                                              ; preds = %651
  %654 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %652, ptr noundef @.str.21)
          to label %655 unwind label %695

655:                                              ; preds = %653
  %656 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %654, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %657 unwind label %695

657:                                              ; preds = %655
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #4
  call void @_Z4failv()
  br label %701

658:                                              ; preds = %632
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %11, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %12, align 4
  br label %686

662:                                              ; preds = %633
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %11, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %12, align 4
  br label %685

666:                                              ; preds = %634
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %11, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %12, align 4
  br label %684

670:                                              ; preds = %635
  %671 = landingpad { ptr, i32 }
          cleanup
  %672 = extractvalue { ptr, i32 } %671, 0
  store ptr %672, ptr %11, align 8
  %673 = extractvalue { ptr, i32 } %671, 1
  store i32 %673, ptr %12, align 4
  br label %683

674:                                              ; preds = %636
  %675 = landingpad { ptr, i32 }
          cleanup
  %676 = extractvalue { ptr, i32 } %675, 0
  store ptr %676, ptr %11, align 8
  %677 = extractvalue { ptr, i32 } %675, 1
  store i32 %677, ptr %12, align 4
  br label %682

678:                                              ; preds = %637
  %679 = landingpad { ptr, i32 }
          cleanup
  %680 = extractvalue { ptr, i32 } %679, 0
  store ptr %680, ptr %11, align 8
  %681 = extractvalue { ptr, i32 } %679, 1
  store i32 %681, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #4
  br label %682

682:                                              ; preds = %678, %674
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #4
  br label %683

683:                                              ; preds = %682, %670
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #4
  br label %684

684:                                              ; preds = %683, %666
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #4
  br label %685

685:                                              ; preds = %684, %662
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #4
  br label %686

686:                                              ; preds = %685, %658
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #4
  br label %1457

687:                                              ; preds = %645, %639
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %11, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %12, align 4
  br label %700

691:                                              ; preds = %647
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %11, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %12, align 4
  br label %699

695:                                              ; preds = %655, %653, %651
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %11, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #4
  br label %699

699:                                              ; preds = %695, %691
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #4
  br label %700

700:                                              ; preds = %699, %687
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #4
  br label %1457

701:                                              ; preds = %657, %622
  %702 = load ptr, ptr %3, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.LodePNGState, ptr %702, i32 0, i32 4
  %704 = getelementptr inbounds %struct.LodePNGInfo, ptr %703, i32 0, i32 29
  %705 = load i32, ptr %704, align 8, !tbaa !28
  %706 = load ptr, ptr %4, align 8, !tbaa !5
  %707 = getelementptr inbounds %struct.LodePNGState, ptr %706, i32 0, i32 4
  %708 = getelementptr inbounds %struct.LodePNGInfo, ptr %707, i32 0, i32 29
  %709 = load i32, ptr %708, align 8, !tbaa !28
  %710 = icmp ne i32 %705, %709
  br i1 %710, label %711, label %780

711:                                              ; preds = %701
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %712 unwind label %737

712:                                              ; preds = %711
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.450)
          to label %713 unwind label %741

713:                                              ; preds = %712
  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.3)
          to label %714 unwind label %745

714:                                              ; preds = %713
  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.451)
          to label %715 unwind label %749

715:                                              ; preds = %714
  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.18)
          to label %716 unwind label %753

716:                                              ; preds = %715
  %717 = 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) %63)
          to label %718 unwind label %757

718:                                              ; preds = %716
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #4
  %719 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #4
  %720 = load ptr, ptr %3, align 8, !tbaa !5
  %721 = getelementptr inbounds %struct.LodePNGState, ptr %720, i32 0, i32 4
  %722 = getelementptr inbounds %struct.LodePNGInfo, ptr %721, i32 0, i32 29
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 4 dereferenceable(4) %722)
  %723 = 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) %719, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %724 unwind label %766

724:                                              ; preds = %718
  %725 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %723, ptr noundef @.str.20)
          to label %726 unwind label %766

726:                                              ; preds = %724
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #4
  %727 = load ptr, ptr %4, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.LodePNGState, ptr %727, i32 0, i32 4
  %729 = getelementptr inbounds %struct.LodePNGInfo, ptr %728, i32 0, i32 29
  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) %729)
          to label %730 unwind label %770

730:                                              ; preds = %726
  %731 = 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) %725, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %732 unwind label %774

732:                                              ; preds = %730
  %733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %731, ptr noundef @.str.21)
          to label %734 unwind label %774

734:                                              ; preds = %732
  %735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %733, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %736 unwind label %774

736:                                              ; preds = %734
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #4
  call void @_Z4failv()
  br label %780

737:                                              ; preds = %711
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %11, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %12, align 4
  br label %765

741:                                              ; preds = %712
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %11, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %12, align 4
  br label %764

745:                                              ; preds = %713
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %11, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %12, align 4
  br label %763

749:                                              ; preds = %714
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %11, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %12, align 4
  br label %762

753:                                              ; preds = %715
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %11, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %12, align 4
  br label %761

757:                                              ; preds = %716
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %11, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #4
  br label %761

761:                                              ; preds = %757, %753
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #4
  br label %762

762:                                              ; preds = %761, %749
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #4
  br label %763

763:                                              ; preds = %762, %745
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #4
  br label %764

764:                                              ; preds = %763, %741
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #4
  br label %765

765:                                              ; preds = %764, %737
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #4
  br label %1457

766:                                              ; preds = %724, %718
  %767 = landingpad { ptr, i32 }
          cleanup
  %768 = extractvalue { ptr, i32 } %767, 0
  store ptr %768, ptr %11, align 8
  %769 = extractvalue { ptr, i32 } %767, 1
  store i32 %769, ptr %12, align 4
  br label %779

770:                                              ; preds = %726
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %11, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %12, align 4
  br label %778

774:                                              ; preds = %734, %732, %730
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %11, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #4
  br label %778

778:                                              ; preds = %774, %770
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #4
  br label %779

779:                                              ; preds = %778, %766
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #4
  br label %1457

780:                                              ; preds = %736, %701
  %781 = load ptr, ptr %3, align 8, !tbaa !5
  %782 = getelementptr inbounds %struct.LodePNGState, ptr %781, i32 0, i32 4
  %783 = getelementptr inbounds %struct.LodePNGInfo, ptr %782, i32 0, i32 30
  %784 = load i32, ptr %783, align 4, !tbaa !29
  %785 = load ptr, ptr %4, align 8, !tbaa !5
  %786 = getelementptr inbounds %struct.LodePNGState, ptr %785, i32 0, i32 4
  %787 = getelementptr inbounds %struct.LodePNGInfo, ptr %786, i32 0, i32 30
  %788 = load i32, ptr %787, align 4, !tbaa !29
  %789 = icmp ne i32 %784, %788
  br i1 %789, label %790, label %859

790:                                              ; preds = %780
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #4
  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 %791 unwind label %816

791:                                              ; preds = %790
  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.452)
          to label %792 unwind label %820

792:                                              ; preds = %791
  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 %793 unwind label %824

793:                                              ; preds = %792
  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.453)
          to label %794 unwind label %828

794:                                              ; preds = %793
  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 %795 unwind label %832

795:                                              ; preds = %794
  %796 = 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 %797 unwind label %836

797:                                              ; preds = %795
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #4
  %798 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #4
  %799 = load ptr, ptr %3, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.LodePNGState, ptr %799, i32 0, i32 4
  %801 = getelementptr inbounds %struct.LodePNGInfo, ptr %800, i32 0, i32 30
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 4 dereferenceable(4) %801)
  %802 = 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) %798, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %803 unwind label %845

803:                                              ; preds = %797
  %804 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %802, ptr noundef @.str.20)
          to label %805 unwind label %845

805:                                              ; preds = %803
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #4
  %806 = load ptr, ptr %4, align 8, !tbaa !5
  %807 = getelementptr inbounds %struct.LodePNGState, ptr %806, i32 0, i32 4
  %808 = getelementptr inbounds %struct.LodePNGInfo, ptr %807, i32 0, i32 30
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 4 dereferenceable(4) %808)
          to label %809 unwind label %849

809:                                              ; preds = %805
  %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) %804, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %811 unwind label %853

811:                                              ; preds = %809
  %812 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %810, ptr noundef @.str.21)
          to label %813 unwind label %853

813:                                              ; preds = %811
  %814 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %812, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %815 unwind label %853

815:                                              ; preds = %813
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #4
  call void @_Z4failv()
  br label %859

816:                                              ; preds = %790
  %817 = landingpad { ptr, i32 }
          cleanup
  %818 = extractvalue { ptr, i32 } %817, 0
  store ptr %818, ptr %11, align 8
  %819 = extractvalue { ptr, i32 } %817, 1
  store i32 %819, ptr %12, align 4
  br label %844

820:                                              ; preds = %791
  %821 = landingpad { ptr, i32 }
          cleanup
  %822 = extractvalue { ptr, i32 } %821, 0
  store ptr %822, ptr %11, align 8
  %823 = extractvalue { ptr, i32 } %821, 1
  store i32 %823, ptr %12, align 4
  br label %843

824:                                              ; preds = %792
  %825 = landingpad { ptr, i32 }
          cleanup
  %826 = extractvalue { ptr, i32 } %825, 0
  store ptr %826, ptr %11, align 8
  %827 = extractvalue { ptr, i32 } %825, 1
  store i32 %827, ptr %12, align 4
  br label %842

828:                                              ; preds = %793
  %829 = landingpad { ptr, i32 }
          cleanup
  %830 = extractvalue { ptr, i32 } %829, 0
  store ptr %830, ptr %11, align 8
  %831 = extractvalue { ptr, i32 } %829, 1
  store i32 %831, ptr %12, align 4
  br label %841

832:                                              ; preds = %794
  %833 = landingpad { ptr, i32 }
          cleanup
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %11, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %12, align 4
  br label %840

836:                                              ; preds = %795
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %11, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #4
  br label %840

840:                                              ; preds = %836, %832
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #4
  br label %841

841:                                              ; preds = %840, %828
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #4
  br label %842

842:                                              ; preds = %841, %824
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #4
  br label %843

843:                                              ; preds = %842, %820
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #4
  br label %844

844:                                              ; preds = %843, %816
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #4
  br label %1457

845:                                              ; preds = %803, %797
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %11, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %12, align 4
  br label %858

849:                                              ; preds = %805
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  store ptr %851, ptr %11, align 8
  %852 = extractvalue { ptr, i32 } %850, 1
  store i32 %852, ptr %12, align 4
  br label %857

853:                                              ; preds = %813, %811, %809
  %854 = landingpad { ptr, i32 }
          cleanup
  %855 = extractvalue { ptr, i32 } %854, 0
  store ptr %855, ptr %11, align 8
  %856 = extractvalue { ptr, i32 } %854, 1
  store i32 %856, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #4
  br label %857

857:                                              ; preds = %853, %849
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #4
  br label %858

858:                                              ; preds = %857, %845
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #4
  br label %1457

859:                                              ; preds = %815, %780
  %860 = load ptr, ptr %3, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.LodePNGState, ptr %860, i32 0, i32 4
  %862 = getelementptr inbounds %struct.LodePNGInfo, ptr %861, i32 0, i32 31
  %863 = load i32, ptr %862, align 8, !tbaa !30
  %864 = load ptr, ptr %4, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.LodePNGState, ptr %864, i32 0, i32 4
  %866 = getelementptr inbounds %struct.LodePNGInfo, ptr %865, i32 0, i32 31
  %867 = load i32, ptr %866, align 8, !tbaa !30
  %868 = icmp ne i32 %863, %867
  br i1 %868, label %869, label %938

869:                                              ; preds = %859
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %870 unwind label %895

870:                                              ; preds = %869
  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.454)
          to label %871 unwind label %899

871:                                              ; preds = %870
  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.3)
          to label %872 unwind label %903

872:                                              ; preds = %871
  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.455)
          to label %873 unwind label %907

873:                                              ; preds = %872
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str.18)
          to label %874 unwind label %911

874:                                              ; preds = %873
  %875 = 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 %876 unwind label %915

876:                                              ; preds = %874
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #4
  %877 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #4
  %878 = load ptr, ptr %3, align 8, !tbaa !5
  %879 = getelementptr inbounds %struct.LodePNGState, ptr %878, i32 0, i32 4
  %880 = getelementptr inbounds %struct.LodePNGInfo, ptr %879, i32 0, i32 31
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 4 dereferenceable(4) %880)
  %881 = 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) %877, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %882 unwind label %924

882:                                              ; preds = %876
  %883 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %881, ptr noundef @.str.20)
          to label %884 unwind label %924

884:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #4
  %885 = load ptr, ptr %4, align 8, !tbaa !5
  %886 = getelementptr inbounds %struct.LodePNGState, ptr %885, i32 0, i32 4
  %887 = getelementptr inbounds %struct.LodePNGInfo, ptr %886, i32 0, i32 31
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 4 dereferenceable(4) %887)
          to label %888 unwind label %928

888:                                              ; preds = %884
  %889 = 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) %883, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %890 unwind label %932

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

892:                                              ; preds = %890
  %893 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %891, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %894 unwind label %932

894:                                              ; preds = %892
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #4
  call void @_Z4failv()
  br label %938

895:                                              ; preds = %869
  %896 = landingpad { ptr, i32 }
          cleanup
  %897 = extractvalue { ptr, i32 } %896, 0
  store ptr %897, ptr %11, align 8
  %898 = extractvalue { ptr, i32 } %896, 1
  store i32 %898, ptr %12, align 4
  br label %923

899:                                              ; preds = %870
  %900 = landingpad { ptr, i32 }
          cleanup
  %901 = extractvalue { ptr, i32 } %900, 0
  store ptr %901, ptr %11, align 8
  %902 = extractvalue { ptr, i32 } %900, 1
  store i32 %902, ptr %12, align 4
  br label %922

903:                                              ; preds = %871
  %904 = landingpad { ptr, i32 }
          cleanup
  %905 = extractvalue { ptr, i32 } %904, 0
  store ptr %905, ptr %11, align 8
  %906 = extractvalue { ptr, i32 } %904, 1
  store i32 %906, ptr %12, align 4
  br label %921

907:                                              ; preds = %872
  %908 = landingpad { ptr, i32 }
          cleanup
  %909 = extractvalue { ptr, i32 } %908, 0
  store ptr %909, ptr %11, align 8
  %910 = extractvalue { ptr, i32 } %908, 1
  store i32 %910, ptr %12, align 4
  br label %920

911:                                              ; preds = %873
  %912 = landingpad { ptr, i32 }
          cleanup
  %913 = extractvalue { ptr, i32 } %912, 0
  store ptr %913, ptr %11, align 8
  %914 = extractvalue { ptr, i32 } %912, 1
  store i32 %914, ptr %12, align 4
  br label %919

915:                                              ; preds = %874
  %916 = landingpad { ptr, i32 }
          cleanup
  %917 = extractvalue { ptr, i32 } %916, 0
  store ptr %917, ptr %11, align 8
  %918 = extractvalue { ptr, i32 } %916, 1
  store i32 %918, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #4
  br label %919

919:                                              ; preds = %915, %911
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #4
  br label %920

920:                                              ; preds = %919, %907
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #4
  br label %921

921:                                              ; preds = %920, %903
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #4
  br label %922

922:                                              ; preds = %921, %899
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #4
  br label %923

923:                                              ; preds = %922, %895
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #4
  br label %1457

924:                                              ; preds = %882, %876
  %925 = landingpad { ptr, i32 }
          cleanup
  %926 = extractvalue { ptr, i32 } %925, 0
  store ptr %926, ptr %11, align 8
  %927 = extractvalue { ptr, i32 } %925, 1
  store i32 %927, ptr %12, align 4
  br label %937

928:                                              ; preds = %884
  %929 = landingpad { ptr, i32 }
          cleanup
  %930 = extractvalue { ptr, i32 } %929, 0
  store ptr %930, ptr %11, align 8
  %931 = extractvalue { ptr, i32 } %929, 1
  store i32 %931, ptr %12, align 4
  br label %936

932:                                              ; preds = %892, %890, %888
  %933 = landingpad { ptr, i32 }
          cleanup
  %934 = extractvalue { ptr, i32 } %933, 0
  store ptr %934, ptr %11, align 8
  %935 = extractvalue { ptr, i32 } %933, 1
  store i32 %935, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #4
  br label %936

936:                                              ; preds = %932, %928
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #4
  br label %937

937:                                              ; preds = %936, %924
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #4
  br label %1457

938:                                              ; preds = %894, %859
  %939 = load ptr, ptr %3, align 8, !tbaa !5
  %940 = getelementptr inbounds %struct.LodePNGState, ptr %939, i32 0, i32 4
  %941 = getelementptr inbounds %struct.LodePNGInfo, ptr %940, i32 0, i32 32
  %942 = load i32, ptr %941, align 4, !tbaa !31
  %943 = load ptr, ptr %4, align 8, !tbaa !5
  %944 = getelementptr inbounds %struct.LodePNGState, ptr %943, i32 0, i32 4
  %945 = getelementptr inbounds %struct.LodePNGInfo, ptr %944, i32 0, i32 32
  %946 = load i32, ptr %945, align 4, !tbaa !31
  %947 = icmp ne i32 %942, %946
  br i1 %947, label %948, label %1017

948:                                              ; preds = %938
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %949 unwind label %974

949:                                              ; preds = %948
  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.456)
          to label %950 unwind label %978

950:                                              ; preds = %949
  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.3)
          to label %951 unwind label %982

951:                                              ; preds = %950
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str.457)
          to label %952 unwind label %986

952:                                              ; preds = %951
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef @.str.18)
          to label %953 unwind label %990

953:                                              ; preds = %952
  %954 = 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) %87)
          to label %955 unwind label %994

955:                                              ; preds = %953
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #4
  %956 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #4
  %957 = load ptr, ptr %3, align 8, !tbaa !5
  %958 = getelementptr inbounds %struct.LodePNGState, ptr %957, i32 0, i32 4
  %959 = getelementptr inbounds %struct.LodePNGInfo, ptr %958, i32 0, i32 32
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 4 dereferenceable(4) %959)
  %960 = 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) %956, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %961 unwind label %1003

961:                                              ; preds = %955
  %962 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %960, ptr noundef @.str.20)
          to label %963 unwind label %1003

963:                                              ; preds = %961
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #4
  %964 = load ptr, ptr %4, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.LodePNGState, ptr %964, i32 0, i32 4
  %966 = getelementptr inbounds %struct.LodePNGInfo, ptr %965, i32 0, i32 32
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 4 dereferenceable(4) %966)
          to label %967 unwind label %1007

967:                                              ; preds = %963
  %968 = 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) %962, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %969 unwind label %1011

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

971:                                              ; preds = %969
  %972 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %970, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %973 unwind label %1011

973:                                              ; preds = %971
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #4
  call void @_Z4failv()
  br label %1017

974:                                              ; preds = %948
  %975 = landingpad { ptr, i32 }
          cleanup
  %976 = extractvalue { ptr, i32 } %975, 0
  store ptr %976, ptr %11, align 8
  %977 = extractvalue { ptr, i32 } %975, 1
  store i32 %977, ptr %12, align 4
  br label %1002

978:                                              ; preds = %949
  %979 = landingpad { ptr, i32 }
          cleanup
  %980 = extractvalue { ptr, i32 } %979, 0
  store ptr %980, ptr %11, align 8
  %981 = extractvalue { ptr, i32 } %979, 1
  store i32 %981, ptr %12, align 4
  br label %1001

982:                                              ; preds = %950
  %983 = landingpad { ptr, i32 }
          cleanup
  %984 = extractvalue { ptr, i32 } %983, 0
  store ptr %984, ptr %11, align 8
  %985 = extractvalue { ptr, i32 } %983, 1
  store i32 %985, ptr %12, align 4
  br label %1000

986:                                              ; preds = %951
  %987 = landingpad { ptr, i32 }
          cleanup
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %11, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %12, align 4
  br label %999

990:                                              ; preds = %952
  %991 = landingpad { ptr, i32 }
          cleanup
  %992 = extractvalue { ptr, i32 } %991, 0
  store ptr %992, ptr %11, align 8
  %993 = extractvalue { ptr, i32 } %991, 1
  store i32 %993, ptr %12, align 4
  br label %998

994:                                              ; preds = %953
  %995 = landingpad { ptr, i32 }
          cleanup
  %996 = extractvalue { ptr, i32 } %995, 0
  store ptr %996, ptr %11, align 8
  %997 = extractvalue { ptr, i32 } %995, 1
  store i32 %997, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #4
  br label %998

998:                                              ; preds = %994, %990
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #4
  br label %999

999:                                              ; preds = %998, %986
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #4
  br label %1000

1000:                                             ; preds = %999, %982
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #4
  br label %1001

1001:                                             ; preds = %1000, %978
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #4
  br label %1002

1002:                                             ; preds = %1001, %974
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #4
  br label %1457

1003:                                             ; preds = %961, %955
  %1004 = landingpad { ptr, i32 }
          cleanup
  %1005 = extractvalue { ptr, i32 } %1004, 0
  store ptr %1005, ptr %11, align 8
  %1006 = extractvalue { ptr, i32 } %1004, 1
  store i32 %1006, ptr %12, align 4
  br label %1016

1007:                                             ; preds = %963
  %1008 = landingpad { ptr, i32 }
          cleanup
  %1009 = extractvalue { ptr, i32 } %1008, 0
  store ptr %1009, ptr %11, align 8
  %1010 = extractvalue { ptr, i32 } %1008, 1
  store i32 %1010, ptr %12, align 4
  br label %1015

1011:                                             ; preds = %971, %969, %967
  %1012 = landingpad { ptr, i32 }
          cleanup
  %1013 = extractvalue { ptr, i32 } %1012, 0
  store ptr %1013, ptr %11, align 8
  %1014 = extractvalue { ptr, i32 } %1012, 1
  store i32 %1014, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #4
  br label %1015

1015:                                             ; preds = %1011, %1007
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #4
  br label %1016

1016:                                             ; preds = %1015, %1003
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #4
  br label %1457

1017:                                             ; preds = %973, %938
  br label %1018

1018:                                             ; preds = %1017, %379
  %1019 = load ptr, ptr %3, align 8, !tbaa !5
  %1020 = getelementptr inbounds %struct.LodePNGState, ptr %1019, i32 0, i32 4
  %1021 = getelementptr inbounds %struct.LodePNGInfo, ptr %1020, i32 0, i32 33
  %1022 = load i32, ptr %1021, align 8, !tbaa !32
  %1023 = load ptr, ptr %4, align 8, !tbaa !5
  %1024 = getelementptr inbounds %struct.LodePNGState, ptr %1023, i32 0, i32 4
  %1025 = getelementptr inbounds %struct.LodePNGInfo, ptr %1024, i32 0, i32 33
  %1026 = load i32, ptr %1025, align 8, !tbaa !32
  %1027 = icmp ne i32 %1022, %1026
  br i1 %1027, label %1028, label %1097

1028:                                             ; preds = %1018
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %1029 unwind label %1054

1029:                                             ; preds = %1028
  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.458)
          to label %1030 unwind label %1058

1030:                                             ; preds = %1029
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef @.str.3)
          to label %1031 unwind label %1062

1031:                                             ; preds = %1030
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.459)
          to label %1032 unwind label %1066

1032:                                             ; preds = %1031
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.18)
          to label %1033 unwind label %1070

1033:                                             ; preds = %1032
  %1034 = 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) %95)
          to label %1035 unwind label %1074

1035:                                             ; preds = %1033
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #4
  %1036 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %101) #4
  %1037 = load ptr, ptr %3, align 8, !tbaa !5
  %1038 = getelementptr inbounds %struct.LodePNGState, ptr %1037, i32 0, i32 4
  %1039 = getelementptr inbounds %struct.LodePNGInfo, ptr %1038, i32 0, i32 33
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef nonnull align 4 dereferenceable(4) %1039)
  %1040 = 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) %1036, ptr noundef nonnull align 8 dereferenceable(32) %101)
          to label %1041 unwind label %1083

1041:                                             ; preds = %1035
  %1042 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1040, ptr noundef @.str.20)
          to label %1043 unwind label %1083

1043:                                             ; preds = %1041
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #4
  %1044 = load ptr, ptr %4, align 8, !tbaa !5
  %1045 = getelementptr inbounds %struct.LodePNGState, ptr %1044, i32 0, i32 4
  %1046 = getelementptr inbounds %struct.LodePNGInfo, ptr %1045, i32 0, i32 33
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 4 dereferenceable(4) %1046)
          to label %1047 unwind label %1087

1047:                                             ; preds = %1043
  %1048 = 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) %1042, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %1049 unwind label %1091

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

1051:                                             ; preds = %1049
  %1052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1050, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1053 unwind label %1091

1053:                                             ; preds = %1051
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #4
  call void @_Z4failv()
  br label %1097

1054:                                             ; preds = %1028
  %1055 = landingpad { ptr, i32 }
          cleanup
  %1056 = extractvalue { ptr, i32 } %1055, 0
  store ptr %1056, ptr %11, align 8
  %1057 = extractvalue { ptr, i32 } %1055, 1
  store i32 %1057, ptr %12, align 4
  br label %1082

1058:                                             ; preds = %1029
  %1059 = landingpad { ptr, i32 }
          cleanup
  %1060 = extractvalue { ptr, i32 } %1059, 0
  store ptr %1060, ptr %11, align 8
  %1061 = extractvalue { ptr, i32 } %1059, 1
  store i32 %1061, ptr %12, align 4
  br label %1081

1062:                                             ; preds = %1030
  %1063 = landingpad { ptr, i32 }
          cleanup
  %1064 = extractvalue { ptr, i32 } %1063, 0
  store ptr %1064, ptr %11, align 8
  %1065 = extractvalue { ptr, i32 } %1063, 1
  store i32 %1065, ptr %12, align 4
  br label %1080

1066:                                             ; preds = %1031
  %1067 = landingpad { ptr, i32 }
          cleanup
  %1068 = extractvalue { ptr, i32 } %1067, 0
  store ptr %1068, ptr %11, align 8
  %1069 = extractvalue { ptr, i32 } %1067, 1
  store i32 %1069, ptr %12, align 4
  br label %1079

1070:                                             ; preds = %1032
  %1071 = landingpad { ptr, i32 }
          cleanup
  %1072 = extractvalue { ptr, i32 } %1071, 0
  store ptr %1072, ptr %11, align 8
  %1073 = extractvalue { ptr, i32 } %1071, 1
  store i32 %1073, ptr %12, align 4
  br label %1078

1074:                                             ; preds = %1033
  %1075 = landingpad { ptr, i32 }
          cleanup
  %1076 = extractvalue { ptr, i32 } %1075, 0
  store ptr %1076, ptr %11, align 8
  %1077 = extractvalue { ptr, i32 } %1075, 1
  store i32 %1077, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #4
  br label %1078

1078:                                             ; preds = %1074, %1070
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #4
  br label %1079

1079:                                             ; preds = %1078, %1066
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #4
  br label %1080

1080:                                             ; preds = %1079, %1062
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #4
  br label %1081

1081:                                             ; preds = %1080, %1058
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #4
  br label %1082

1082:                                             ; preds = %1081, %1054
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #4
  br label %1457

1083:                                             ; preds = %1041, %1035
  %1084 = landingpad { ptr, i32 }
          cleanup
  %1085 = extractvalue { ptr, i32 } %1084, 0
  store ptr %1085, ptr %11, align 8
  %1086 = extractvalue { ptr, i32 } %1084, 1
  store i32 %1086, ptr %12, align 4
  br label %1096

1087:                                             ; preds = %1043
  %1088 = landingpad { ptr, i32 }
          cleanup
  %1089 = extractvalue { ptr, i32 } %1088, 0
  store ptr %1089, ptr %11, align 8
  %1090 = extractvalue { ptr, i32 } %1088, 1
  store i32 %1090, ptr %12, align 4
  br label %1095

1091:                                             ; preds = %1051, %1049, %1047
  %1092 = landingpad { ptr, i32 }
          cleanup
  %1093 = extractvalue { ptr, i32 } %1092, 0
  store ptr %1093, ptr %11, align 8
  %1094 = extractvalue { ptr, i32 } %1092, 1
  store i32 %1094, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #4
  br label %1095

1095:                                             ; preds = %1091, %1087
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #4
  br label %1096

1096:                                             ; preds = %1095, %1083
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %101) #4
  br label %1457

1097:                                             ; preds = %1053, %1018
  %1098 = load ptr, ptr %3, align 8, !tbaa !5
  %1099 = getelementptr inbounds %struct.LodePNGState, ptr %1098, i32 0, i32 4
  %1100 = getelementptr inbounds %struct.LodePNGInfo, ptr %1099, i32 0, i32 33
  %1101 = load i32, ptr %1100, align 8, !tbaa !32
  %1102 = icmp ne i32 %1101, 0
  br i1 %1102, label %1103, label %1183

1103:                                             ; preds = %1097
  %1104 = load ptr, ptr %3, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.LodePNGState, ptr %1104, i32 0, i32 4
  %1106 = getelementptr inbounds %struct.LodePNGInfo, ptr %1105, i32 0, i32 34
  %1107 = load i32, ptr %1106, align 4, !tbaa !33
  %1108 = load ptr, ptr %4, align 8, !tbaa !5
  %1109 = getelementptr inbounds %struct.LodePNGState, ptr %1108, i32 0, i32 4
  %1110 = getelementptr inbounds %struct.LodePNGInfo, ptr %1109, i32 0, i32 34
  %1111 = load i32, ptr %1110, align 4, !tbaa !33
  %1112 = icmp ne i32 %1107, %1111
  br i1 %1112, label %1113, label %1182

1113:                                             ; preds = %1103
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %108) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %108)
          to label %1114 unwind label %1139

1114:                                             ; preds = %1113
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef @.str.460)
          to label %1115 unwind label %1143

1115:                                             ; preds = %1114
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef @.str.3)
          to label %1116 unwind label %1147

1116:                                             ; preds = %1115
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef @.str.461)
          to label %1117 unwind label %1151

1117:                                             ; preds = %1116
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef @.str.18)
          to label %1118 unwind label %1155

1118:                                             ; preds = %1117
  %1119 = 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) %103)
          to label %1120 unwind label %1159

1120:                                             ; preds = %1118
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #4
  %1121 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #4
  %1122 = load ptr, ptr %3, align 8, !tbaa !5
  %1123 = getelementptr inbounds %struct.LodePNGState, ptr %1122, i32 0, i32 4
  %1124 = getelementptr inbounds %struct.LodePNGInfo, ptr %1123, i32 0, i32 34
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 4 dereferenceable(4) %1124)
  %1125 = 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) %1121, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %1126 unwind label %1168

1126:                                             ; preds = %1120
  %1127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1125, ptr noundef @.str.20)
          to label %1128 unwind label %1168

1128:                                             ; preds = %1126
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #4
  %1129 = load ptr, ptr %4, align 8, !tbaa !5
  %1130 = getelementptr inbounds %struct.LodePNGState, ptr %1129, i32 0, i32 4
  %1131 = getelementptr inbounds %struct.LodePNGInfo, ptr %1130, i32 0, i32 34
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %110, ptr noundef nonnull align 4 dereferenceable(4) %1131)
          to label %1132 unwind label %1172

1132:                                             ; preds = %1128
  %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) %1127, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %1134 unwind label %1176

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 @.str.21)
          to label %1136 unwind label %1176

1136:                                             ; preds = %1134
  %1137 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1135, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1138 unwind label %1176

1138:                                             ; preds = %1136
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #4
  call void @_Z4failv()
  br label %1182

1139:                                             ; preds = %1113
  %1140 = landingpad { ptr, i32 }
          cleanup
  %1141 = extractvalue { ptr, i32 } %1140, 0
  store ptr %1141, ptr %11, align 8
  %1142 = extractvalue { ptr, i32 } %1140, 1
  store i32 %1142, ptr %12, align 4
  br label %1167

1143:                                             ; preds = %1114
  %1144 = landingpad { ptr, i32 }
          cleanup
  %1145 = extractvalue { ptr, i32 } %1144, 0
  store ptr %1145, ptr %11, align 8
  %1146 = extractvalue { ptr, i32 } %1144, 1
  store i32 %1146, ptr %12, align 4
  br label %1166

1147:                                             ; preds = %1115
  %1148 = landingpad { ptr, i32 }
          cleanup
  %1149 = extractvalue { ptr, i32 } %1148, 0
  store ptr %1149, ptr %11, align 8
  %1150 = extractvalue { ptr, i32 } %1148, 1
  store i32 %1150, ptr %12, align 4
  br label %1165

1151:                                             ; preds = %1116
  %1152 = landingpad { ptr, i32 }
          cleanup
  %1153 = extractvalue { ptr, i32 } %1152, 0
  store ptr %1153, ptr %11, align 8
  %1154 = extractvalue { ptr, i32 } %1152, 1
  store i32 %1154, ptr %12, align 4
  br label %1164

1155:                                             ; preds = %1117
  %1156 = landingpad { ptr, i32 }
          cleanup
  %1157 = extractvalue { ptr, i32 } %1156, 0
  store ptr %1157, ptr %11, align 8
  %1158 = extractvalue { ptr, i32 } %1156, 1
  store i32 %1158, ptr %12, align 4
  br label %1163

1159:                                             ; preds = %1118
  %1160 = landingpad { ptr, i32 }
          cleanup
  %1161 = extractvalue { ptr, i32 } %1160, 0
  store ptr %1161, ptr %11, align 8
  %1162 = extractvalue { ptr, i32 } %1160, 1
  store i32 %1162, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #4
  br label %1163

1163:                                             ; preds = %1159, %1155
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #4
  br label %1164

1164:                                             ; preds = %1163, %1151
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #4
  br label %1165

1165:                                             ; preds = %1164, %1147
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #4
  br label %1166

1166:                                             ; preds = %1165, %1143
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #4
  br label %1167

1167:                                             ; preds = %1166, %1139
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %108) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #4
  br label %1457

1168:                                             ; preds = %1126, %1120
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %11, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %12, align 4
  br label %1181

1172:                                             ; preds = %1128
  %1173 = landingpad { ptr, i32 }
          cleanup
  %1174 = extractvalue { ptr, i32 } %1173, 0
  store ptr %1174, ptr %11, align 8
  %1175 = extractvalue { ptr, i32 } %1173, 1
  store i32 %1175, ptr %12, align 4
  br label %1180

1176:                                             ; preds = %1136, %1134, %1132
  %1177 = landingpad { ptr, i32 }
          cleanup
  %1178 = extractvalue { ptr, i32 } %1177, 0
  store ptr %1178, ptr %11, align 8
  %1179 = extractvalue { ptr, i32 } %1177, 1
  store i32 %1179, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #4
  br label %1180

1180:                                             ; preds = %1176, %1172
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #4
  br label %1181

1181:                                             ; preds = %1180, %1168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #4
  br label %1457

1182:                                             ; preds = %1138, %1103
  br label %1183

1183:                                             ; preds = %1182, %1097
  %1184 = load ptr, ptr %3, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.LodePNGState, ptr %1184, i32 0, i32 4
  %1186 = getelementptr inbounds %struct.LodePNGInfo, ptr %1185, i32 0, i32 35
  %1187 = load i32, ptr %1186, align 8, !tbaa !34
  %1188 = load ptr, ptr %4, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.LodePNGState, ptr %1188, i32 0, i32 4
  %1190 = getelementptr inbounds %struct.LodePNGInfo, ptr %1189, i32 0, i32 35
  %1191 = load i32, ptr %1190, align 8, !tbaa !34
  %1192 = icmp ne i32 %1187, %1191
  br i1 %1192, label %1193, label %1262

1193:                                             ; preds = %1183
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %116) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %116)
          to label %1194 unwind label %1219

1194:                                             ; preds = %1193
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.462)
          to label %1195 unwind label %1223

1195:                                             ; preds = %1194
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %113, ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef @.str.3)
          to label %1196 unwind label %1227

1196:                                             ; preds = %1195
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.463)
          to label %1197 unwind label %1231

1197:                                             ; preds = %1196
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %111, ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.18)
          to label %1198 unwind label %1235

1198:                                             ; preds = %1197
  %1199 = 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) %111)
          to label %1200 unwind label %1239

1200:                                             ; preds = %1198
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #4
  %1201 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #4
  %1202 = load ptr, ptr %3, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.LodePNGState, ptr %1202, i32 0, i32 4
  %1204 = getelementptr inbounds %struct.LodePNGInfo, ptr %1203, i32 0, i32 35
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %117, ptr noundef nonnull align 4 dereferenceable(4) %1204)
  %1205 = 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) %1201, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %1206 unwind label %1248

1206:                                             ; preds = %1200
  %1207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1205, ptr noundef @.str.20)
          to label %1208 unwind label %1248

1208:                                             ; preds = %1206
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #4
  %1209 = load ptr, ptr %4, align 8, !tbaa !5
  %1210 = getelementptr inbounds %struct.LodePNGState, ptr %1209, i32 0, i32 4
  %1211 = getelementptr inbounds %struct.LodePNGInfo, ptr %1210, i32 0, i32 35
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %118, ptr noundef nonnull align 4 dereferenceable(4) %1211)
          to label %1212 unwind label %1252

1212:                                             ; preds = %1208
  %1213 = 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) %1207, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1214 unwind label %1256

1214:                                             ; preds = %1212
  %1215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1213, ptr noundef @.str.21)
          to label %1216 unwind label %1256

1216:                                             ; preds = %1214
  %1217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1215, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1218 unwind label %1256

1218:                                             ; preds = %1216
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #4
  call void @_Z4failv()
  br label %1262

1219:                                             ; preds = %1193
  %1220 = landingpad { ptr, i32 }
          cleanup
  %1221 = extractvalue { ptr, i32 } %1220, 0
  store ptr %1221, ptr %11, align 8
  %1222 = extractvalue { ptr, i32 } %1220, 1
  store i32 %1222, ptr %12, align 4
  br label %1247

1223:                                             ; preds = %1194
  %1224 = landingpad { ptr, i32 }
          cleanup
  %1225 = extractvalue { ptr, i32 } %1224, 0
  store ptr %1225, ptr %11, align 8
  %1226 = extractvalue { ptr, i32 } %1224, 1
  store i32 %1226, ptr %12, align 4
  br label %1246

1227:                                             ; preds = %1195
  %1228 = landingpad { ptr, i32 }
          cleanup
  %1229 = extractvalue { ptr, i32 } %1228, 0
  store ptr %1229, ptr %11, align 8
  %1230 = extractvalue { ptr, i32 } %1228, 1
  store i32 %1230, ptr %12, align 4
  br label %1245

1231:                                             ; preds = %1196
  %1232 = landingpad { ptr, i32 }
          cleanup
  %1233 = extractvalue { ptr, i32 } %1232, 0
  store ptr %1233, ptr %11, align 8
  %1234 = extractvalue { ptr, i32 } %1232, 1
  store i32 %1234, ptr %12, align 4
  br label %1244

1235:                                             ; preds = %1197
  %1236 = landingpad { ptr, i32 }
          cleanup
  %1237 = extractvalue { ptr, i32 } %1236, 0
  store ptr %1237, ptr %11, align 8
  %1238 = extractvalue { ptr, i32 } %1236, 1
  store i32 %1238, ptr %12, align 4
  br label %1243

1239:                                             ; preds = %1198
  %1240 = landingpad { ptr, i32 }
          cleanup
  %1241 = extractvalue { ptr, i32 } %1240, 0
  store ptr %1241, ptr %11, align 8
  %1242 = extractvalue { ptr, i32 } %1240, 1
  store i32 %1242, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #4
  br label %1243

1243:                                             ; preds = %1239, %1235
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #4
  br label %1244

1244:                                             ; preds = %1243, %1231
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #4
  br label %1245

1245:                                             ; preds = %1244, %1227
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #4
  br label %1246

1246:                                             ; preds = %1245, %1223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #4
  br label %1247

1247:                                             ; preds = %1246, %1219
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %116) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %116) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #4
  br label %1457

1248:                                             ; preds = %1206, %1200
  %1249 = landingpad { ptr, i32 }
          cleanup
  %1250 = extractvalue { ptr, i32 } %1249, 0
  store ptr %1250, ptr %11, align 8
  %1251 = extractvalue { ptr, i32 } %1249, 1
  store i32 %1251, ptr %12, align 4
  br label %1261

1252:                                             ; preds = %1208
  %1253 = landingpad { ptr, i32 }
          cleanup
  %1254 = extractvalue { ptr, i32 } %1253, 0
  store ptr %1254, ptr %11, align 8
  %1255 = extractvalue { ptr, i32 } %1253, 1
  store i32 %1255, ptr %12, align 4
  br label %1260

1256:                                             ; preds = %1216, %1214, %1212
  %1257 = landingpad { ptr, i32 }
          cleanup
  %1258 = extractvalue { ptr, i32 } %1257, 0
  store ptr %1258, ptr %11, align 8
  %1259 = extractvalue { ptr, i32 } %1257, 1
  store i32 %1259, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #4
  br label %1260

1260:                                             ; preds = %1256, %1252
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #4
  br label %1261

1261:                                             ; preds = %1260, %1248
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #4
  br label %1457

1262:                                             ; preds = %1218, %1183
  %1263 = load ptr, ptr %3, align 8, !tbaa !5
  %1264 = getelementptr inbounds %struct.LodePNGState, ptr %1263, i32 0, i32 4
  %1265 = getelementptr inbounds %struct.LodePNGInfo, ptr %1264, i32 0, i32 35
  %1266 = load i32, ptr %1265, align 8, !tbaa !34
  %1267 = icmp ne i32 %1266, 0
  br i1 %1267, label %1268, label %1456

1268:                                             ; preds = %1262
  %1269 = load ptr, ptr %3, align 8, !tbaa !5
  %1270 = getelementptr inbounds %struct.LodePNGState, ptr %1269, i32 0, i32 4
  %1271 = getelementptr inbounds %struct.LodePNGInfo, ptr %1270, i32 0, i32 38
  %1272 = load i32, ptr %1271, align 8, !tbaa !35
  %1273 = load ptr, ptr %4, align 8, !tbaa !5
  %1274 = getelementptr inbounds %struct.LodePNGState, ptr %1273, i32 0, i32 4
  %1275 = getelementptr inbounds %struct.LodePNGInfo, ptr %1274, i32 0, i32 38
  %1276 = load i32, ptr %1275, align 8, !tbaa !35
  %1277 = icmp ne i32 %1272, %1276
  br i1 %1277, label %1278, label %1347

1278:                                             ; preds = %1268
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %120) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %124) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %124)
          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 %122, ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef @.str.464)
          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 %121, ptr noundef nonnull align 8 dereferenceable(32) %122, 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 %120, ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef @.str.465)
          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 %119, ptr noundef nonnull align 8 dereferenceable(32) %120, 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) %119)
          to label %1285 unwind label %1324

1285:                                             ; preds = %1283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %124) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #4
  %1286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #4
  %1287 = load ptr, ptr %3, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.LodePNGState, ptr %1287, i32 0, i32 4
  %1289 = getelementptr inbounds %struct.LodePNGInfo, ptr %1288, i32 0, i32 38
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %125, ptr noundef nonnull align 4 dereferenceable(4) %1289)
  %1290 = 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) %125)
          to label %1291 unwind label %1333

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

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

1297:                                             ; preds = %1293
  %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) %1292, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %1299 unwind label %1341

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 @.str.21)
          to label %1301 unwind label %1341

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

1303:                                             ; preds = %1301
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #4
  call void @_Z4failv()
  br label %1347

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

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

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

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

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

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

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

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

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

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

1332:                                             ; preds = %1331, %1304
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %124) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %124) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %120) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #4
  br label %1457

1333:                                             ; preds = %1291, %1285
  %1334 = landingpad { ptr, i32 }
          cleanup
  %1335 = extractvalue { ptr, i32 } %1334, 0
  store ptr %1335, ptr %11, align 8
  %1336 = extractvalue { ptr, i32 } %1334, 1
  store i32 %1336, ptr %12, align 4
  br label %1346

1337:                                             ; preds = %1293
  %1338 = landingpad { ptr, i32 }
          cleanup
  %1339 = extractvalue { ptr, i32 } %1338, 0
  store ptr %1339, ptr %11, align 8
  %1340 = extractvalue { ptr, i32 } %1338, 1
  store i32 %1340, ptr %12, align 4
  br label %1345

1341:                                             ; preds = %1301, %1299, %1297
  %1342 = landingpad { ptr, i32 }
          cleanup
  %1343 = extractvalue { ptr, i32 } %1342, 0
  store ptr %1343, ptr %11, align 8
  %1344 = extractvalue { ptr, i32 } %1342, 1
  store i32 %1344, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #4
  br label %1345

1345:                                             ; preds = %1341, %1337
  call void @llvm.lifetime.end.p0(i64 32, ptr %126) #4
  br label %1346

1346:                                             ; preds = %1345, %1333
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #4
  br label %1457

1347:                                             ; preds = %1303, %1268
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #4
  store i64 0, ptr %127, align 8, !tbaa !36
  br label %1348

1348:                                             ; preds = %1451, %1347
  %1349 = load i64, ptr %127, align 8, !tbaa !36
  %1350 = load ptr, ptr %3, align 8, !tbaa !5
  %1351 = getelementptr inbounds %struct.LodePNGState, ptr %1350, i32 0, i32 4
  %1352 = getelementptr inbounds %struct.LodePNGInfo, ptr %1351, i32 0, i32 38
  %1353 = load i32, ptr %1352, align 8, !tbaa !35
  %1354 = zext i32 %1353 to i64
  %1355 = icmp ult i64 %1349, %1354
  br i1 %1355, label %1357, label %1356

1356:                                             ; preds = %1348
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #4
  br label %1455

1357:                                             ; preds = %1348
  %1358 = load ptr, ptr %3, align 8, !tbaa !5
  %1359 = getelementptr inbounds %struct.LodePNGState, ptr %1358, i32 0, i32 4
  %1360 = getelementptr inbounds %struct.LodePNGInfo, ptr %1359, i32 0, i32 37
  %1361 = load ptr, ptr %1360, align 8, !tbaa !37
  %1362 = load i64, ptr %127, align 8, !tbaa !36
  %1363 = getelementptr inbounds i8, ptr %1361, i64 %1362
  %1364 = load i8, ptr %1363, align 1, !tbaa !38
  %1365 = zext i8 %1364 to i32
  %1366 = load ptr, ptr %4, align 8, !tbaa !5
  %1367 = getelementptr inbounds %struct.LodePNGState, ptr %1366, i32 0, i32 4
  %1368 = getelementptr inbounds %struct.LodePNGInfo, ptr %1367, i32 0, i32 37
  %1369 = load ptr, ptr %1368, align 8, !tbaa !37
  %1370 = load i64, ptr %127, align 8, !tbaa !36
  %1371 = getelementptr inbounds i8, ptr %1369, i64 %1370
  %1372 = load i8, ptr %1371, align 1, !tbaa !38
  %1373 = zext i8 %1372 to i32
  %1374 = icmp ne i32 %1365, %1373
  br i1 %1374, label %1375, label %1450

1375:                                             ; preds = %1357
  call void @llvm.lifetime.start.p0(i64 32, ptr %128) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %130) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %132) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %133) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %133)
          to label %1376 unwind label %1407

1376:                                             ; preds = %1375
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %131, ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef @.str.466)
          to label %1377 unwind label %1411

1377:                                             ; preds = %1376
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef @.str.3)
          to label %1378 unwind label %1415

1378:                                             ; preds = %1377
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef @.str.467)
          to label %1379 unwind label %1419

1379:                                             ; preds = %1378
  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.18)
          to label %1380 unwind label %1423

1380:                                             ; preds = %1379
  %1381 = 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) %128)
          to label %1382 unwind label %1427

1382:                                             ; preds = %1380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %133) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #4
  %1383 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #4
  %1384 = load ptr, ptr %3, align 8, !tbaa !5
  %1385 = getelementptr inbounds %struct.LodePNGState, ptr %1384, i32 0, i32 4
  %1386 = getelementptr inbounds %struct.LodePNGInfo, ptr %1385, i32 0, i32 37
  %1387 = load ptr, ptr %1386, align 8, !tbaa !37
  %1388 = load i64, ptr %127, align 8, !tbaa !36
  %1389 = getelementptr inbounds i8, ptr %1387, i64 %1388
  call void @_Z8valtostrIhENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %134, ptr noundef nonnull align 1 dereferenceable(1) %1389)
  %1390 = 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) %1383, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %1391 unwind label %1436

1391:                                             ; preds = %1382
  %1392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1390, ptr noundef @.str.20)
          to label %1393 unwind label %1436

1393:                                             ; preds = %1391
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #4
  %1394 = load ptr, ptr %4, align 8, !tbaa !5
  %1395 = getelementptr inbounds %struct.LodePNGState, ptr %1394, i32 0, i32 4
  %1396 = getelementptr inbounds %struct.LodePNGInfo, ptr %1395, i32 0, i32 37
  %1397 = load ptr, ptr %1396, align 8, !tbaa !37
  %1398 = load i64, ptr %127, align 8, !tbaa !36
  %1399 = getelementptr inbounds i8, ptr %1397, i64 %1398
  invoke void @_Z8valtostrIhENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %135, ptr noundef nonnull align 1 dereferenceable(1) %1399)
          to label %1400 unwind label %1440

1400:                                             ; preds = %1393
  %1401 = 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) %1392, ptr noundef nonnull align 8 dereferenceable(32) %135)
          to label %1402 unwind label %1444

1402:                                             ; preds = %1400
  %1403 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1401, ptr noundef @.str.21)
          to label %1404 unwind label %1444

1404:                                             ; preds = %1402
  %1405 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1403, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1406 unwind label %1444

1406:                                             ; preds = %1404
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #4
  call void @_Z4failv()
  br label %1450

1407:                                             ; preds = %1375
  %1408 = landingpad { ptr, i32 }
          cleanup
  %1409 = extractvalue { ptr, i32 } %1408, 0
  store ptr %1409, ptr %11, align 8
  %1410 = extractvalue { ptr, i32 } %1408, 1
  store i32 %1410, ptr %12, align 4
  br label %1435

1411:                                             ; preds = %1376
  %1412 = landingpad { ptr, i32 }
          cleanup
  %1413 = extractvalue { ptr, i32 } %1412, 0
  store ptr %1413, ptr %11, align 8
  %1414 = extractvalue { ptr, i32 } %1412, 1
  store i32 %1414, ptr %12, align 4
  br label %1434

1415:                                             ; preds = %1377
  %1416 = landingpad { ptr, i32 }
          cleanup
  %1417 = extractvalue { ptr, i32 } %1416, 0
  store ptr %1417, ptr %11, align 8
  %1418 = extractvalue { ptr, i32 } %1416, 1
  store i32 %1418, ptr %12, align 4
  br label %1433

1419:                                             ; preds = %1378
  %1420 = landingpad { ptr, i32 }
          cleanup
  %1421 = extractvalue { ptr, i32 } %1420, 0
  store ptr %1421, ptr %11, align 8
  %1422 = extractvalue { ptr, i32 } %1420, 1
  store i32 %1422, ptr %12, align 4
  br label %1432

1423:                                             ; preds = %1379
  %1424 = landingpad { ptr, i32 }
          cleanup
  %1425 = extractvalue { ptr, i32 } %1424, 0
  store ptr %1425, ptr %11, align 8
  %1426 = extractvalue { ptr, i32 } %1424, 1
  store i32 %1426, ptr %12, align 4
  br label %1431

1427:                                             ; preds = %1380
  %1428 = landingpad { ptr, i32 }
          cleanup
  %1429 = extractvalue { ptr, i32 } %1428, 0
  store ptr %1429, ptr %11, align 8
  %1430 = extractvalue { ptr, i32 } %1428, 1
  store i32 %1430, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #4
  br label %1431

1431:                                             ; preds = %1427, %1423
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #4
  br label %1432

1432:                                             ; preds = %1431, %1419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #4
  br label %1433

1433:                                             ; preds = %1432, %1415
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #4
  br label %1434

1434:                                             ; preds = %1433, %1411
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #4
  br label %1435

1435:                                             ; preds = %1434, %1407
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %133) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %132) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %130) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %128) #4
  br label %1454

1436:                                             ; preds = %1391, %1382
  %1437 = landingpad { ptr, i32 }
          cleanup
  %1438 = extractvalue { ptr, i32 } %1437, 0
  store ptr %1438, ptr %11, align 8
  %1439 = extractvalue { ptr, i32 } %1437, 1
  store i32 %1439, ptr %12, align 4
  br label %1449

1440:                                             ; preds = %1393
  %1441 = landingpad { ptr, i32 }
          cleanup
  %1442 = extractvalue { ptr, i32 } %1441, 0
  store ptr %1442, ptr %11, align 8
  %1443 = extractvalue { ptr, i32 } %1441, 1
  store i32 %1443, ptr %12, align 4
  br label %1448

1444:                                             ; preds = %1404, %1402, %1400
  %1445 = landingpad { ptr, i32 }
          cleanup
  %1446 = extractvalue { ptr, i32 } %1445, 0
  store ptr %1446, ptr %11, align 8
  %1447 = extractvalue { ptr, i32 } %1445, 1
  store i32 %1447, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #4
  br label %1448

1448:                                             ; preds = %1444, %1440
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #4
  br label %1449

1449:                                             ; preds = %1448, %1436
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #4
  br label %1454

1450:                                             ; preds = %1406, %1357
  br label %1451

1451:                                             ; preds = %1450
  %1452 = load i64, ptr %127, align 8, !tbaa !36
  %1453 = add i64 %1452, 1
  store i64 %1453, ptr %127, align 8, !tbaa !36
  br label %1348, !llvm.loop !39

1454:                                             ; preds = %1449, %1435
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #4
  br label %1457

1455:                                             ; preds = %1356
  br label %1456

1456:                                             ; preds = %1455, %1262
  ret void

1457:                                             ; preds = %1454, %1346, %1332, %1261, %1247, %1181, %1167, %1096, %1082, %1016, %1002, %937, %923, %858, %844, %779, %765, %700, %686, %621, %607, %542, %528, %463, %449, %378, %364, %298, %284, %213, %199
  %1458 = load ptr, ptr %11, align 8
  %1459 = load i32, ptr %12, align 4
  %1460 = insertvalue { ptr, i32 } poison, ptr %1458, 0
  %1461 = insertvalue { ptr, i32 } %1460, i32 %1459, 1
  resume { ptr, i32 } %1461
}

; 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 = { 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, !13, i64 372}
!10 = !{!"_ZTS12LodePNGState", !11, i64 8, !14, i64 64, !17, i64 152, !20, i64 192, !13, i64 504}
!11 = !{!"_ZTS22LodePNGDecoderSettings", !12, i64 0, !13, i64 32, !13, i64 36, !13, i64 40, !13, i64 44, !13, i64 48, !13, i64 52}
!12 = !{!"_ZTS25LodePNGDecompressSettings", !13, i64 0, !13, i64 4, !6, i64 8, !6, i64 16, !6, i64 24}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS22LodePNGEncoderSettings", !15, i64 0, !13, i64 48, !13, i64 52, !16, i64 56, !6, i64 64, !13, i64 72, !13, i64 76, !13, i64 80}
!15 = !{!"_ZTS23LodePNGCompressSettings", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !6, i64 24, !6, i64 32, !6, i64 40}
!16 = !{!"_ZTS21LodePNGFilterStrategy", !7, i64 0}
!17 = !{!"_ZTS16LodePNGColorMode", !18, i64 0, !13, i64 4, !6, i64 8, !19, i64 16, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36}
!18 = !{!"_ZTS16LodePNGColorType", !7, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"_ZTS11LodePNGInfo", !13, i64 0, !13, i64 4, !13, i64 8, !17, i64 16, !13, i64 56, !13, i64 60, !13, i64 64, !13, i64 68, !19, i64 72, !6, i64 80, !6, i64 88, !19, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !13, i64 136, !21, i64 140, !13, i64 164, !13, i64 168, !13, i64 172, !13, i64 176, !13, i64 180, !13, i64 184, !13, i64 188, !13, i64 192, !13, i64 196, !13, i64 200, !13, i64 204, !13, i64 208, !13, i64 212, !13, i64 216, !13, i64 220, !13, i64 224, !13, i64 228, !13, i64 232, !6, i64 240, !6, i64 248, !13, i64 256, !7, i64 264, !7, i64 288}
!21 = !{!"_ZTS11LodePNGTime", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20}
!22 = !{!10, !13, i64 376}
!23 = !{!10, !13, i64 380}
!24 = !{!10, !13, i64 384}
!25 = !{!10, !13, i64 388}
!26 = !{!10, !13, i64 392}
!27 = !{!10, !13, i64 396}
!28 = !{!10, !13, i64 400}
!29 = !{!10, !13, i64 404}
!30 = !{!10, !13, i64 408}
!31 = !{!10, !13, i64 412}
!32 = !{!10, !13, i64 416}
!33 = !{!10, !13, i64 420}
!34 = !{!10, !13, i64 424}
!35 = !{!10, !13, i64 448}
!36 = !{!19, !19, i64 0}
!37 = !{!10, !6, i64 440}
!38 = !{!7, !7, i64 0}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}


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

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

@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.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.436 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.449 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.450 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.451 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.452 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.453 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.454 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.455 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.456 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.457 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.458 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.459 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.460 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.461 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.462 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.463 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.464 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.465 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.466 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.467 = external hidden unnamed_addr constant [27 x i8], align 1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z8valtostrIhENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(1)) 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 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 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 uwtable
define dso_local void @_Z27assertColorProfileDataEqualRKN7lodepng5StateES2_(ptr noundef nonnull align 8 dereferenceable(508) %0, ptr noundef nonnull align 8 dereferenceable(508) %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::__cxx11::basic_string", align 8
  %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::__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::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %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 %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::allocator", align 1
  %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::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::allocator", align 1
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %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 %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = getelementptr inbounds i8, ptr %0, i64 372
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = getelementptr inbounds i8, ptr %1, i64 372
  %134 = load i32, ptr %133, align 4, !tbaa !5
  %.not = icmp eq i32 %132, %134
  br i1 %.not, label %180, label %135

135:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %136 unwind label %155

136:                                              ; preds = %135
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.436)
          to label %137 unwind label %157

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

138:                                              ; preds = %137
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.437)
          to label %139 unwind label %161

139:                                              ; preds = %138
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.18)
          to label %140 unwind label %163

140:                                              ; preds = %139
  %141 = 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) %3)
          to label %142 unwind label %165

142:                                              ; preds = %140
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #4
  %143 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 4 dereferenceable(4) %131)
  %144 = 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) %143, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %145 unwind label %172

145:                                              ; preds = %142
  %146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull @.str.20)
          to label %147 unwind label %172

147:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 4 dereferenceable(4) %133)
          to label %148 unwind label %174

148:                                              ; preds = %147
  %149 = 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) %146, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %150 unwind label %176

150:                                              ; preds = %148
  %151 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef nonnull @.str.21)
          to label %152 unwind label %176

152:                                              ; preds = %150
  %153 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %154 unwind label %176

154:                                              ; preds = %152
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #4
  call void @_Z4failv()
  %.pr = load i32, ptr %131, align 4, !tbaa !5
  br label %180

155:                                              ; preds = %135
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %171

157:                                              ; preds = %136
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %170

159:                                              ; preds = %137
  %160 = landingpad { ptr, i32 }
          cleanup
  br label %169

161:                                              ; preds = %138
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %168

163:                                              ; preds = %139
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %167

165:                                              ; preds = %140
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #4
  br label %167

167:                                              ; preds = %165, %163
  %.pn = phi { ptr, i32 } [ %166, %165 ], [ %164, %163 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #4
  br label %168

168:                                              ; preds = %167, %161
  %.pn.pn = phi { ptr, i32 } [ %.pn, %167 ], [ %162, %161 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #4
  br label %169

169:                                              ; preds = %168, %159
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %168 ], [ %160, %159 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #4
  br label %170

170:                                              ; preds = %169, %157
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %169 ], [ %158, %157 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  br label %171

171:                                              ; preds = %170, %155
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %170 ], [ %156, %155 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #4
  br label %954

172:                                              ; preds = %145, %142
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %179

174:                                              ; preds = %147
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %178

176:                                              ; preds = %152, %150, %148
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #4
  br label %178

178:                                              ; preds = %176, %174
  %.pn196 = phi { ptr, i32 } [ %177, %176 ], [ %175, %174 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #4
  br label %179

179:                                              ; preds = %178, %172
  %.pn196.pn = phi { ptr, i32 } [ %.pn196, %178 ], [ %173, %172 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #4
  br label %954

180:                                              ; preds = %154, %2
  %181 = phi i32 [ %.pr, %154 ], [ %132, %2 ]
  %.not199 = icmp eq i32 %181, 0
  br i1 %.not199, label %232, label %182

182:                                              ; preds = %180
  %183 = getelementptr inbounds i8, ptr %0, i64 376
  %184 = load i32, ptr %183, align 8, !tbaa !21
  %185 = getelementptr inbounds i8, ptr %1, i64 376
  %186 = load i32, ptr %185, align 8, !tbaa !21
  %.not200 = icmp eq i32 %184, %186
  br i1 %.not200, label %232, label %187

187:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %188 unwind label %207

188:                                              ; preds = %187
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.438)
          to label %189 unwind label %209

189:                                              ; preds = %188
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.3)
          to label %190 unwind label %211

190:                                              ; preds = %189
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.439)
          to label %191 unwind label %213

191:                                              ; preds = %190
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.18)
          to label %192 unwind label %215

192:                                              ; preds = %191
  %193 = 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) %11)
          to label %194 unwind label %217

194:                                              ; preds = %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #4
  %195 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 4 dereferenceable(4) %183)
  %196 = 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) %195, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %197 unwind label %224

197:                                              ; preds = %194
  %198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %196, ptr noundef nonnull @.str.20)
          to label %199 unwind label %224

199:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 4 dereferenceable(4) %185)
          to label %200 unwind label %226

200:                                              ; preds = %199
  %201 = 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) %198, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %202 unwind label %228

202:                                              ; preds = %200
  %203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %201, ptr noundef nonnull @.str.21)
          to label %204 unwind label %228

204:                                              ; preds = %202
  %205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %206 unwind label %228

206:                                              ; preds = %204
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #4
  call void @_Z4failv()
  br label %232

207:                                              ; preds = %187
  %208 = landingpad { ptr, i32 }
          cleanup
  br label %223

209:                                              ; preds = %188
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %222

211:                                              ; preds = %189
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %221

213:                                              ; preds = %190
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %220

215:                                              ; preds = %191
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %219

217:                                              ; preds = %192
  %218 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #4
  br label %219

219:                                              ; preds = %217, %215
  %.pn201 = phi { ptr, i32 } [ %218, %217 ], [ %216, %215 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #4
  br label %220

220:                                              ; preds = %219, %213
  %.pn201.pn = phi { ptr, i32 } [ %.pn201, %219 ], [ %214, %213 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #4
  br label %221

221:                                              ; preds = %220, %211
  %.pn201.pn.pn = phi { ptr, i32 } [ %.pn201.pn, %220 ], [ %212, %211 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  br label %222

222:                                              ; preds = %221, %209
  %.pn201.pn.pn.pn = phi { ptr, i32 } [ %.pn201.pn.pn, %221 ], [ %210, %209 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #4
  br label %223

223:                                              ; preds = %222, %207
  %.pn201.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn201.pn.pn.pn, %222 ], [ %208, %207 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #4
  br label %954

224:                                              ; preds = %197, %194
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %231

226:                                              ; preds = %199
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %230

228:                                              ; preds = %204, %202, %200
  %229 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #4
  br label %230

230:                                              ; preds = %228, %226
  %.pn207 = phi { ptr, i32 } [ %229, %228 ], [ %227, %226 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #4
  br label %231

231:                                              ; preds = %230, %224
  %.pn207.pn = phi { ptr, i32 } [ %.pn207, %230 ], [ %225, %224 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #4
  br label %954

232:                                              ; preds = %182, %206, %180
  %233 = getelementptr inbounds i8, ptr %0, i64 380
  %234 = load i32, ptr %233, align 4, !tbaa !22
  %235 = getelementptr inbounds i8, ptr %1, i64 380
  %236 = load i32, ptr %235, align 4, !tbaa !22
  %.not210 = icmp eq i32 %234, %236
  br i1 %.not210, label %282, label %237

237:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %238 unwind label %257

238:                                              ; preds = %237
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.440)
          to label %239 unwind label %259

239:                                              ; preds = %238
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.3)
          to label %240 unwind label %261

240:                                              ; preds = %239
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.441)
          to label %241 unwind label %263

241:                                              ; preds = %240
  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.18)
          to label %242 unwind label %265

242:                                              ; preds = %241
  %243 = 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) %19)
          to label %244 unwind label %267

244:                                              ; preds = %242
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #4
  %245 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 4 dereferenceable(4) %233)
  %246 = 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) %245, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %247 unwind label %274

247:                                              ; preds = %244
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %246, ptr noundef nonnull @.str.20)
          to label %249 unwind label %274

249:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 4 dereferenceable(4) %235)
          to label %250 unwind label %276

250:                                              ; preds = %249
  %251 = 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) %248, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %252 unwind label %278

252:                                              ; preds = %250
  %253 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %251, ptr noundef nonnull @.str.21)
          to label %254 unwind label %278

254:                                              ; preds = %252
  %255 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %253, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %256 unwind label %278

256:                                              ; preds = %254
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #4
  call void @_Z4failv()
  %.pr355 = load i32, ptr %233, align 4, !tbaa !22
  br label %282

257:                                              ; preds = %237
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %273

259:                                              ; preds = %238
  %260 = landingpad { ptr, i32 }
          cleanup
  br label %272

261:                                              ; preds = %239
  %262 = landingpad { ptr, i32 }
          cleanup
  br label %271

263:                                              ; preds = %240
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %270

265:                                              ; preds = %241
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %269

267:                                              ; preds = %242
  %268 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #4
  br label %269

269:                                              ; preds = %267, %265
  %.pn211 = phi { ptr, i32 } [ %268, %267 ], [ %266, %265 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  br label %270

270:                                              ; preds = %269, %263
  %.pn211.pn = phi { ptr, i32 } [ %.pn211, %269 ], [ %264, %263 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #4
  br label %271

271:                                              ; preds = %270, %261
  %.pn211.pn.pn = phi { ptr, i32 } [ %.pn211.pn, %270 ], [ %262, %261 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #4
  br label %272

272:                                              ; preds = %271, %259
  %.pn211.pn.pn.pn = phi { ptr, i32 } [ %.pn211.pn.pn, %271 ], [ %260, %259 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  br label %273

273:                                              ; preds = %272, %257
  %.pn211.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn211.pn.pn.pn, %272 ], [ %258, %257 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #4
  br label %954

274:                                              ; preds = %247, %244
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %281

276:                                              ; preds = %249
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %280

278:                                              ; preds = %254, %252, %250
  %279 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #4
  br label %280

280:                                              ; preds = %278, %276
  %.pn217 = phi { ptr, i32 } [ %279, %278 ], [ %277, %276 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #4
  br label %281

281:                                              ; preds = %280, %274
  %.pn217.pn = phi { ptr, i32 } [ %.pn217, %280 ], [ %275, %274 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #4
  br label %954

282:                                              ; preds = %256, %232
  %283 = phi i32 [ %.pr355, %256 ], [ %234, %232 ]
  %.not220 = icmp eq i32 %283, 0
  br i1 %.not220, label %684, label %284

284:                                              ; preds = %282
  %285 = getelementptr inbounds i8, ptr %0, i64 384
  %286 = load i32, ptr %285, align 8, !tbaa !23
  %287 = getelementptr inbounds i8, ptr %1, i64 384
  %288 = load i32, ptr %287, align 8, !tbaa !23
  %.not221 = icmp eq i32 %286, %288
  br i1 %.not221, label %334, label %289

289:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %290 unwind label %309

290:                                              ; preds = %289
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.442)
          to label %291 unwind label %311

291:                                              ; preds = %290
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.3)
          to label %292 unwind label %313

292:                                              ; preds = %291
  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.443)
          to label %293 unwind label %315

293:                                              ; preds = %292
  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.18)
          to label %294 unwind label %317

294:                                              ; preds = %293
  %295 = 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) %27)
          to label %296 unwind label %319

296:                                              ; preds = %294
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #4
  %297 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #4
  call 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) %285)
  %298 = 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) %297, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %299 unwind label %326

299:                                              ; preds = %296
  %300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %298, ptr noundef nonnull @.str.20)
          to label %301 unwind label %326

301:                                              ; preds = %299
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 4 dereferenceable(4) %287)
          to label %302 unwind label %328

302:                                              ; preds = %301
  %303 = 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) %300, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %304 unwind label %330

304:                                              ; preds = %302
  %305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull @.str.21)
          to label %306 unwind label %330

306:                                              ; preds = %304
  %307 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %305, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %308 unwind label %330

308:                                              ; preds = %306
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #4
  call void @_Z4failv()
  br label %334

309:                                              ; preds = %289
  %310 = landingpad { ptr, i32 }
          cleanup
  br label %325

311:                                              ; preds = %290
  %312 = landingpad { ptr, i32 }
          cleanup
  br label %324

313:                                              ; preds = %291
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %323

315:                                              ; preds = %292
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %322

317:                                              ; preds = %293
  %318 = landingpad { ptr, i32 }
          cleanup
  br label %321

319:                                              ; preds = %294
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  br label %321

321:                                              ; preds = %319, %317
  %.pn222 = phi { ptr, i32 } [ %320, %319 ], [ %318, %317 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #4
  br label %322

322:                                              ; preds = %321, %315
  %.pn222.pn = phi { ptr, i32 } [ %.pn222, %321 ], [ %316, %315 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  br label %323

323:                                              ; preds = %322, %313
  %.pn222.pn.pn = phi { ptr, i32 } [ %.pn222.pn, %322 ], [ %314, %313 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #4
  br label %324

324:                                              ; preds = %323, %311
  %.pn222.pn.pn.pn = phi { ptr, i32 } [ %.pn222.pn.pn, %323 ], [ %312, %311 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  br label %325

325:                                              ; preds = %324, %309
  %.pn222.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn222.pn.pn.pn, %324 ], [ %310, %309 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #4
  br label %954

326:                                              ; preds = %299, %296
  %327 = landingpad { ptr, i32 }
          cleanup
  br label %333

328:                                              ; preds = %301
  %329 = landingpad { ptr, i32 }
          cleanup
  br label %332

330:                                              ; preds = %306, %304, %302
  %331 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #4
  br label %332

332:                                              ; preds = %330, %328
  %.pn228 = phi { ptr, i32 } [ %331, %330 ], [ %329, %328 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #4
  br label %333

333:                                              ; preds = %332, %326
  %.pn228.pn = phi { ptr, i32 } [ %.pn228, %332 ], [ %327, %326 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #4
  br label %954

334:                                              ; preds = %308, %284
  %335 = getelementptr inbounds i8, ptr %0, i64 388
  %336 = load i32, ptr %335, align 4, !tbaa !24
  %337 = getelementptr inbounds i8, ptr %1, i64 388
  %338 = load i32, ptr %337, align 4, !tbaa !24
  %.not231 = icmp eq i32 %336, %338
  br i1 %.not231, label %384, label %339

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

340:                                              ; preds = %339
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.444)
          to label %341 unwind label %361

341:                                              ; preds = %340
  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.3)
          to label %342 unwind label %363

342:                                              ; preds = %341
  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.445)
          to label %343 unwind label %365

343:                                              ; preds = %342
  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.18)
          to label %344 unwind label %367

344:                                              ; preds = %343
  %345 = 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 %346 unwind label %369

346:                                              ; preds = %344
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #4
  %347 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 4 dereferenceable(4) %335)
  %348 = 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) %347, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %349 unwind label %376

349:                                              ; preds = %346
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %348, ptr noundef nonnull @.str.20)
          to label %351 unwind label %376

351:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #4
  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) %337)
          to label %352 unwind label %378

352:                                              ; preds = %351
  %353 = 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) %350, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %354 unwind label %380

354:                                              ; preds = %352
  %355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %353, ptr noundef nonnull @.str.21)
          to label %356 unwind label %380

356:                                              ; preds = %354
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %358 unwind label %380

358:                                              ; preds = %356
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #4
  call void @_Z4failv()
  br label %384

359:                                              ; preds = %339
  %360 = landingpad { ptr, i32 }
          cleanup
  br label %375

361:                                              ; preds = %340
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %374

363:                                              ; preds = %341
  %364 = landingpad { ptr, i32 }
          cleanup
  br label %373

365:                                              ; preds = %342
  %366 = landingpad { ptr, i32 }
          cleanup
  br label %372

367:                                              ; preds = %343
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %371

369:                                              ; preds = %344
  %370 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  br label %371

371:                                              ; preds = %369, %367
  %.pn232 = phi { ptr, i32 } [ %370, %369 ], [ %368, %367 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #4
  br label %372

372:                                              ; preds = %371, %365
  %.pn232.pn = phi { ptr, i32 } [ %.pn232, %371 ], [ %366, %365 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  br label %373

373:                                              ; preds = %372, %363
  %.pn232.pn.pn = phi { ptr, i32 } [ %.pn232.pn, %372 ], [ %364, %363 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #4
  br label %374

374:                                              ; preds = %373, %361
  %.pn232.pn.pn.pn = phi { ptr, i32 } [ %.pn232.pn.pn, %373 ], [ %362, %361 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  br label %375

375:                                              ; preds = %374, %359
  %.pn232.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn232.pn.pn.pn, %374 ], [ %360, %359 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #4
  br label %954

376:                                              ; preds = %349, %346
  %377 = landingpad { ptr, i32 }
          cleanup
  br label %383

378:                                              ; preds = %351
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %382

380:                                              ; preds = %356, %354, %352
  %381 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #4
  br label %382

382:                                              ; preds = %380, %378
  %.pn238 = phi { ptr, i32 } [ %381, %380 ], [ %379, %378 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #4
  br label %383

383:                                              ; preds = %382, %376
  %.pn238.pn = phi { ptr, i32 } [ %.pn238, %382 ], [ %377, %376 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #4
  br label %954

384:                                              ; preds = %358, %334
  %385 = getelementptr inbounds i8, ptr %0, i64 392
  %386 = load i32, ptr %385, align 8, !tbaa !25
  %387 = getelementptr inbounds i8, ptr %1, i64 392
  %388 = load i32, ptr %387, align 8, !tbaa !25
  %.not241 = icmp eq i32 %386, %388
  br i1 %.not241, label %434, label %389

389:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #4
  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 %390 unwind label %409

390:                                              ; preds = %389
  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.446)
          to label %391 unwind label %411

391:                                              ; preds = %390
  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 %392 unwind label %413

392:                                              ; preds = %391
  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.447)
          to label %393 unwind label %415

393:                                              ; preds = %392
  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 %394 unwind label %417

394:                                              ; preds = %393
  %395 = 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 %396 unwind label %419

396:                                              ; preds = %394
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #4
  %397 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #4
  call void @_Z8valtostrIjENSt7__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) %385)
  %398 = 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) %397, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %399 unwind label %426

399:                                              ; preds = %396
  %400 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %398, ptr noundef nonnull @.str.20)
          to label %401 unwind label %426

401:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 4 dereferenceable(4) %387)
          to label %402 unwind label %428

402:                                              ; preds = %401
  %403 = 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) %400, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %404 unwind label %430

404:                                              ; preds = %402
  %405 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %403, ptr noundef nonnull @.str.21)
          to label %406 unwind label %430

406:                                              ; preds = %404
  %407 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %405, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %408 unwind label %430

408:                                              ; preds = %406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #4
  call void @_Z4failv()
  br label %434

409:                                              ; preds = %389
  %410 = landingpad { ptr, i32 }
          cleanup
  br label %425

411:                                              ; preds = %390
  %412 = landingpad { ptr, i32 }
          cleanup
  br label %424

413:                                              ; preds = %391
  %414 = landingpad { ptr, i32 }
          cleanup
  br label %423

415:                                              ; preds = %392
  %416 = landingpad { ptr, i32 }
          cleanup
  br label %422

417:                                              ; preds = %393
  %418 = landingpad { ptr, i32 }
          cleanup
  br label %421

419:                                              ; preds = %394
  %420 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  br label %421

421:                                              ; preds = %419, %417
  %.pn242 = phi { ptr, i32 } [ %420, %419 ], [ %418, %417 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #4
  br label %422

422:                                              ; preds = %421, %415
  %.pn242.pn = phi { ptr, i32 } [ %.pn242, %421 ], [ %416, %415 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #4
  br label %423

423:                                              ; preds = %422, %413
  %.pn242.pn.pn = phi { ptr, i32 } [ %.pn242.pn, %422 ], [ %414, %413 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #4
  br label %424

424:                                              ; preds = %423, %411
  %.pn242.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn, %423 ], [ %412, %411 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #4
  br label %425

425:                                              ; preds = %424, %409
  %.pn242.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn242.pn.pn.pn, %424 ], [ %410, %409 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #4
  br label %954

426:                                              ; preds = %399, %396
  %427 = landingpad { ptr, i32 }
          cleanup
  br label %433

428:                                              ; preds = %401
  %429 = landingpad { ptr, i32 }
          cleanup
  br label %432

430:                                              ; preds = %406, %404, %402
  %431 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #4
  br label %432

432:                                              ; preds = %430, %428
  %.pn248 = phi { ptr, i32 } [ %431, %430 ], [ %429, %428 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #4
  br label %433

433:                                              ; preds = %432, %426
  %.pn248.pn = phi { ptr, i32 } [ %.pn248, %432 ], [ %427, %426 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #4
  br label %954

434:                                              ; preds = %408, %384
  %435 = getelementptr inbounds i8, ptr %0, i64 396
  %436 = load i32, ptr %435, align 4, !tbaa !26
  %437 = getelementptr inbounds i8, ptr %1, i64 396
  %438 = load i32, ptr %437, align 4, !tbaa !26
  %.not251 = icmp eq i32 %436, %438
  br i1 %.not251, label %484, label %439

439:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %440 unwind label %459

440:                                              ; preds = %439
  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.448)
          to label %441 unwind label %461

441:                                              ; preds = %440
  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.3)
          to label %442 unwind label %463

442:                                              ; preds = %441
  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.449)
          to label %443 unwind label %465

443:                                              ; preds = %442
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.18)
          to label %444 unwind label %467

444:                                              ; preds = %443
  %445 = 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) %51)
          to label %446 unwind label %469

446:                                              ; preds = %444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #4
  %447 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 4 dereferenceable(4) %435)
  %448 = 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) %447, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %449 unwind label %476

449:                                              ; preds = %446
  %450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef nonnull @.str.20)
          to label %451 unwind label %476

451:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #4
  invoke void @_Z8valtostrIjENSt7__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) %437)
          to label %452 unwind label %478

452:                                              ; preds = %451
  %453 = 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) %450, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %454 unwind label %480

454:                                              ; preds = %452
  %455 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %453, ptr noundef nonnull @.str.21)
          to label %456 unwind label %480

456:                                              ; preds = %454
  %457 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %455, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %458 unwind label %480

458:                                              ; preds = %456
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #4
  call void @_Z4failv()
  br label %484

459:                                              ; preds = %439
  %460 = landingpad { ptr, i32 }
          cleanup
  br label %475

461:                                              ; preds = %440
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %474

463:                                              ; preds = %441
  %464 = landingpad { ptr, i32 }
          cleanup
  br label %473

465:                                              ; preds = %442
  %466 = landingpad { ptr, i32 }
          cleanup
  br label %472

467:                                              ; preds = %443
  %468 = landingpad { ptr, i32 }
          cleanup
  br label %471

469:                                              ; preds = %444
  %470 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #4
  br label %471

471:                                              ; preds = %469, %467
  %.pn252 = phi { ptr, i32 } [ %470, %469 ], [ %468, %467 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #4
  br label %472

472:                                              ; preds = %471, %465
  %.pn252.pn = phi { ptr, i32 } [ %.pn252, %471 ], [ %466, %465 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #4
  br label %473

473:                                              ; preds = %472, %463
  %.pn252.pn.pn = phi { ptr, i32 } [ %.pn252.pn, %472 ], [ %464, %463 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #4
  br label %474

474:                                              ; preds = %473, %461
  %.pn252.pn.pn.pn = phi { ptr, i32 } [ %.pn252.pn.pn, %473 ], [ %462, %461 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #4
  br label %475

475:                                              ; preds = %474, %459
  %.pn252.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn252.pn.pn.pn, %474 ], [ %460, %459 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #4
  br label %954

476:                                              ; preds = %449, %446
  %477 = landingpad { ptr, i32 }
          cleanup
  br label %483

478:                                              ; preds = %451
  %479 = landingpad { ptr, i32 }
          cleanup
  br label %482

480:                                              ; preds = %456, %454, %452
  %481 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #4
  br label %482

482:                                              ; preds = %480, %478
  %.pn258 = phi { ptr, i32 } [ %481, %480 ], [ %479, %478 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #4
  br label %483

483:                                              ; preds = %482, %476
  %.pn258.pn = phi { ptr, i32 } [ %.pn258, %482 ], [ %477, %476 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #4
  br label %954

484:                                              ; preds = %458, %434
  %485 = getelementptr inbounds i8, ptr %0, i64 400
  %486 = load i32, ptr %485, align 8, !tbaa !27
  %487 = getelementptr inbounds i8, ptr %1, i64 400
  %488 = load i32, ptr %487, align 8, !tbaa !27
  %.not261 = icmp eq i32 %486, %488
  br i1 %.not261, label %534, label %489

489:                                              ; preds = %484
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %490 unwind label %509

490:                                              ; preds = %489
  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.450)
          to label %491 unwind label %511

491:                                              ; preds = %490
  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.3)
          to label %492 unwind label %513

492:                                              ; preds = %491
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull @.str.451)
          to label %493 unwind label %515

493:                                              ; preds = %492
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @.str.18)
          to label %494 unwind label %517

494:                                              ; preds = %493
  %495 = 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) %59)
          to label %496 unwind label %519

496:                                              ; preds = %494
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #4
  %497 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 4 dereferenceable(4) %485)
  %498 = 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) %497, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %499 unwind label %526

499:                                              ; preds = %496
  %500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %498, ptr noundef nonnull @.str.20)
          to label %501 unwind label %526

501:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 4 dereferenceable(4) %487)
          to label %502 unwind label %528

502:                                              ; preds = %501
  %503 = 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) %500, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %504 unwind label %530

504:                                              ; preds = %502
  %505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %503, ptr noundef nonnull @.str.21)
          to label %506 unwind label %530

506:                                              ; preds = %504
  %507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %505, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %508 unwind label %530

508:                                              ; preds = %506
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #4
  call void @_Z4failv()
  br label %534

509:                                              ; preds = %489
  %510 = landingpad { ptr, i32 }
          cleanup
  br label %525

511:                                              ; preds = %490
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %524

513:                                              ; preds = %491
  %514 = landingpad { ptr, i32 }
          cleanup
  br label %523

515:                                              ; preds = %492
  %516 = landingpad { ptr, i32 }
          cleanup
  br label %522

517:                                              ; preds = %493
  %518 = landingpad { ptr, i32 }
          cleanup
  br label %521

519:                                              ; preds = %494
  %520 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #4
  br label %521

521:                                              ; preds = %519, %517
  %.pn262 = phi { ptr, i32 } [ %520, %519 ], [ %518, %517 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #4
  br label %522

522:                                              ; preds = %521, %515
  %.pn262.pn = phi { ptr, i32 } [ %.pn262, %521 ], [ %516, %515 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #4
  br label %523

523:                                              ; preds = %522, %513
  %.pn262.pn.pn = phi { ptr, i32 } [ %.pn262.pn, %522 ], [ %514, %513 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #4
  br label %524

524:                                              ; preds = %523, %511
  %.pn262.pn.pn.pn = phi { ptr, i32 } [ %.pn262.pn.pn, %523 ], [ %512, %511 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #4
  br label %525

525:                                              ; preds = %524, %509
  %.pn262.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn262.pn.pn.pn, %524 ], [ %510, %509 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #4
  br label %954

526:                                              ; preds = %499, %496
  %527 = landingpad { ptr, i32 }
          cleanup
  br label %533

528:                                              ; preds = %501
  %529 = landingpad { ptr, i32 }
          cleanup
  br label %532

530:                                              ; preds = %506, %504, %502
  %531 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #4
  br label %532

532:                                              ; preds = %530, %528
  %.pn268 = phi { ptr, i32 } [ %531, %530 ], [ %529, %528 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #4
  br label %533

533:                                              ; preds = %532, %526
  %.pn268.pn = phi { ptr, i32 } [ %.pn268, %532 ], [ %527, %526 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #4
  br label %954

534:                                              ; preds = %508, %484
  %535 = getelementptr inbounds i8, ptr %0, i64 404
  %536 = load i32, ptr %535, align 4, !tbaa !28
  %537 = getelementptr inbounds i8, ptr %1, i64 404
  %538 = load i32, ptr %537, align 4, !tbaa !28
  %.not271 = icmp eq i32 %536, %538
  br i1 %.not271, label %584, label %539

539:                                              ; preds = %534
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %540 unwind label %559

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 %70, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull @.str.452)
          to label %541 unwind label %561

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 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.3)
          to label %542 unwind label %563

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 %68, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull @.str.453)
          to label %543 unwind label %565

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 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.18)
          to label %544 unwind label %567

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) %67)
          to label %546 unwind label %569

546:                                              ; preds = %544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #4
  %547 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 4 dereferenceable(4) %535)
  %548 = 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) %73)
          to label %549 unwind label %576

549:                                              ; preds = %546
  %550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %548, ptr noundef nonnull @.str.20)
          to label %551 unwind label %576

551:                                              ; preds = %549
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 4 dereferenceable(4) %537)
          to label %552 unwind label %578

552:                                              ; preds = %551
  %553 = 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) %550, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %554 unwind label %580

554:                                              ; preds = %552
  %555 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %553, ptr noundef nonnull @.str.21)
          to label %556 unwind label %580

556:                                              ; preds = %554
  %557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %555, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %558 unwind label %580

558:                                              ; preds = %556
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #4
  call void @_Z4failv()
  br label %584

559:                                              ; preds = %539
  %560 = landingpad { ptr, i32 }
          cleanup
  br label %575

561:                                              ; preds = %540
  %562 = landingpad { ptr, i32 }
          cleanup
  br label %574

563:                                              ; preds = %541
  %564 = landingpad { ptr, i32 }
          cleanup
  br label %573

565:                                              ; preds = %542
  %566 = landingpad { ptr, i32 }
          cleanup
  br label %572

567:                                              ; preds = %543
  %568 = landingpad { ptr, i32 }
          cleanup
  br label %571

569:                                              ; preds = %544
  %570 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #4
  br label %571

571:                                              ; preds = %569, %567
  %.pn272 = phi { ptr, i32 } [ %570, %569 ], [ %568, %567 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #4
  br label %572

572:                                              ; preds = %571, %565
  %.pn272.pn = phi { ptr, i32 } [ %.pn272, %571 ], [ %566, %565 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #4
  br label %573

573:                                              ; preds = %572, %563
  %.pn272.pn.pn = phi { ptr, i32 } [ %.pn272.pn, %572 ], [ %564, %563 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #4
  br label %574

574:                                              ; preds = %573, %561
  %.pn272.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn, %573 ], [ %562, %561 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #4
  br label %575

575:                                              ; preds = %574, %559
  %.pn272.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn, %574 ], [ %560, %559 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #4
  br label %954

576:                                              ; preds = %549, %546
  %577 = landingpad { ptr, i32 }
          cleanup
  br label %583

578:                                              ; preds = %551
  %579 = landingpad { ptr, i32 }
          cleanup
  br label %582

580:                                              ; preds = %556, %554, %552
  %581 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #4
  br label %582

582:                                              ; preds = %580, %578
  %.pn278 = phi { ptr, i32 } [ %581, %580 ], [ %579, %578 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #4
  br label %583

583:                                              ; preds = %582, %576
  %.pn278.pn = phi { ptr, i32 } [ %.pn278, %582 ], [ %577, %576 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #4
  br label %954

584:                                              ; preds = %558, %534
  %585 = getelementptr inbounds i8, ptr %0, i64 408
  %586 = load i32, ptr %585, align 8, !tbaa !29
  %587 = getelementptr inbounds i8, ptr %1, i64 408
  %588 = load i32, ptr %587, align 8, !tbaa !29
  %.not281 = icmp eq i32 %586, %588
  br i1 %.not281, label %634, label %589

589:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %80) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %590 unwind label %609

590:                                              ; preds = %589
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull @.str.454)
          to label %591 unwind label %611

591:                                              ; preds = %590
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull @.str.3)
          to label %592 unwind label %613

592:                                              ; preds = %591
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull @.str.455)
          to label %593 unwind label %615

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 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.18)
          to label %594 unwind label %617

594:                                              ; preds = %593
  %595 = 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) %75)
          to label %596 unwind label %619

596:                                              ; preds = %594
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #4
  %597 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 4 dereferenceable(4) %585)
  %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) %597, ptr noundef nonnull align 8 dereferenceable(32) %81)
          to label %599 unwind label %626

599:                                              ; preds = %596
  %600 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %598, ptr noundef nonnull @.str.20)
          to label %601 unwind label %626

601:                                              ; preds = %599
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 4 dereferenceable(4) %587)
          to label %602 unwind label %628

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) %82)
          to label %604 unwind label %630

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.21)
          to label %606 unwind label %630

606:                                              ; preds = %604
  %607 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %605, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %608 unwind label %630

608:                                              ; preds = %606
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #4
  call void @_Z4failv()
  br label %634

609:                                              ; preds = %589
  %610 = landingpad { ptr, i32 }
          cleanup
  br label %625

611:                                              ; preds = %590
  %612 = landingpad { ptr, i32 }
          cleanup
  br label %624

613:                                              ; preds = %591
  %614 = landingpad { ptr, i32 }
          cleanup
  br label %623

615:                                              ; preds = %592
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %622

617:                                              ; preds = %593
  %618 = landingpad { ptr, i32 }
          cleanup
  br label %621

619:                                              ; preds = %594
  %620 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #4
  br label %621

621:                                              ; preds = %619, %617
  %.pn282 = phi { ptr, i32 } [ %620, %619 ], [ %618, %617 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #4
  br label %622

622:                                              ; preds = %621, %615
  %.pn282.pn = phi { ptr, i32 } [ %.pn282, %621 ], [ %616, %615 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #4
  br label %623

623:                                              ; preds = %622, %613
  %.pn282.pn.pn = phi { ptr, i32 } [ %.pn282.pn, %622 ], [ %614, %613 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #4
  br label %624

624:                                              ; preds = %623, %611
  %.pn282.pn.pn.pn = phi { ptr, i32 } [ %.pn282.pn.pn, %623 ], [ %612, %611 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #4
  br label %625

625:                                              ; preds = %624, %609
  %.pn282.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn282.pn.pn.pn, %624 ], [ %610, %609 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %80) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #4
  br label %954

626:                                              ; preds = %599, %596
  %627 = landingpad { ptr, i32 }
          cleanup
  br label %633

628:                                              ; preds = %601
  %629 = landingpad { ptr, i32 }
          cleanup
  br label %632

630:                                              ; preds = %606, %604, %602
  %631 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #4
  br label %632

632:                                              ; preds = %630, %628
  %.pn288 = phi { ptr, i32 } [ %631, %630 ], [ %629, %628 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #4
  br label %633

633:                                              ; preds = %632, %626
  %.pn288.pn = phi { ptr, i32 } [ %.pn288, %632 ], [ %627, %626 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #4
  br label %954

634:                                              ; preds = %608, %584
  %635 = getelementptr inbounds i8, ptr %0, i64 412
  %636 = load i32, ptr %635, align 4, !tbaa !30
  %637 = getelementptr inbounds i8, ptr %1, i64 412
  %638 = load i32, ptr %637, align 4, !tbaa !30
  %.not291 = icmp eq i32 %636, %638
  br i1 %.not291, label %684, label %639

639:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %88) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %88)
          to label %640 unwind label %659

640:                                              ; preds = %639
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.456)
          to label %641 unwind label %661

641:                                              ; preds = %640
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull @.str.3)
          to label %642 unwind label %663

642:                                              ; preds = %641
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.457)
          to label %643 unwind label %665

643:                                              ; preds = %642
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull @.str.18)
          to label %644 unwind label %667

644:                                              ; preds = %643
  %645 = 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) %83)
          to label %646 unwind label %669

646:                                              ; preds = %644
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #4
  %647 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 4 dereferenceable(4) %635)
  %648 = 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) %647, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %649 unwind label %676

649:                                              ; preds = %646
  %650 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %648, ptr noundef nonnull @.str.20)
          to label %651 unwind label %676

651:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 4 dereferenceable(4) %637)
          to label %652 unwind label %678

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) %650, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %654 unwind label %680

654:                                              ; preds = %652
  %655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %653, ptr noundef nonnull @.str.21)
          to label %656 unwind label %680

656:                                              ; preds = %654
  %657 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %655, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %658 unwind label %680

658:                                              ; preds = %656
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #4
  call void @_Z4failv()
  br label %684

659:                                              ; preds = %639
  %660 = landingpad { ptr, i32 }
          cleanup
  br label %675

661:                                              ; preds = %640
  %662 = landingpad { ptr, i32 }
          cleanup
  br label %674

663:                                              ; preds = %641
  %664 = landingpad { ptr, i32 }
          cleanup
  br label %673

665:                                              ; preds = %642
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %672

667:                                              ; preds = %643
  %668 = landingpad { ptr, i32 }
          cleanup
  br label %671

669:                                              ; preds = %644
  %670 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #4
  br label %671

671:                                              ; preds = %669, %667
  %.pn292 = phi { ptr, i32 } [ %670, %669 ], [ %668, %667 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #4
  br label %672

672:                                              ; preds = %671, %665
  %.pn292.pn = phi { ptr, i32 } [ %.pn292, %671 ], [ %666, %665 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #4
  br label %673

673:                                              ; preds = %672, %663
  %.pn292.pn.pn = phi { ptr, i32 } [ %.pn292.pn, %672 ], [ %664, %663 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #4
  br label %674

674:                                              ; preds = %673, %661
  %.pn292.pn.pn.pn = phi { ptr, i32 } [ %.pn292.pn.pn, %673 ], [ %662, %661 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #4
  br label %675

675:                                              ; preds = %674, %659
  %.pn292.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn292.pn.pn.pn, %674 ], [ %660, %659 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %88) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %88) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #4
  br label %954

676:                                              ; preds = %649, %646
  %677 = landingpad { ptr, i32 }
          cleanup
  br label %683

678:                                              ; preds = %651
  %679 = landingpad { ptr, i32 }
          cleanup
  br label %682

680:                                              ; preds = %656, %654, %652
  %681 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #4
  br label %682

682:                                              ; preds = %680, %678
  %.pn298 = phi { ptr, i32 } [ %681, %680 ], [ %679, %678 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #4
  br label %683

683:                                              ; preds = %682, %676
  %.pn298.pn = phi { ptr, i32 } [ %.pn298, %682 ], [ %677, %676 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #4
  br label %954

684:                                              ; preds = %634, %658, %282
  %685 = getelementptr inbounds i8, ptr %0, i64 416
  %686 = load i32, ptr %685, align 8, !tbaa !31
  %687 = getelementptr inbounds i8, ptr %1, i64 416
  %688 = load i32, ptr %687, align 8, !tbaa !31
  %.not301 = icmp eq i32 %686, %688
  br i1 %.not301, label %734, label %689

689:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %690 unwind label %709

690:                                              ; preds = %689
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.458)
          to label %691 unwind label %711

691:                                              ; preds = %690
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(32) %94, ptr noundef nonnull @.str.3)
          to label %692 unwind label %713

692:                                              ; preds = %691
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull @.str.459)
          to label %693 unwind label %715

693:                                              ; preds = %692
  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.18)
          to label %694 unwind label %717

694:                                              ; preds = %693
  %695 = 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) %91)
          to label %696 unwind label %719

696:                                              ; preds = %694
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #4
  %697 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 4 dereferenceable(4) %685)
  %698 = 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) %697, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %699 unwind label %726

699:                                              ; preds = %696
  %700 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %698, ptr noundef nonnull @.str.20)
          to label %701 unwind label %726

701:                                              ; preds = %699
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef nonnull align 4 dereferenceable(4) %687)
          to label %702 unwind label %728

702:                                              ; preds = %701
  %703 = 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) %700, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %704 unwind label %730

704:                                              ; preds = %702
  %705 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %703, ptr noundef nonnull @.str.21)
          to label %706 unwind label %730

706:                                              ; preds = %704
  %707 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %705, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %708 unwind label %730

708:                                              ; preds = %706
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #4
  call void @_Z4failv()
  %.pr356 = load i32, ptr %685, align 8, !tbaa !31
  br label %734

709:                                              ; preds = %689
  %710 = landingpad { ptr, i32 }
          cleanup
  br label %725

711:                                              ; preds = %690
  %712 = landingpad { ptr, i32 }
          cleanup
  br label %724

713:                                              ; preds = %691
  %714 = landingpad { ptr, i32 }
          cleanup
  br label %723

715:                                              ; preds = %692
  %716 = landingpad { ptr, i32 }
          cleanup
  br label %722

717:                                              ; preds = %693
  %718 = landingpad { ptr, i32 }
          cleanup
  br label %721

719:                                              ; preds = %694
  %720 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #4
  br label %721

721:                                              ; preds = %719, %717
  %.pn302 = phi { ptr, i32 } [ %720, %719 ], [ %718, %717 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #4
  br label %722

722:                                              ; preds = %721, %715
  %.pn302.pn = phi { ptr, i32 } [ %.pn302, %721 ], [ %716, %715 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #4
  br label %723

723:                                              ; preds = %722, %713
  %.pn302.pn.pn = phi { ptr, i32 } [ %.pn302.pn, %722 ], [ %714, %713 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #4
  br label %724

724:                                              ; preds = %723, %711
  %.pn302.pn.pn.pn = phi { ptr, i32 } [ %.pn302.pn.pn, %723 ], [ %712, %711 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #4
  br label %725

725:                                              ; preds = %724, %709
  %.pn302.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn302.pn.pn.pn, %724 ], [ %710, %709 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #4
  br label %954

726:                                              ; preds = %699, %696
  %727 = landingpad { ptr, i32 }
          cleanup
  br label %733

728:                                              ; preds = %701
  %729 = landingpad { ptr, i32 }
          cleanup
  br label %732

730:                                              ; preds = %706, %704, %702
  %731 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #4
  br label %732

732:                                              ; preds = %730, %728
  %.pn308 = phi { ptr, i32 } [ %731, %730 ], [ %729, %728 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #4
  br label %733

733:                                              ; preds = %732, %726
  %.pn308.pn = phi { ptr, i32 } [ %.pn308, %732 ], [ %727, %726 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #4
  br label %954

734:                                              ; preds = %708, %684
  %735 = phi i32 [ %.pr356, %708 ], [ %686, %684 ]
  %.not311 = icmp eq i32 %735, 0
  br i1 %.not311, label %786, label %736

736:                                              ; preds = %734
  %737 = getelementptr inbounds i8, ptr %0, i64 420
  %738 = load i32, ptr %737, align 4, !tbaa !32
  %739 = getelementptr inbounds i8, ptr %1, i64 420
  %740 = load i32, ptr %739, align 4, !tbaa !32
  %.not312 = icmp eq i32 %738, %740
  br i1 %.not312, label %786, label %741

741:                                              ; preds = %736
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %99) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %101) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %103) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %104) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %104)
          to label %742 unwind label %761

742:                                              ; preds = %741
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull @.str.460)
          to label %743 unwind label %763

743:                                              ; preds = %742
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull @.str.3)
          to label %744 unwind label %765

744:                                              ; preds = %743
  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.461)
          to label %745 unwind label %767

745:                                              ; preds = %744
  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.18)
          to label %746 unwind label %769

746:                                              ; preds = %745
  %747 = 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) %99)
          to label %748 unwind label %771

748:                                              ; preds = %746
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #4
  %749 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #4
  call 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) %737)
  %750 = 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) %749, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %751 unwind label %778

751:                                              ; preds = %748
  %752 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %750, ptr noundef nonnull @.str.20)
          to label %753 unwind label %778

753:                                              ; preds = %751
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 4 dereferenceable(4) %739)
          to label %754 unwind label %780

754:                                              ; preds = %753
  %755 = 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) %752, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %756 unwind label %782

756:                                              ; preds = %754
  %757 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %755, ptr noundef nonnull @.str.21)
          to label %758 unwind label %782

758:                                              ; preds = %756
  %759 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %757, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %760 unwind label %782

760:                                              ; preds = %758
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #4
  call void @_Z4failv()
  br label %786

761:                                              ; preds = %741
  %762 = landingpad { ptr, i32 }
          cleanup
  br label %777

763:                                              ; preds = %742
  %764 = landingpad { ptr, i32 }
          cleanup
  br label %776

765:                                              ; preds = %743
  %766 = landingpad { ptr, i32 }
          cleanup
  br label %775

767:                                              ; preds = %744
  %768 = landingpad { ptr, i32 }
          cleanup
  br label %774

769:                                              ; preds = %745
  %770 = landingpad { ptr, i32 }
          cleanup
  br label %773

771:                                              ; preds = %746
  %772 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #4
  br label %773

773:                                              ; preds = %771, %769
  %.pn313 = phi { ptr, i32 } [ %772, %771 ], [ %770, %769 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #4
  br label %774

774:                                              ; preds = %773, %767
  %.pn313.pn = phi { ptr, i32 } [ %.pn313, %773 ], [ %768, %767 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #4
  br label %775

775:                                              ; preds = %774, %765
  %.pn313.pn.pn = phi { ptr, i32 } [ %.pn313.pn, %774 ], [ %766, %765 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #4
  br label %776

776:                                              ; preds = %775, %763
  %.pn313.pn.pn.pn = phi { ptr, i32 } [ %.pn313.pn.pn, %775 ], [ %764, %763 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #4
  br label %777

777:                                              ; preds = %776, %761
  %.pn313.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn313.pn.pn.pn, %776 ], [ %762, %761 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %104) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %103) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %101) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %99) #4
  br label %954

778:                                              ; preds = %751, %748
  %779 = landingpad { ptr, i32 }
          cleanup
  br label %785

780:                                              ; preds = %753
  %781 = landingpad { ptr, i32 }
          cleanup
  br label %784

782:                                              ; preds = %758, %756, %754
  %783 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #4
  br label %784

784:                                              ; preds = %782, %780
  %.pn319 = phi { ptr, i32 } [ %783, %782 ], [ %781, %780 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #4
  br label %785

785:                                              ; preds = %784, %778
  %.pn319.pn = phi { ptr, i32 } [ %.pn319, %784 ], [ %779, %778 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #4
  br label %954

786:                                              ; preds = %736, %760, %734
  %787 = getelementptr inbounds i8, ptr %0, i64 424
  %788 = load i32, ptr %787, align 8, !tbaa !33
  %789 = getelementptr inbounds i8, ptr %1, i64 424
  %790 = load i32, ptr %789, align 8, !tbaa !33
  %.not322 = icmp eq i32 %788, %790
  br i1 %.not322, label %836, label %791

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

792:                                              ; preds = %791
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %110, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull @.str.462)
          to label %793 unwind label %813

793:                                              ; preds = %792
  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.3)
          to label %794 unwind label %815

794:                                              ; preds = %793
  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.463)
          to label %795 unwind label %817

795:                                              ; preds = %794
  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.18)
          to label %796 unwind label %819

796:                                              ; preds = %795
  %797 = 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 %798 unwind label %821

798:                                              ; preds = %796
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #4
  %799 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %113) #4
  call void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %113, ptr noundef nonnull align 4 dereferenceable(4) %787)
  %800 = 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) %799, ptr noundef nonnull align 8 dereferenceable(32) %113)
          to label %801 unwind label %828

801:                                              ; preds = %798
  %802 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %800, ptr noundef nonnull @.str.20)
          to label %803 unwind label %828

803:                                              ; preds = %801
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #4
  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) %789)
          to label %804 unwind label %830

804:                                              ; preds = %803
  %805 = 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) %802, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %806 unwind label %832

806:                                              ; preds = %804
  %807 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %805, ptr noundef nonnull @.str.21)
          to label %808 unwind label %832

808:                                              ; preds = %806
  %809 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %807, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %810 unwind label %832

810:                                              ; preds = %808
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #4
  call void @_Z4failv()
  %.pr357 = load i32, ptr %787, align 8, !tbaa !33
  br label %836

811:                                              ; preds = %791
  %812 = landingpad { ptr, i32 }
          cleanup
  br label %827

813:                                              ; preds = %792
  %814 = landingpad { ptr, i32 }
          cleanup
  br label %826

815:                                              ; preds = %793
  %816 = landingpad { ptr, i32 }
          cleanup
  br label %825

817:                                              ; preds = %794
  %818 = landingpad { ptr, i32 }
          cleanup
  br label %824

819:                                              ; preds = %795
  %820 = landingpad { ptr, i32 }
          cleanup
  br label %823

821:                                              ; preds = %796
  %822 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #4
  br label %823

823:                                              ; preds = %821, %819
  %.pn323 = phi { ptr, i32 } [ %822, %821 ], [ %820, %819 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #4
  br label %824

824:                                              ; preds = %823, %817
  %.pn323.pn = phi { ptr, i32 } [ %.pn323, %823 ], [ %818, %817 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #4
  br label %825

825:                                              ; preds = %824, %815
  %.pn323.pn.pn = phi { ptr, i32 } [ %.pn323.pn, %824 ], [ %816, %815 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #4
  br label %826

826:                                              ; preds = %825, %813
  %.pn323.pn.pn.pn = phi { ptr, i32 } [ %.pn323.pn.pn, %825 ], [ %814, %813 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #4
  br label %827

827:                                              ; preds = %826, %811
  %.pn323.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn323.pn.pn.pn, %826 ], [ %812, %811 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %112) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %111) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #4
  br label %954

828:                                              ; preds = %801, %798
  %829 = landingpad { ptr, i32 }
          cleanup
  br label %835

830:                                              ; preds = %803
  %831 = landingpad { ptr, i32 }
          cleanup
  br label %834

832:                                              ; preds = %808, %806, %804
  %833 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #4
  br label %834

834:                                              ; preds = %832, %830
  %.pn329 = phi { ptr, i32 } [ %833, %832 ], [ %831, %830 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #4
  br label %835

835:                                              ; preds = %834, %828
  %.pn329.pn = phi { ptr, i32 } [ %.pn329, %834 ], [ %829, %828 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %113) #4
  br label %954

836:                                              ; preds = %810, %786
  %837 = phi i32 [ %.pr357, %810 ], [ %788, %786 ]
  %.not332 = icmp eq i32 %837, 0
  br i1 %.not332, label %.loopexit, label %838

838:                                              ; preds = %836
  %839 = getelementptr inbounds i8, ptr %0, i64 448
  %840 = load i32, ptr %839, align 8, !tbaa !34
  %841 = getelementptr inbounds i8, ptr %1, i64 448
  %842 = load i32, ptr %841, align 8, !tbaa !34
  %.not333 = icmp eq i32 %840, %842
  br i1 %.not333, label %888, label %843

843:                                              ; preds = %838
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %115) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %117) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #4
  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 %844 unwind label %863

844:                                              ; preds = %843
  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.464)
          to label %845 unwind label %865

845:                                              ; preds = %844
  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 %846 unwind label %867

846:                                              ; preds = %845
  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.465)
          to label %847 unwind label %869

847:                                              ; preds = %846
  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 %848 unwind label %871

848:                                              ; preds = %847
  %849 = 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 %850 unwind label %873

850:                                              ; preds = %848
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #4
  %851 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %121) #4
  call void @_Z8valtostrIjENSt7__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) %839)
  %852 = 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) %851, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %853 unwind label %880

853:                                              ; preds = %850
  %854 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %852, ptr noundef nonnull @.str.20)
          to label %855 unwind label %880

855:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %122) #4
  invoke void @_Z8valtostrIjENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %122, ptr noundef nonnull align 4 dereferenceable(4) %841)
          to label %856 unwind label %882

856:                                              ; preds = %855
  %857 = 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) %854, ptr noundef nonnull align 8 dereferenceable(32) %122)
          to label %858 unwind label %884

858:                                              ; preds = %856
  %859 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %857, ptr noundef nonnull @.str.21)
          to label %860 unwind label %884

860:                                              ; preds = %858
  %861 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %859, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %862 unwind label %884

862:                                              ; preds = %860
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #4
  call void @_Z4failv()
  %.pre = load i32, ptr %839, align 8, !tbaa !34
  br label %888

863:                                              ; preds = %843
  %864 = landingpad { ptr, i32 }
          cleanup
  br label %879

865:                                              ; preds = %844
  %866 = landingpad { ptr, i32 }
          cleanup
  br label %878

867:                                              ; preds = %845
  %868 = landingpad { ptr, i32 }
          cleanup
  br label %877

869:                                              ; preds = %846
  %870 = landingpad { ptr, i32 }
          cleanup
  br label %876

871:                                              ; preds = %847
  %872 = landingpad { ptr, i32 }
          cleanup
  br label %875

873:                                              ; preds = %848
  %874 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #4
  br label %875

875:                                              ; preds = %873, %871
  %.pn334 = phi { ptr, i32 } [ %874, %873 ], [ %872, %871 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #4
  br label %876

876:                                              ; preds = %875, %869
  %.pn334.pn = phi { ptr, i32 } [ %.pn334, %875 ], [ %870, %869 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #4
  br label %877

877:                                              ; preds = %876, %867
  %.pn334.pn.pn = phi { ptr, i32 } [ %.pn334.pn, %876 ], [ %868, %867 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #4
  br label %878

878:                                              ; preds = %877, %865
  %.pn334.pn.pn.pn = phi { ptr, i32 } [ %.pn334.pn.pn, %877 ], [ %866, %865 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #4
  br label %879

879:                                              ; preds = %878, %863
  %.pn334.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn334.pn.pn.pn, %878 ], [ %864, %863 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %117) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %115) #4
  br label %954

880:                                              ; preds = %853, %850
  %881 = landingpad { ptr, i32 }
          cleanup
  br label %887

882:                                              ; preds = %855
  %883 = landingpad { ptr, i32 }
          cleanup
  br label %886

884:                                              ; preds = %860, %858, %856
  %885 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #4
  br label %886

886:                                              ; preds = %884, %882
  %.pn340 = phi { ptr, i32 } [ %885, %884 ], [ %883, %882 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %122) #4
  br label %887

887:                                              ; preds = %886, %880
  %.pn340.pn = phi { ptr, i32 } [ %.pn340, %886 ], [ %881, %880 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #4
  br label %954

888:                                              ; preds = %862, %838
  %889 = phi i32 [ %.pre, %862 ], [ %840, %838 ]
  %.not359 = icmp eq i32 %889, 0
  br i1 %.not359, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %888
  %890 = getelementptr inbounds i8, ptr %0, i64 440
  %891 = getelementptr inbounds i8, ptr %1, i64 440
  br label %892

892:                                              ; preds = %.lr.ph, %949
  %893 = phi i32 [ %889, %.lr.ph ], [ %950, %949 ]
  %.0358 = phi i64 [ 0, %.lr.ph ], [ %951, %949 ]
  %894 = load ptr, ptr %890, align 8, !tbaa !35
  %895 = getelementptr inbounds i8, ptr %894, i64 %.0358
  %896 = load i8, ptr %895, align 1, !tbaa !36
  %897 = load ptr, ptr %891, align 8, !tbaa !35
  %898 = getelementptr inbounds i8, ptr %897, i64 %.0358
  %899 = load i8, ptr %898, align 1, !tbaa !36
  %.not343 = icmp eq i8 %896, %899
  br i1 %.not343, label %949, label %900

900:                                              ; preds = %892
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %123) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %124) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %125) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %128) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %128)
          to label %901 unwind label %924

901:                                              ; preds = %900
  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.466)
          to label %902 unwind label %926

902:                                              ; preds = %901
  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.3)
          to label %903 unwind label %928

903:                                              ; preds = %902
  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.467)
          to label %904 unwind label %930

904:                                              ; preds = %903
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %123, ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef nonnull @.str.18)
          to label %905 unwind label %932

905:                                              ; preds = %904
  %906 = 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) %123)
          to label %907 unwind label %934

907:                                              ; preds = %905
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %128) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #4
  %908 = 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.19)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %129) #4
  %909 = load ptr, ptr %890, align 8, !tbaa !35
  %910 = getelementptr inbounds i8, ptr %909, i64 %.0358
  call void @_Z8valtostrIhENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 1 dereferenceable(1) %910)
  %911 = 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) %908, ptr noundef nonnull align 8 dereferenceable(32) %129)
          to label %912 unwind label %941

912:                                              ; preds = %907
  %913 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %911, ptr noundef nonnull @.str.20)
          to label %914 unwind label %941

914:                                              ; preds = %912
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %130) #4
  %915 = load ptr, ptr %891, align 8, !tbaa !35
  %916 = getelementptr inbounds i8, ptr %915, i64 %.0358
  invoke void @_Z8valtostrIhENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %130, ptr noundef nonnull align 1 dereferenceable(1) %916)
          to label %917 unwind label %943

917:                                              ; preds = %914
  %918 = 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) %913, ptr noundef nonnull align 8 dereferenceable(32) %130)
          to label %919 unwind label %945

919:                                              ; preds = %917
  %920 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %918, ptr noundef nonnull @.str.21)
          to label %921 unwind label %945

921:                                              ; preds = %919
  %922 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %920, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %923 unwind label %945

923:                                              ; preds = %921
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #4
  call void @_Z4failv()
  %.pre360 = load i32, ptr %839, align 8, !tbaa !34
  br label %949

924:                                              ; preds = %900
  %925 = landingpad { ptr, i32 }
          cleanup
  br label %940

926:                                              ; preds = %901
  %927 = landingpad { ptr, i32 }
          cleanup
  br label %939

928:                                              ; preds = %902
  %929 = landingpad { ptr, i32 }
          cleanup
  br label %938

930:                                              ; preds = %903
  %931 = landingpad { ptr, i32 }
          cleanup
  br label %937

932:                                              ; preds = %904
  %933 = landingpad { ptr, i32 }
          cleanup
  br label %936

934:                                              ; preds = %905
  %935 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #4
  br label %936

936:                                              ; preds = %934, %932
  %.pn344 = phi { ptr, i32 } [ %935, %934 ], [ %933, %932 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #4
  br label %937

937:                                              ; preds = %936, %930
  %.pn344.pn = phi { ptr, i32 } [ %.pn344, %936 ], [ %931, %930 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #4
  br label %938

938:                                              ; preds = %937, %928
  %.pn344.pn.pn = phi { ptr, i32 } [ %.pn344.pn, %937 ], [ %929, %928 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #4
  br label %939

939:                                              ; preds = %938, %926
  %.pn344.pn.pn.pn = phi { ptr, i32 } [ %.pn344.pn.pn, %938 ], [ %927, %926 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #4
  br label %940

940:                                              ; preds = %939, %924
  %.pn344.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn344.pn.pn.pn, %939 ], [ %925, %924 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %128) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %128) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %123) #4
  br label %954

941:                                              ; preds = %912, %907
  %942 = landingpad { ptr, i32 }
          cleanup
  br label %948

943:                                              ; preds = %914
  %944 = landingpad { ptr, i32 }
          cleanup
  br label %947

945:                                              ; preds = %921, %919, %917
  %946 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #4
  br label %947

947:                                              ; preds = %945, %943
  %.pn350 = phi { ptr, i32 } [ %946, %945 ], [ %944, %943 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #4
  br label %948

948:                                              ; preds = %947, %941
  %.pn350.pn = phi { ptr, i32 } [ %.pn350, %947 ], [ %942, %941 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #4
  br label %954

949:                                              ; preds = %892, %923
  %950 = phi i32 [ %893, %892 ], [ %.pre360, %923 ]
  %951 = add nuw nsw i64 %.0358, 1
  %952 = zext i32 %950 to i64
  %953 = icmp ult i64 %951, %952
  br i1 %953, label %892, label %.loopexit, !llvm.loop !37

.loopexit:                                        ; preds = %949, %888, %836
  ret void

954:                                              ; preds = %940, %948, %887, %879, %835, %827, %785, %777, %733, %725, %683, %675, %633, %625, %583, %575, %533, %525, %483, %475, %433, %425, %383, %375, %333, %325, %281, %273, %231, %223, %179, %171
  %.pn350.pn.pn.pn = phi { ptr, i32 } [ %.pn340.pn, %887 ], [ %.pn334.pn.pn.pn.pn, %879 ], [ %.pn329.pn, %835 ], [ %.pn323.pn.pn.pn.pn, %827 ], [ %.pn319.pn, %785 ], [ %.pn313.pn.pn.pn.pn, %777 ], [ %.pn308.pn, %733 ], [ %.pn302.pn.pn.pn.pn, %725 ], [ %.pn298.pn, %683 ], [ %.pn292.pn.pn.pn.pn, %675 ], [ %.pn288.pn, %633 ], [ %.pn282.pn.pn.pn.pn, %625 ], [ %.pn278.pn, %583 ], [ %.pn272.pn.pn.pn.pn, %575 ], [ %.pn268.pn, %533 ], [ %.pn262.pn.pn.pn.pn, %525 ], [ %.pn258.pn, %483 ], [ %.pn252.pn.pn.pn.pn, %475 ], [ %.pn248.pn, %433 ], [ %.pn242.pn.pn.pn.pn, %425 ], [ %.pn238.pn, %383 ], [ %.pn232.pn.pn.pn.pn, %375 ], [ %.pn228.pn, %333 ], [ %.pn222.pn.pn.pn.pn, %325 ], [ %.pn217.pn, %281 ], [ %.pn211.pn.pn.pn.pn, %273 ], [ %.pn207.pn, %231 ], [ %.pn201.pn.pn.pn.pn, %223 ], [ %.pn196.pn, %179 ], [ %.pn.pn.pn.pn.pn, %171 ], [ %.pn350.pn, %948 ], [ %.pn344.pn.pn.pn.pn, %940 ]
  resume { ptr, i32 } %.pn350.pn.pn.pn
}

; 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 = { 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, !9, i64 372}
!6 = !{!"_ZTS12LodePNGState", !7, i64 8, !13, i64 64, !16, i64 152, !19, i64 192, !9, i64 504}
!7 = !{!"_ZTS22LodePNGDecoderSettings", !8, i64 0, !9, i64 32, !9, i64 36, !9, i64 40, !9, i64 44, !9, i64 48, !9, i64 52}
!8 = !{!"_ZTS25LodePNGDecompressSettings", !9, i64 0, !9, i64 4, !12, i64 8, !12, i64 16, !12, i64 24}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"any pointer", !10, i64 0}
!13 = !{!"_ZTS22LodePNGEncoderSettings", !14, i64 0, !9, i64 48, !9, i64 52, !15, i64 56, !12, i64 64, !9, i64 72, !9, i64 76, !9, i64 80}
!14 = !{!"_ZTS23LodePNGCompressSettings", !9, i64 0, !9, i64 4, !9, i64 8, !9, i64 12, !9, i64 16, !9, i64 20, !12, i64 24, !12, i64 32, !12, i64 40}
!15 = !{!"_ZTS21LodePNGFilterStrategy", !10, i64 0}
!16 = !{!"_ZTS16LodePNGColorMode", !17, i64 0, !9, i64 4, !12, i64 8, !18, i64 16, !9, i64 24, !9, i64 28, !9, i64 32, !9, i64 36}
!17 = !{!"_ZTS16LodePNGColorType", !10, i64 0}
!18 = !{!"long", !10, i64 0}
!19 = !{!"_ZTS11LodePNGInfo", !9, i64 0, !9, i64 4, !9, i64 8, !16, i64 16, !9, i64 56, !9, i64 60, !9, i64 64, !9, i64 68, !18, i64 72, !12, i64 80, !12, i64 88, !18, i64 96, !12, i64 104, !12, i64 112, !12, i64 120, !12, i64 128, !9, i64 136, !20, i64 140, !9, i64 164, !9, i64 168, !9, i64 172, !9, i64 176, !9, i64 180, !9, i64 184, !9, i64 188, !9, i64 192, !9, i64 196, !9, i64 200, !9, i64 204, !9, i64 208, !9, i64 212, !9, i64 216, !9, i64 220, !9, i64 224, !9, i64 228, !9, i64 232, !12, i64 240, !12, i64 248, !9, i64 256, !10, i64 264, !10, i64 288}
!20 = !{!"_ZTS11LodePNGTime", !9, i64 0, !9, i64 4, !9, i64 8, !9, i64 12, !9, i64 16, !9, i64 20}
!21 = !{!6, !9, i64 376}
!22 = !{!6, !9, i64 380}
!23 = !{!6, !9, i64 384}
!24 = !{!6, !9, i64 388}
!25 = !{!6, !9, i64 392}
!26 = !{!6, !9, i64 396}
!27 = !{!6, !9, i64 400}
!28 = !{!6, !9, i64 404}
!29 = !{!6, !9, i64 408}
!30 = !{!6, !9, i64 412}
!31 = !{!6, !9, i64 416}
!32 = !{!6, !9, i64 420}
!33 = !{!6, !9, i64 424}
!34 = !{!6, !9, i64 448}
!35 = !{!6, !12, i64 440}
!36 = !{!10, !10, i64 0}
!37 = distinct !{!37, !38}
!38 = !{!"llvm.loop.mustprogress"}


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