; LLVM IR from ImperialCollegeLondon/pnflow :: src/pnm/pnflow/polygon/layerApex.ll (ZN9LayerApex14finitLayerApexEdddddbb)

; 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 }
%class.Apex = type { ptr, i8, double, double, ptr, i32, double, double, double, double, i8, i8, i8, i8, %"struct.std::pair" }
%"struct.std::pair" = type { i32, double }
%class.LayerApex = type { %class.Apex, i32, ptr, double, ptr, double }

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@__FUNCTION__._ZN9LayerApex14finitLayerApexEdddddbb = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [4 x i8], align 1

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

; Function Attrs: nounwind
declare double @sin(double noundef) #1

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

; Function Attrs: nounwind
declare double @cos(double noundef) #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) #2

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

; Function Attrs: 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 @_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 #4 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), double noundef, double noundef, i1 noundef zeroext) #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408)) #3 align 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 @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144)) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN9LayerApex14finitLayerApexEdddddbb(ptr noundef nonnull align 8 dereferenceable(144) %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, i1 noundef zeroext %6, i1 noundef zeroext %7) #4 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca i1, align 1
  %10 = alloca ptr, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca double, align 8
  %15 = alloca double, align 8
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca i1, align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca i1, align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca i1, align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca i1, align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca i1, align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca i1, align 1
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca i1, align 1
  %33 = alloca i1, align 1
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca i1, align 1
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca i1, align 1
  %44 = alloca i1, align 1
  %45 = alloca i1, align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca i1, align 1
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca i1, align 1
  %50 = alloca i1, align 1
  %51 = alloca i1, align 1
  %52 = alloca i1, align 1
  %53 = alloca i1, align 1
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca i1, align 1
  %56 = alloca i32, align 4
  %57 = alloca i1, align 1
  %58 = alloca i1, align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca i1, align 1
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca i1, align 1
  %64 = alloca i1, align 1
  %65 = alloca i1, align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca i1, align 1
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca i1, align 1
  %70 = alloca i1, align 1
  %71 = alloca i1, align 1
  %72 = alloca i1, align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca i1, align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca i1, align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca i1, align 1
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca i1, align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca i1, align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca i1, align 1
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca i1, align 1
  %88 = alloca i1, align 1
  %89 = alloca i1, align 1
  %90 = alloca i1, align 1
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca i1, align 1
  %93 = alloca %"class.std::allocator", align 1
  %94 = alloca i1, align 1
  %95 = alloca i1, align 1
  %96 = alloca i1, align 1
  %97 = alloca i1, align 1
  %98 = alloca i1, align 1
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca i1, align 1
  %101 = alloca %"class.std::allocator", align 1
  %102 = alloca i1, align 1
  %103 = alloca i1, align 1
  %104 = alloca i1, align 1
  %105 = alloca i1, align 1
  %106 = alloca i1, align 1
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca i1, align 1
  %109 = alloca i32, align 4
  %110 = alloca i1, align 1
  %111 = alloca i1, align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca i1, align 1
  %115 = alloca %"class.std::allocator", align 1
  %116 = alloca i1, align 1
  %117 = alloca i1, align 1
  %118 = alloca i1, align 1
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca i1, align 1
  %121 = alloca %"class.std::allocator", align 1
  %122 = alloca i1, align 1
  %123 = alloca i1, align 1
  %124 = alloca i1, align 1
  %125 = alloca i1, align 1
  %126 = alloca double, align 8
  %127 = alloca i32, align 4
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca i1, align 1
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca i1, align 1
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca i1, align 1
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca i1, align 1
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca i1, align 1
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca i1, align 1
  %141 = alloca %"class.std::allocator", align 1
  %142 = alloca i1, align 1
  %143 = alloca i1, align 1
  %144 = alloca i1, align 1
  %145 = alloca i1, align 1
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca i1, align 1
  %148 = alloca %"class.std::allocator", align 1
  %149 = alloca i1, align 1
  %150 = alloca i1, align 1
  %151 = alloca i1, align 1
  %152 = alloca i1, align 1
  %153 = alloca i1, align 1
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca i1, align 1
  %156 = alloca %"class.std::allocator", align 1
  %157 = alloca i1, align 1
  %158 = alloca i1, align 1
  %159 = alloca i1, align 1
  %160 = alloca i1, align 1
  %161 = alloca i1, align 1
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca i1, align 1
  %164 = alloca i32, align 4
  %165 = alloca i1, align 1
  %166 = alloca i1, align 1
  %167 = alloca %"class.std::__cxx11::basic_string", align 8
  %168 = alloca %"class.std::__cxx11::basic_string", align 8
  %169 = alloca i1, align 1
  %170 = alloca %"class.std::allocator", align 1
  %171 = alloca i1, align 1
  %172 = alloca i1, align 1
  %173 = alloca i1, align 1
  %174 = alloca %"class.std::__cxx11::basic_string", align 8
  %175 = alloca i1, align 1
  %176 = alloca %"class.std::allocator", align 1
  %177 = alloca i1, align 1
  %178 = alloca i1, align 1
  %179 = alloca i1, align 1
  %180 = alloca i1, align 1
  %181 = alloca i32, align 4
  store ptr %0, ptr %10, align 8, !tbaa !5
  store double %1, ptr %11, align 8, !tbaa !9
  store double %2, ptr %12, align 8, !tbaa !9
  store double %3, ptr %13, align 8, !tbaa !9
  store double %4, ptr %14, align 8, !tbaa !9
  store double %5, ptr %15, align 8, !tbaa !9
  %182 = zext i1 %6 to i8
  store i8 %182, ptr %16, align 1, !tbaa !11
  %183 = zext i1 %7 to i8
  store i8 %183, ptr %17, align 1, !tbaa !11
  %184 = load ptr, ptr %10, align 8
  %185 = call noundef zeroext i1 @_ZNK4Apex6existsEv(ptr noundef nonnull align 8 dereferenceable(104) %184)
  br i1 %185, label %187, label %186

186:                                              ; preds = %8
  store i1 true, ptr %9, align 1
  br label %1173

187:                                              ; preds = %8
  %188 = getelementptr inbounds %class.Apex, ptr %184, i32 0, i32 13
  %189 = load i8, ptr %188, align 1, !tbaa !13, !range !17, !noundef !18
  %190 = trunc i8 %189 to i1
  store i1 false, ptr %20, align 1
  store i1 false, ptr %22, align 1
  store i1 false, ptr %24, align 1
  store i1 false, ptr %26, align 1
  store i1 false, ptr %28, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %33, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %43, align 1
  store i1 false, ptr %44, align 1
  store i1 false, ptr %45, align 1
  store i1 false, ptr %47, align 1
  store i1 false, ptr %49, align 1
  store i1 false, ptr %50, align 1
  store i1 false, ptr %51, align 1
  store i1 false, ptr %52, align 1
  store i1 false, ptr %53, align 1
  store i1 false, ptr %55, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  store i1 false, ptr %57, align 1
  store i1 false, ptr %58, align 1
  store i1 false, ptr %61, align 1
  store i1 false, ptr %63, align 1
  store i1 false, ptr %64, align 1
  store i1 false, ptr %65, align 1
  store i1 false, ptr %67, align 1
  store i1 false, ptr %69, align 1
  store i1 false, ptr %70, align 1
  store i1 false, ptr %71, align 1
  store i1 false, ptr %72, align 1
  br i1 %190, label %220, label %191

191:                                              ; preds = %187
  %192 = getelementptr inbounds %class.Apex, ptr %184, i32 0, i32 14
  %193 = getelementptr inbounds %"struct.std::pair", ptr %192, i32 0, i32 0
  %194 = load i32, ptr %193, align 8, !tbaa !19
  %195 = icmp sgt i32 %194, -1
  br i1 %195, label %220, label %196

196:                                              ; preds = %191
  %197 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 2
  %198 = load ptr, ptr %197, align 8, !tbaa !20
  %199 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %198)
  %200 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %199)
  %201 = getelementptr inbounds %"struct.std::pair", ptr %200, i32 0, i32 0
  %202 = load i32, ptr %201, align 8, !tbaa !22
  %203 = icmp sgt i32 %202, -1
  br i1 %203, label %220, label %204

204:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #6
  store i1 true, ptr %20, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #6
  store i1 true, ptr %22, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #6
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #6
  store i1 true, ptr %26, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #6
  store i1 true, ptr %28, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #6
  store i1 true, ptr %30, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #6
  store i1 true, ptr %32, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  store i1 true, ptr %33, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %205 unwind label %612

205:                                              ; preds = %204
  store i1 true, ptr %36, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.1)
          to label %206 unwind label %616

206:                                              ; preds = %205
  store i1 true, ptr %37, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #6
  store i1 true, ptr %39, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #6
  store i1 true, ptr %41, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  store i1 true, ptr %42, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @__FUNCTION__._ZN9LayerApex14finitLayerApexEdddddbb, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %207 unwind label %620

207:                                              ; preds = %206
  store i1 true, ptr %43, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %208 unwind label %624

208:                                              ; preds = %207
  store i1 true, ptr %44, align 1
  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) %25, ptr noundef @.str.2)
          to label %209 unwind label %628

209:                                              ; preds = %208
  store i1 true, ptr %45, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #6
  store i1 true, ptr %47, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #6
  store i1 true, ptr %49, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  store i1 true, ptr %50, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %210 unwind label %632

210:                                              ; preds = %209
  store i1 true, ptr %51, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %211 unwind label %636

211:                                              ; preds = %210
  store i1 true, ptr %52, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.4)
          to label %212 unwind label %640

212:                                              ; preds = %211
  store i1 true, ptr %53, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #6
  store i1 true, ptr %55, align 1
  store i32 224, ptr %56, align 4, !tbaa !23
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 4 dereferenceable(4) %56)
          to label %213 unwind label %644

213:                                              ; preds = %212
  store i1 true, ptr %57, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %214 unwind label %648

214:                                              ; preds = %213
  store i1 true, ptr %58, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #6
  store i1 true, ptr %61, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #6
  store i1 true, ptr %63, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #6
  store i1 true, ptr %64, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %215 unwind label %652

215:                                              ; preds = %214
  store i1 true, ptr %65, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #6
  store i1 true, ptr %67, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #6
  store i1 true, ptr %69, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  store i1 true, ptr %70, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %216 unwind label %656

216:                                              ; preds = %215
  store i1 true, ptr %71, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %217 unwind label %660

217:                                              ; preds = %216
  store i1 true, ptr %72, align 1
  %218 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %18, ptr noundef %59, i32 noundef 0)
          to label %219 unwind label %664

219:                                              ; preds = %217
  br label %220

220:                                              ; preds = %219, %196, %191, %187
  %221 = phi i1 [ true, %196 ], [ true, %191 ], [ true, %187 ], [ %218, %219 ]
  %222 = xor i1 %221, true
  %223 = load i1, ptr %72, align 1
  br i1 %223, label %224, label %225

224:                                              ; preds = %220
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %225

225:                                              ; preds = %224, %220
  %226 = load i1, ptr %71, align 1
  br i1 %226, label %227, label %228

227:                                              ; preds = %225
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %228

228:                                              ; preds = %227, %225
  %229 = load i1, ptr %70, align 1
  br i1 %229, label %230, label %231

230:                                              ; preds = %228
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  br label %231

231:                                              ; preds = %230, %228
  %232 = load i1, ptr %69, align 1
  br i1 %232, label %233, label %234

233:                                              ; preds = %231
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #6
  br label %234

234:                                              ; preds = %233, %231
  %235 = load i1, ptr %67, align 1
  br i1 %235, label %236, label %237

236:                                              ; preds = %234
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #6
  br label %237

237:                                              ; preds = %236, %234
  %238 = load i1, ptr %65, align 1
  br i1 %238, label %239, label %240

239:                                              ; preds = %237
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %240

240:                                              ; preds = %239, %237
  %241 = load i1, ptr %64, align 1
  br i1 %241, label %242, label %243

242:                                              ; preds = %240
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #6
  br label %243

243:                                              ; preds = %242, %240
  %244 = load i1, ptr %63, align 1
  br i1 %244, label %245, label %246

245:                                              ; preds = %243
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #6
  br label %246

246:                                              ; preds = %245, %243
  %247 = load i1, ptr %61, align 1
  br i1 %247, label %248, label %249

248:                                              ; preds = %246
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #6
  br label %249

249:                                              ; preds = %248, %246
  %250 = load i1, ptr %58, align 1
  br i1 %250, label %251, label %252

251:                                              ; preds = %249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %252

252:                                              ; preds = %251, %249
  %253 = load i1, ptr %57, align 1
  br i1 %253, label %254, label %255

254:                                              ; preds = %252
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %255

255:                                              ; preds = %254, %252
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  %256 = load i1, ptr %55, align 1
  br i1 %256, label %257, label %258

257:                                              ; preds = %255
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #6
  br label %258

258:                                              ; preds = %257, %255
  %259 = load i1, ptr %53, align 1
  br i1 %259, label %260, label %261

260:                                              ; preds = %258
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %261

261:                                              ; preds = %260, %258
  %262 = load i1, ptr %52, align 1
  br i1 %262, label %263, label %264

263:                                              ; preds = %261
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %264

264:                                              ; preds = %263, %261
  %265 = load i1, ptr %51, align 1
  br i1 %265, label %266, label %267

266:                                              ; preds = %264
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %267

267:                                              ; preds = %266, %264
  %268 = load i1, ptr %50, align 1
  br i1 %268, label %269, label %270

269:                                              ; preds = %267
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  br label %270

270:                                              ; preds = %269, %267
  %271 = load i1, ptr %49, align 1
  br i1 %271, label %272, label %273

272:                                              ; preds = %270
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #6
  br label %273

273:                                              ; preds = %272, %270
  %274 = load i1, ptr %47, align 1
  br i1 %274, label %275, label %276

275:                                              ; preds = %273
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #6
  br label %276

276:                                              ; preds = %275, %273
  %277 = load i1, ptr %45, align 1
  br i1 %277, label %278, label %279

278:                                              ; preds = %276
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %279

279:                                              ; preds = %278, %276
  %280 = load i1, ptr %44, align 1
  br i1 %280, label %281, label %282

281:                                              ; preds = %279
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %282

282:                                              ; preds = %281, %279
  %283 = load i1, ptr %43, align 1
  br i1 %283, label %284, label %285

284:                                              ; preds = %282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %285

285:                                              ; preds = %284, %282
  %286 = load i1, ptr %42, align 1
  br i1 %286, label %287, label %288

287:                                              ; preds = %285
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  br label %288

288:                                              ; preds = %287, %285
  %289 = load i1, ptr %41, align 1
  br i1 %289, label %290, label %291

290:                                              ; preds = %288
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #6
  br label %291

291:                                              ; preds = %290, %288
  %292 = load i1, ptr %39, align 1
  br i1 %292, label %293, label %294

293:                                              ; preds = %291
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #6
  br label %294

294:                                              ; preds = %293, %291
  %295 = load i1, ptr %37, align 1
  br i1 %295, label %296, label %297

296:                                              ; preds = %294
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %297

297:                                              ; preds = %296, %294
  %298 = load i1, ptr %36, align 1
  br i1 %298, label %299, label %300

299:                                              ; preds = %297
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %300

300:                                              ; preds = %299, %297
  %301 = load i1, ptr %33, align 1
  br i1 %301, label %302, label %303

302:                                              ; preds = %300
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  br label %303

303:                                              ; preds = %302, %300
  %304 = load i1, ptr %32, align 1
  br i1 %304, label %305, label %306

305:                                              ; preds = %303
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  br label %306

306:                                              ; preds = %305, %303
  %307 = load i1, ptr %30, align 1
  br i1 %307, label %308, label %309

308:                                              ; preds = %306
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  br label %309

309:                                              ; preds = %308, %306
  %310 = load i1, ptr %28, align 1
  br i1 %310, label %311, label %312

311:                                              ; preds = %309
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  br label %312

312:                                              ; preds = %311, %309
  %313 = load i1, ptr %26, align 1
  br i1 %313, label %314, label %315

314:                                              ; preds = %312
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  br label %315

315:                                              ; preds = %314, %312
  %316 = load i1, ptr %24, align 1
  br i1 %316, label %317, label %318

317:                                              ; preds = %315
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #6
  br label %318

318:                                              ; preds = %317, %315
  %319 = load i1, ptr %22, align 1
  br i1 %319, label %320, label %321

320:                                              ; preds = %318
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  br label %321

321:                                              ; preds = %320, %318
  %322 = load i1, ptr %20, align 1
  br i1 %322, label %323, label %324

323:                                              ; preds = %321
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #6
  br label %324

324:                                              ; preds = %323, %321
  %325 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 2
  %326 = load ptr, ptr %325, align 8, !tbaa !20
  %327 = load ptr, ptr %326, align 8, !tbaa !24
  %328 = getelementptr inbounds ptr, ptr %327, i64 19
  %329 = load ptr, ptr %328, align 8
  %330 = call noundef zeroext i1 %329(ptr noundef nonnull align 8 dereferenceable(152) %326)
  store i1 false, ptr %75, align 1
  store i1 false, ptr %77, align 1
  store i1 false, ptr %79, align 1
  store i1 false, ptr %81, align 1
  store i1 false, ptr %83, align 1
  store i1 false, ptr %85, align 1
  store i1 false, ptr %87, align 1
  store i1 false, ptr %88, align 1
  store i1 false, ptr %89, align 1
  store i1 false, ptr %90, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %94, align 1
  store i1 false, ptr %95, align 1
  store i1 false, ptr %96, align 1
  store i1 false, ptr %97, align 1
  store i1 false, ptr %98, align 1
  store i1 false, ptr %100, align 1
  store i1 false, ptr %102, align 1
  store i1 false, ptr %103, align 1
  store i1 false, ptr %104, align 1
  store i1 false, ptr %105, align 1
  store i1 false, ptr %106, align 1
  store i1 false, ptr %108, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #6
  store i1 false, ptr %110, align 1
  store i1 false, ptr %111, align 1
  store i1 false, ptr %114, align 1
  store i1 false, ptr %116, align 1
  store i1 false, ptr %117, align 1
  store i1 false, ptr %118, align 1
  store i1 false, ptr %120, align 1
  store i1 false, ptr %122, align 1
  store i1 false, ptr %123, align 1
  store i1 false, ptr %124, align 1
  store i1 false, ptr %125, align 1
  br i1 %330, label %331, label %347

331:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #6
  store i1 true, ptr %75, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #6
  store i1 true, ptr %77, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #6
  store i1 true, ptr %79, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #6
  store i1 true, ptr %81, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #6
  store i1 true, ptr %83, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #6
  store i1 true, ptr %85, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #6
  store i1 true, ptr %87, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #6
  store i1 true, ptr %88, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %332 unwind label %783

332:                                              ; preds = %331
  store i1 true, ptr %89, align 1
  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) %84, ptr noundef @.str.1)
          to label %333 unwind label %787

333:                                              ; preds = %332
  store i1 true, ptr %90, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #6
  store i1 true, ptr %92, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %93) #6
  store i1 true, ptr %94, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #6
  store i1 true, ptr %95, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef @__FUNCTION__._ZN9LayerApex14finitLayerApexEdddddbb, ptr noundef nonnull align 1 dereferenceable(1) %93)
          to label %334 unwind label %791

334:                                              ; preds = %333
  store i1 true, ptr %96, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %335 unwind label %795

335:                                              ; preds = %334
  store i1 true, ptr %97, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str.2)
          to label %336 unwind label %799

336:                                              ; preds = %335
  store i1 true, ptr %98, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #6
  store i1 true, ptr %100, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %101) #6
  store i1 true, ptr %102, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #6
  store i1 true, ptr %103, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %337 unwind label %803

337:                                              ; preds = %336
  store i1 true, ptr %104, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %99)
          to label %338 unwind label %807

338:                                              ; preds = %337
  store i1 true, ptr %105, align 1
  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) %76, ptr noundef @.str.4)
          to label %339 unwind label %811

339:                                              ; preds = %338
  store i1 true, ptr %106, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %107) #6
  store i1 true, ptr %108, align 1
  store i32 225, ptr %109, align 4, !tbaa !23
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %107, ptr noundef nonnull align 4 dereferenceable(4) %109)
          to label %340 unwind label %815

340:                                              ; preds = %339
  store i1 true, ptr %110, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %107)
          to label %341 unwind label %819

341:                                              ; preds = %340
  store i1 true, ptr %111, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %113) #6
  store i1 true, ptr %114, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %115) #6
  store i1 true, ptr %116, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #6
  store i1 true, ptr %117, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %342 unwind label %823

342:                                              ; preds = %341
  store i1 true, ptr %118, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #6
  store i1 true, ptr %120, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #6
  store i1 true, ptr %122, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #6
  store i1 true, ptr %123, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %343 unwind label %827

343:                                              ; preds = %342
  store i1 true, ptr %124, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 8 dereferenceable(32) %113, ptr noundef nonnull align 8 dereferenceable(32) %119)
          to label %344 unwind label %831

344:                                              ; preds = %343
  store i1 true, ptr %125, align 1
  %345 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %73, ptr noundef %112, i32 noundef 0)
          to label %346 unwind label %835

346:                                              ; preds = %344
  br label %347

347:                                              ; preds = %346, %324
  %348 = phi i1 [ true, %324 ], [ %345, %346 ]
  %349 = xor i1 %348, true
  %350 = load i1, ptr %125, align 1
  br i1 %350, label %351, label %352

351:                                              ; preds = %347
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #6
  br label %352

352:                                              ; preds = %351, %347
  %353 = load i1, ptr %124, align 1
  br i1 %353, label %354, label %355

354:                                              ; preds = %352
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #6
  br label %355

355:                                              ; preds = %354, %352
  %356 = load i1, ptr %123, align 1
  br i1 %356, label %357, label %358

357:                                              ; preds = %355
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #6
  br label %358

358:                                              ; preds = %357, %355
  %359 = load i1, ptr %122, align 1
  br i1 %359, label %360, label %361

360:                                              ; preds = %358
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #6
  br label %361

361:                                              ; preds = %360, %358
  %362 = load i1, ptr %120, align 1
  br i1 %362, label %363, label %364

363:                                              ; preds = %361
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #6
  br label %364

364:                                              ; preds = %363, %361
  %365 = load i1, ptr %118, align 1
  br i1 %365, label %366, label %367

366:                                              ; preds = %364
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #6
  br label %367

367:                                              ; preds = %366, %364
  %368 = load i1, ptr %117, align 1
  br i1 %368, label %369, label %370

369:                                              ; preds = %367
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #6
  br label %370

370:                                              ; preds = %369, %367
  %371 = load i1, ptr %116, align 1
  br i1 %371, label %372, label %373

372:                                              ; preds = %370
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #6
  br label %373

373:                                              ; preds = %372, %370
  %374 = load i1, ptr %114, align 1
  br i1 %374, label %375, label %376

375:                                              ; preds = %373
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #6
  br label %376

376:                                              ; preds = %375, %373
  %377 = load i1, ptr %111, align 1
  br i1 %377, label %378, label %379

378:                                              ; preds = %376
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %379

379:                                              ; preds = %378, %376
  %380 = load i1, ptr %110, align 1
  br i1 %380, label %381, label %382

381:                                              ; preds = %379
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  br label %382

382:                                              ; preds = %381, %379
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #6
  %383 = load i1, ptr %108, align 1
  br i1 %383, label %384, label %385

384:                                              ; preds = %382
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #6
  br label %385

385:                                              ; preds = %384, %382
  %386 = load i1, ptr %106, align 1
  br i1 %386, label %387, label %388

387:                                              ; preds = %385
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %388

388:                                              ; preds = %387, %385
  %389 = load i1, ptr %105, align 1
  br i1 %389, label %390, label %391

390:                                              ; preds = %388
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %391

391:                                              ; preds = %390, %388
  %392 = load i1, ptr %104, align 1
  br i1 %392, label %393, label %394

393:                                              ; preds = %391
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  br label %394

394:                                              ; preds = %393, %391
  %395 = load i1, ptr %103, align 1
  br i1 %395, label %396, label %397

396:                                              ; preds = %394
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #6
  br label %397

397:                                              ; preds = %396, %394
  %398 = load i1, ptr %102, align 1
  br i1 %398, label %399, label %400

399:                                              ; preds = %397
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #6
  br label %400

400:                                              ; preds = %399, %397
  %401 = load i1, ptr %100, align 1
  br i1 %401, label %402, label %403

402:                                              ; preds = %400
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #6
  br label %403

403:                                              ; preds = %402, %400
  %404 = load i1, ptr %98, align 1
  br i1 %404, label %405, label %406

405:                                              ; preds = %403
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %406

406:                                              ; preds = %405, %403
  %407 = load i1, ptr %97, align 1
  br i1 %407, label %408, label %409

408:                                              ; preds = %406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  br label %409

409:                                              ; preds = %408, %406
  %410 = load i1, ptr %96, align 1
  br i1 %410, label %411, label %412

411:                                              ; preds = %409
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #6
  br label %412

412:                                              ; preds = %411, %409
  %413 = load i1, ptr %95, align 1
  br i1 %413, label %414, label %415

414:                                              ; preds = %412
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #6
  br label %415

415:                                              ; preds = %414, %412
  %416 = load i1, ptr %94, align 1
  br i1 %416, label %417, label %418

417:                                              ; preds = %415
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #6
  br label %418

418:                                              ; preds = %417, %415
  %419 = load i1, ptr %92, align 1
  br i1 %419, label %420, label %421

420:                                              ; preds = %418
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #6
  br label %421

421:                                              ; preds = %420, %418
  %422 = load i1, ptr %90, align 1
  br i1 %422, label %423, label %424

423:                                              ; preds = %421
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %424

424:                                              ; preds = %423, %421
  %425 = load i1, ptr %89, align 1
  br i1 %425, label %426, label %427

426:                                              ; preds = %424
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  br label %427

427:                                              ; preds = %426, %424
  %428 = load i1, ptr %88, align 1
  br i1 %428, label %429, label %430

429:                                              ; preds = %427
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #6
  br label %430

430:                                              ; preds = %429, %427
  %431 = load i1, ptr %87, align 1
  br i1 %431, label %432, label %433

432:                                              ; preds = %430
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #6
  br label %433

433:                                              ; preds = %432, %430
  %434 = load i1, ptr %85, align 1
  br i1 %434, label %435, label %436

435:                                              ; preds = %433
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #6
  br label %436

436:                                              ; preds = %435, %433
  %437 = load i1, ptr %83, align 1
  br i1 %437, label %438, label %439

438:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #6
  br label %439

439:                                              ; preds = %438, %436
  %440 = load i1, ptr %81, align 1
  br i1 %440, label %441, label %442

441:                                              ; preds = %439
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #6
  br label %442

442:                                              ; preds = %441, %439
  %443 = load i1, ptr %79, align 1
  br i1 %443, label %444, label %445

444:                                              ; preds = %442
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  br label %445

445:                                              ; preds = %444, %442
  %446 = load i1, ptr %77, align 1
  br i1 %446, label %447, label %448

447:                                              ; preds = %445
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  br label %448

448:                                              ; preds = %447, %445
  %449 = load i1, ptr %75, align 1
  br i1 %449, label %450, label %451

450:                                              ; preds = %448
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #6
  br label %451

451:                                              ; preds = %450, %448
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #6
  %452 = load i8, ptr %16, align 1, !tbaa !11, !range !17, !noundef !18
  %453 = trunc i8 %452 to i1
  br i1 %453, label %454, label %456

454:                                              ; preds = %451
  %455 = load double, ptr %12, align 8, !tbaa !9
  br label %458

456:                                              ; preds = %451
  %457 = load double, ptr %13, align 8, !tbaa !9
  br label %458

458:                                              ; preds = %456, %454
  %459 = phi double [ %455, %454 ], [ %457, %456 ]
  store double %459, ptr %126, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #6
  %460 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 2
  %461 = load ptr, ptr %460, align 8, !tbaa !20
  %462 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %461)
  %463 = call noundef zeroext i1 @_ZNK4Elem12isTrappedOilEv(ptr noundef nonnull align 8 dereferenceable(408) %462)
  %464 = zext i1 %463 to i32
  %465 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 2
  %466 = load ptr, ptr %465, align 8, !tbaa !20
  %467 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %466)
  %468 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %467)
  %469 = getelementptr inbounds %"struct.std::pair", ptr %468, i32 0, i32 0
  %470 = load i32, ptr %469, align 8, !tbaa !22
  %471 = icmp sgt i32 %470, -1
  %472 = zext i1 %471 to i32
  %473 = add nsw i32 %464, %472
  store i32 %473, ptr %127, align 4, !tbaa !23
  %474 = getelementptr inbounds %class.Apex, ptr %184, i32 0, i32 13
  %475 = load i8, ptr %474, align 1, !tbaa !13, !range !17, !noundef !18
  %476 = trunc i8 %475 to i1
  br i1 %476, label %480, label %477

477:                                              ; preds = %458
  %478 = load i32, ptr %127, align 4, !tbaa !23
  %479 = icmp slt i32 %478, 1
  br i1 %479, label %480, label %1125

480:                                              ; preds = %477, %458
  %481 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 3
  %482 = load double, ptr %11, align 8, !tbaa !9
  %483 = load double, ptr %15, align 8, !tbaa !9
  call void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144) %184, ptr noundef nonnull align 8 dereferenceable(8) %481, ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(8) %14, double noundef %482, double noundef %483, i1 noundef zeroext false)
  %484 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 3
  %485 = load double, ptr %484, align 8, !tbaa !26
  %486 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 4
  %487 = load ptr, ptr %486, align 8, !tbaa !27
  %488 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %487)
  %489 = fcmp ogt double %485, %488
  store i1 false, ptr %130, align 1
  store i1 false, ptr %132, align 1
  store i1 false, ptr %134, align 1
  store i1 false, ptr %136, align 1
  store i1 false, ptr %138, align 1
  store i1 false, ptr %140, align 1
  store i1 false, ptr %142, align 1
  store i1 false, ptr %143, align 1
  store i1 false, ptr %144, align 1
  store i1 false, ptr %145, align 1
  store i1 false, ptr %147, align 1
  store i1 false, ptr %149, align 1
  store i1 false, ptr %150, align 1
  store i1 false, ptr %151, align 1
  store i1 false, ptr %152, align 1
  store i1 false, ptr %153, align 1
  store i1 false, ptr %155, align 1
  store i1 false, ptr %157, align 1
  store i1 false, ptr %158, align 1
  store i1 false, ptr %159, align 1
  store i1 false, ptr %160, align 1
  store i1 false, ptr %161, align 1
  store i1 false, ptr %163, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #6
  store i1 false, ptr %165, align 1
  store i1 false, ptr %166, align 1
  store i1 false, ptr %169, align 1
  store i1 false, ptr %171, align 1
  store i1 false, ptr %172, align 1
  store i1 false, ptr %173, align 1
  store i1 false, ptr %175, align 1
  store i1 false, ptr %177, align 1
  store i1 false, ptr %178, align 1
  store i1 false, ptr %179, align 1
  store i1 false, ptr %180, align 1
  br i1 %489, label %506, label %490

490:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #6
  store i1 true, ptr %130, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #6
  store i1 true, ptr %132, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #6
  store i1 true, ptr %134, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #6
  store i1 true, ptr %136, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #6
  store i1 true, ptr %138, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #6
  store i1 true, ptr %140, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %141) #6
  store i1 true, ptr %142, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #6
  store i1 true, ptr %143, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %141)
          to label %491 unwind label %954

491:                                              ; preds = %490
  store i1 true, ptr %144, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %137, ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str.1)
          to label %492 unwind label %958

492:                                              ; preds = %491
  store i1 true, ptr %145, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %146) #6
  store i1 true, ptr %147, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %148) #6
  store i1 true, ptr %149, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  store i1 true, ptr %150, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef @__FUNCTION__._ZN9LayerApex14finitLayerApexEdddddbb, ptr noundef nonnull align 1 dereferenceable(1) %148)
          to label %493 unwind label %962

493:                                              ; preds = %492
  store i1 true, ptr %151, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %135, ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull align 8 dereferenceable(32) %146)
          to label %494 unwind label %966

494:                                              ; preds = %493
  store i1 true, ptr %152, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %133, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.2)
          to label %495 unwind label %970

495:                                              ; preds = %494
  store i1 true, ptr %153, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #6
  store i1 true, ptr %155, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #6
  store i1 true, ptr %157, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  store i1 true, ptr %158, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %496 unwind label %974

496:                                              ; preds = %495
  store i1 true, ptr %159, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %131, ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %497 unwind label %978

497:                                              ; preds = %496
  store i1 true, ptr %160, align 1
  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) %131, ptr noundef @.str.4)
          to label %498 unwind label %982

498:                                              ; preds = %497
  store i1 true, ptr %161, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %162) #6
  store i1 true, ptr %163, align 1
  store i32 235, ptr %164, align 4, !tbaa !23
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %162, ptr noundef nonnull align 4 dereferenceable(4) %164)
          to label %499 unwind label %986

499:                                              ; preds = %498
  store i1 true, ptr %165, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %128, ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %500 unwind label %990

500:                                              ; preds = %499
  store i1 true, ptr %166, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %168) #6
  store i1 true, ptr %169, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %170) #6
  store i1 true, ptr %171, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  store i1 true, ptr %172, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %170)
          to label %501 unwind label %994

501:                                              ; preds = %500
  store i1 true, ptr %173, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %174) #6
  store i1 true, ptr %175, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %176) #6
  store i1 true, ptr %177, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  store i1 true, ptr %178, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %174, ptr noundef @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %176)
          to label %502 unwind label %998

502:                                              ; preds = %501
  store i1 true, ptr %179, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %167, ptr noundef nonnull align 8 dereferenceable(32) %168, ptr noundef nonnull align 8 dereferenceable(32) %174)
          to label %503 unwind label %1002

503:                                              ; preds = %502
  store i1 true, ptr %180, align 1
  %504 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %128, ptr noundef %167, i32 noundef 0)
          to label %505 unwind label %1006

505:                                              ; preds = %503
  br label %506

506:                                              ; preds = %505, %480
  %507 = phi i1 [ true, %480 ], [ %504, %505 ]
  %508 = xor i1 %507, true
  %509 = load i1, ptr %180, align 1
  br i1 %509, label %510, label %511

510:                                              ; preds = %506
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  br label %511

511:                                              ; preds = %510, %506
  %512 = load i1, ptr %179, align 1
  br i1 %512, label %513, label %514

513:                                              ; preds = %511
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #6
  br label %514

514:                                              ; preds = %513, %511
  %515 = load i1, ptr %178, align 1
  br i1 %515, label %516, label %517

516:                                              ; preds = %514
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  br label %517

517:                                              ; preds = %516, %514
  %518 = load i1, ptr %177, align 1
  br i1 %518, label %519, label %520

519:                                              ; preds = %517
  call void @llvm.lifetime.end.p0(i64 1, ptr %176) #6
  br label %520

520:                                              ; preds = %519, %517
  %521 = load i1, ptr %175, align 1
  br i1 %521, label %522, label %523

522:                                              ; preds = %520
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #6
  br label %523

523:                                              ; preds = %522, %520
  %524 = load i1, ptr %173, align 1
  br i1 %524, label %525, label %526

525:                                              ; preds = %523
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #6
  br label %526

526:                                              ; preds = %525, %523
  %527 = load i1, ptr %172, align 1
  br i1 %527, label %528, label %529

528:                                              ; preds = %526
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  br label %529

529:                                              ; preds = %528, %526
  %530 = load i1, ptr %171, align 1
  br i1 %530, label %531, label %532

531:                                              ; preds = %529
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #6
  br label %532

532:                                              ; preds = %531, %529
  %533 = load i1, ptr %169, align 1
  br i1 %533, label %534, label %535

534:                                              ; preds = %532
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #6
  br label %535

535:                                              ; preds = %534, %532
  %536 = load i1, ptr %166, align 1
  br i1 %536, label %537, label %538

537:                                              ; preds = %535
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #6
  br label %538

538:                                              ; preds = %537, %535
  %539 = load i1, ptr %165, align 1
  br i1 %539, label %540, label %541

540:                                              ; preds = %538
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #6
  br label %541

541:                                              ; preds = %540, %538
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #6
  %542 = load i1, ptr %163, align 1
  br i1 %542, label %543, label %544

543:                                              ; preds = %541
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #6
  br label %544

544:                                              ; preds = %543, %541
  %545 = load i1, ptr %161, align 1
  br i1 %545, label %546, label %547

546:                                              ; preds = %544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #6
  br label %547

547:                                              ; preds = %546, %544
  %548 = load i1, ptr %160, align 1
  br i1 %548, label %549, label %550

549:                                              ; preds = %547
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #6
  br label %550

550:                                              ; preds = %549, %547
  %551 = load i1, ptr %159, align 1
  br i1 %551, label %552, label %553

552:                                              ; preds = %550
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #6
  br label %553

553:                                              ; preds = %552, %550
  %554 = load i1, ptr %158, align 1
  br i1 %554, label %555, label %556

555:                                              ; preds = %553
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  br label %556

556:                                              ; preds = %555, %553
  %557 = load i1, ptr %157, align 1
  br i1 %557, label %558, label %559

558:                                              ; preds = %556
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #6
  br label %559

559:                                              ; preds = %558, %556
  %560 = load i1, ptr %155, align 1
  br i1 %560, label %561, label %562

561:                                              ; preds = %559
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #6
  br label %562

562:                                              ; preds = %561, %559
  %563 = load i1, ptr %153, align 1
  br i1 %563, label %564, label %565

564:                                              ; preds = %562
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #6
  br label %565

565:                                              ; preds = %564, %562
  %566 = load i1, ptr %152, align 1
  br i1 %566, label %567, label %568

567:                                              ; preds = %565
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #6
  br label %568

568:                                              ; preds = %567, %565
  %569 = load i1, ptr %151, align 1
  br i1 %569, label %570, label %571

570:                                              ; preds = %568
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #6
  br label %571

571:                                              ; preds = %570, %568
  %572 = load i1, ptr %150, align 1
  br i1 %572, label %573, label %574

573:                                              ; preds = %571
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  br label %574

574:                                              ; preds = %573, %571
  %575 = load i1, ptr %149, align 1
  br i1 %575, label %576, label %577

576:                                              ; preds = %574
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #6
  br label %577

577:                                              ; preds = %576, %574
  %578 = load i1, ptr %147, align 1
  br i1 %578, label %579, label %580

579:                                              ; preds = %577
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #6
  br label %580

580:                                              ; preds = %579, %577
  %581 = load i1, ptr %145, align 1
  br i1 %581, label %582, label %583

582:                                              ; preds = %580
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #6
  br label %583

583:                                              ; preds = %582, %580
  %584 = load i1, ptr %144, align 1
  br i1 %584, label %585, label %586

585:                                              ; preds = %583
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #6
  br label %586

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

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

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

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

592:                                              ; preds = %591, %589
  %593 = load i1, ptr %140, align 1
  br i1 %593, label %594, label %595

594:                                              ; preds = %592
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #6
  br label %595

595:                                              ; preds = %594, %592
  %596 = load i1, ptr %138, align 1
  br i1 %596, label %597, label %598

597:                                              ; preds = %595
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #6
  br label %598

598:                                              ; preds = %597, %595
  %599 = load i1, ptr %136, align 1
  br i1 %599, label %600, label %601

600:                                              ; preds = %598
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #6
  br label %601

601:                                              ; preds = %600, %598
  %602 = load i1, ptr %134, align 1
  br i1 %602, label %603, label %604

603:                                              ; preds = %601
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #6
  br label %604

604:                                              ; preds = %603, %601
  %605 = load i1, ptr %132, align 1
  br i1 %605, label %606, label %607

606:                                              ; preds = %604
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #6
  br label %607

607:                                              ; preds = %606, %604
  %608 = load i1, ptr %130, align 1
  br i1 %608, label %609, label %610

609:                                              ; preds = %607
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #6
  br label %610

610:                                              ; preds = %609, %607
  %611 = getelementptr inbounds %class.Apex, ptr %184, i32 0, i32 13
  store i8 0, ptr %611, align 1, !tbaa !13
  br label %1125

612:                                              ; preds = %204
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %34, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %35, align 4
  br label %758

616:                                              ; preds = %205
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %34, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %35, align 4
  br label %754

620:                                              ; preds = %206
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %34, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %35, align 4
  br label %741

624:                                              ; preds = %207
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %34, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %35, align 4
  br label %737

628:                                              ; preds = %208
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %34, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %35, align 4
  br label %733

632:                                              ; preds = %209
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %34, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %35, align 4
  br label %720

636:                                              ; preds = %210
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %34, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %35, align 4
  br label %716

640:                                              ; preds = %211
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %34, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %35, align 4
  br label %712

644:                                              ; preds = %212
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %34, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %35, align 4
  br label %705

648:                                              ; preds = %213
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %34, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %35, align 4
  br label %701

652:                                              ; preds = %214
  %653 = landingpad { ptr, i32 }
          cleanup
  %654 = extractvalue { ptr, i32 } %653, 0
  store ptr %654, ptr %34, align 8
  %655 = extractvalue { ptr, i32 } %653, 1
  store i32 %655, ptr %35, align 4
  br label %688

656:                                              ; preds = %215
  %657 = landingpad { ptr, i32 }
          cleanup
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %34, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %35, align 4
  br label %675

660:                                              ; preds = %216
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %34, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %35, align 4
  br label %671

664:                                              ; preds = %217
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %34, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %35, align 4
  %668 = load i1, ptr %72, align 1
  br i1 %668, label %669, label %670

669:                                              ; preds = %664
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %670

670:                                              ; preds = %669, %664
  br label %671

671:                                              ; preds = %670, %660
  %672 = load i1, ptr %71, align 1
  br i1 %672, label %673, label %674

673:                                              ; preds = %671
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %674

674:                                              ; preds = %673, %671
  br label %675

675:                                              ; preds = %674, %656
  %676 = load i1, ptr %70, align 1
  br i1 %676, label %677, label %678

677:                                              ; preds = %675
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #6
  br label %678

678:                                              ; preds = %677, %675
  %679 = load i1, ptr %69, align 1
  br i1 %679, label %680, label %681

680:                                              ; preds = %678
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #6
  br label %681

681:                                              ; preds = %680, %678
  %682 = load i1, ptr %67, align 1
  br i1 %682, label %683, label %684

683:                                              ; preds = %681
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #6
  br label %684

684:                                              ; preds = %683, %681
  %685 = load i1, ptr %65, align 1
  br i1 %685, label %686, label %687

686:                                              ; preds = %684
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %687

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

688:                                              ; preds = %687, %652
  %689 = load i1, ptr %64, align 1
  br i1 %689, label %690, label %691

690:                                              ; preds = %688
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #6
  br label %691

691:                                              ; preds = %690, %688
  %692 = load i1, ptr %63, align 1
  br i1 %692, label %693, label %694

693:                                              ; preds = %691
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #6
  br label %694

694:                                              ; preds = %693, %691
  %695 = load i1, ptr %61, align 1
  br i1 %695, label %696, label %697

696:                                              ; preds = %694
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #6
  br label %697

697:                                              ; preds = %696, %694
  %698 = load i1, ptr %58, align 1
  br i1 %698, label %699, label %700

699:                                              ; preds = %697
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %700

700:                                              ; preds = %699, %697
  br label %701

701:                                              ; preds = %700, %648
  %702 = load i1, ptr %57, align 1
  br i1 %702, label %703, label %704

703:                                              ; preds = %701
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %704

704:                                              ; preds = %703, %701
  br label %705

705:                                              ; preds = %704, %644
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  %706 = load i1, ptr %55, align 1
  br i1 %706, label %707, label %708

707:                                              ; preds = %705
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #6
  br label %708

708:                                              ; preds = %707, %705
  %709 = load i1, ptr %53, align 1
  br i1 %709, label %710, label %711

710:                                              ; preds = %708
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %711

711:                                              ; preds = %710, %708
  br label %712

712:                                              ; preds = %711, %640
  %713 = load i1, ptr %52, align 1
  br i1 %713, label %714, label %715

714:                                              ; preds = %712
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %715

715:                                              ; preds = %714, %712
  br label %716

716:                                              ; preds = %715, %636
  %717 = load i1, ptr %51, align 1
  br i1 %717, label %718, label %719

718:                                              ; preds = %716
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %719

719:                                              ; preds = %718, %716
  br label %720

720:                                              ; preds = %719, %632
  %721 = load i1, ptr %50, align 1
  br i1 %721, label %722, label %723

722:                                              ; preds = %720
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  br label %723

723:                                              ; preds = %722, %720
  %724 = load i1, ptr %49, align 1
  br i1 %724, label %725, label %726

725:                                              ; preds = %723
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #6
  br label %726

726:                                              ; preds = %725, %723
  %727 = load i1, ptr %47, align 1
  br i1 %727, label %728, label %729

728:                                              ; preds = %726
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #6
  br label %729

729:                                              ; preds = %728, %726
  %730 = load i1, ptr %45, align 1
  br i1 %730, label %731, label %732

731:                                              ; preds = %729
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %732

732:                                              ; preds = %731, %729
  br label %733

733:                                              ; preds = %732, %628
  %734 = load i1, ptr %44, align 1
  br i1 %734, label %735, label %736

735:                                              ; preds = %733
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %736

736:                                              ; preds = %735, %733
  br label %737

737:                                              ; preds = %736, %624
  %738 = load i1, ptr %43, align 1
  br i1 %738, label %739, label %740

739:                                              ; preds = %737
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %740

740:                                              ; preds = %739, %737
  br label %741

741:                                              ; preds = %740, %620
  %742 = load i1, ptr %42, align 1
  br i1 %742, label %743, label %744

743:                                              ; preds = %741
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  br label %744

744:                                              ; preds = %743, %741
  %745 = load i1, ptr %41, align 1
  br i1 %745, label %746, label %747

746:                                              ; preds = %744
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #6
  br label %747

747:                                              ; preds = %746, %744
  %748 = load i1, ptr %39, align 1
  br i1 %748, label %749, label %750

749:                                              ; preds = %747
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #6
  br label %750

750:                                              ; preds = %749, %747
  %751 = load i1, ptr %37, align 1
  br i1 %751, label %752, label %753

752:                                              ; preds = %750
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %753

753:                                              ; preds = %752, %750
  br label %754

754:                                              ; preds = %753, %616
  %755 = load i1, ptr %36, align 1
  br i1 %755, label %756, label %757

756:                                              ; preds = %754
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %757

757:                                              ; preds = %756, %754
  br label %758

758:                                              ; preds = %757, %612
  %759 = load i1, ptr %33, align 1
  br i1 %759, label %760, label %761

760:                                              ; preds = %758
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  br label %761

761:                                              ; preds = %760, %758
  %762 = load i1, ptr %32, align 1
  br i1 %762, label %763, label %764

763:                                              ; preds = %761
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #6
  br label %764

764:                                              ; preds = %763, %761
  %765 = load i1, ptr %30, align 1
  br i1 %765, label %766, label %767

766:                                              ; preds = %764
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #6
  br label %767

767:                                              ; preds = %766, %764
  %768 = load i1, ptr %28, align 1
  br i1 %768, label %769, label %770

769:                                              ; preds = %767
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #6
  br label %770

770:                                              ; preds = %769, %767
  %771 = load i1, ptr %26, align 1
  br i1 %771, label %772, label %773

772:                                              ; preds = %770
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #6
  br label %773

773:                                              ; preds = %772, %770
  %774 = load i1, ptr %24, align 1
  br i1 %774, label %775, label %776

775:                                              ; preds = %773
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #6
  br label %776

776:                                              ; preds = %775, %773
  %777 = load i1, ptr %22, align 1
  br i1 %777, label %778, label %779

778:                                              ; preds = %776
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #6
  br label %779

779:                                              ; preds = %778, %776
  %780 = load i1, ptr %20, align 1
  br i1 %780, label %781, label %782

781:                                              ; preds = %779
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #6
  br label %782

782:                                              ; preds = %781, %779
  br label %1175

783:                                              ; preds = %331
  %784 = landingpad { ptr, i32 }
          cleanup
  %785 = extractvalue { ptr, i32 } %784, 0
  store ptr %785, ptr %34, align 8
  %786 = extractvalue { ptr, i32 } %784, 1
  store i32 %786, ptr %35, align 4
  br label %929

787:                                              ; preds = %332
  %788 = landingpad { ptr, i32 }
          cleanup
  %789 = extractvalue { ptr, i32 } %788, 0
  store ptr %789, ptr %34, align 8
  %790 = extractvalue { ptr, i32 } %788, 1
  store i32 %790, ptr %35, align 4
  br label %925

791:                                              ; preds = %333
  %792 = landingpad { ptr, i32 }
          cleanup
  %793 = extractvalue { ptr, i32 } %792, 0
  store ptr %793, ptr %34, align 8
  %794 = extractvalue { ptr, i32 } %792, 1
  store i32 %794, ptr %35, align 4
  br label %912

795:                                              ; preds = %334
  %796 = landingpad { ptr, i32 }
          cleanup
  %797 = extractvalue { ptr, i32 } %796, 0
  store ptr %797, ptr %34, align 8
  %798 = extractvalue { ptr, i32 } %796, 1
  store i32 %798, ptr %35, align 4
  br label %908

799:                                              ; preds = %335
  %800 = landingpad { ptr, i32 }
          cleanup
  %801 = extractvalue { ptr, i32 } %800, 0
  store ptr %801, ptr %34, align 8
  %802 = extractvalue { ptr, i32 } %800, 1
  store i32 %802, ptr %35, align 4
  br label %904

803:                                              ; preds = %336
  %804 = landingpad { ptr, i32 }
          cleanup
  %805 = extractvalue { ptr, i32 } %804, 0
  store ptr %805, ptr %34, align 8
  %806 = extractvalue { ptr, i32 } %804, 1
  store i32 %806, ptr %35, align 4
  br label %891

807:                                              ; preds = %337
  %808 = landingpad { ptr, i32 }
          cleanup
  %809 = extractvalue { ptr, i32 } %808, 0
  store ptr %809, ptr %34, align 8
  %810 = extractvalue { ptr, i32 } %808, 1
  store i32 %810, ptr %35, align 4
  br label %887

811:                                              ; preds = %338
  %812 = landingpad { ptr, i32 }
          cleanup
  %813 = extractvalue { ptr, i32 } %812, 0
  store ptr %813, ptr %34, align 8
  %814 = extractvalue { ptr, i32 } %812, 1
  store i32 %814, ptr %35, align 4
  br label %883

815:                                              ; preds = %339
  %816 = landingpad { ptr, i32 }
          cleanup
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %34, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %35, align 4
  br label %876

819:                                              ; preds = %340
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %34, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %35, align 4
  br label %872

823:                                              ; preds = %341
  %824 = landingpad { ptr, i32 }
          cleanup
  %825 = extractvalue { ptr, i32 } %824, 0
  store ptr %825, ptr %34, align 8
  %826 = extractvalue { ptr, i32 } %824, 1
  store i32 %826, ptr %35, align 4
  br label %859

827:                                              ; preds = %342
  %828 = landingpad { ptr, i32 }
          cleanup
  %829 = extractvalue { ptr, i32 } %828, 0
  store ptr %829, ptr %34, align 8
  %830 = extractvalue { ptr, i32 } %828, 1
  store i32 %830, ptr %35, align 4
  br label %846

831:                                              ; preds = %343
  %832 = landingpad { ptr, i32 }
          cleanup
  %833 = extractvalue { ptr, i32 } %832, 0
  store ptr %833, ptr %34, align 8
  %834 = extractvalue { ptr, i32 } %832, 1
  store i32 %834, ptr %35, align 4
  br label %842

835:                                              ; preds = %344
  %836 = landingpad { ptr, i32 }
          cleanup
  %837 = extractvalue { ptr, i32 } %836, 0
  store ptr %837, ptr %34, align 8
  %838 = extractvalue { ptr, i32 } %836, 1
  store i32 %838, ptr %35, align 4
  %839 = load i1, ptr %125, align 1
  br i1 %839, label %840, label %841

840:                                              ; preds = %835
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #6
  br label %841

841:                                              ; preds = %840, %835
  br label %842

842:                                              ; preds = %841, %831
  %843 = load i1, ptr %124, align 1
  br i1 %843, label %844, label %845

844:                                              ; preds = %842
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #6
  br label %845

845:                                              ; preds = %844, %842
  br label %846

846:                                              ; preds = %845, %827
  %847 = load i1, ptr %123, align 1
  br i1 %847, label %848, label %849

848:                                              ; preds = %846
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #6
  br label %849

849:                                              ; preds = %848, %846
  %850 = load i1, ptr %122, align 1
  br i1 %850, label %851, label %852

851:                                              ; preds = %849
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #6
  br label %852

852:                                              ; preds = %851, %849
  %853 = load i1, ptr %120, align 1
  br i1 %853, label %854, label %855

854:                                              ; preds = %852
  call void @llvm.lifetime.end.p0(i64 32, ptr %119) #6
  br label %855

855:                                              ; preds = %854, %852
  %856 = load i1, ptr %118, align 1
  br i1 %856, label %857, label %858

857:                                              ; preds = %855
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #6
  br label %858

858:                                              ; preds = %857, %855
  br label %859

859:                                              ; preds = %858, %823
  %860 = load i1, ptr %117, align 1
  br i1 %860, label %861, label %862

861:                                              ; preds = %859
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #6
  br label %862

862:                                              ; preds = %861, %859
  %863 = load i1, ptr %116, align 1
  br i1 %863, label %864, label %865

864:                                              ; preds = %862
  call void @llvm.lifetime.end.p0(i64 1, ptr %115) #6
  br label %865

865:                                              ; preds = %864, %862
  %866 = load i1, ptr %114, align 1
  br i1 %866, label %867, label %868

867:                                              ; preds = %865
  call void @llvm.lifetime.end.p0(i64 32, ptr %113) #6
  br label %868

868:                                              ; preds = %867, %865
  %869 = load i1, ptr %111, align 1
  br i1 %869, label %870, label %871

870:                                              ; preds = %868
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %871

871:                                              ; preds = %870, %868
  br label %872

872:                                              ; preds = %871, %819
  %873 = load i1, ptr %110, align 1
  br i1 %873, label %874, label %875

874:                                              ; preds = %872
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #6
  br label %875

875:                                              ; preds = %874, %872
  br label %876

876:                                              ; preds = %875, %815
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #6
  %877 = load i1, ptr %108, align 1
  br i1 %877, label %878, label %879

878:                                              ; preds = %876
  call void @llvm.lifetime.end.p0(i64 32, ptr %107) #6
  br label %879

879:                                              ; preds = %878, %876
  %880 = load i1, ptr %106, align 1
  br i1 %880, label %881, label %882

881:                                              ; preds = %879
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %882

882:                                              ; preds = %881, %879
  br label %883

883:                                              ; preds = %882, %811
  %884 = load i1, ptr %105, align 1
  br i1 %884, label %885, label %886

885:                                              ; preds = %883
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #6
  br label %886

886:                                              ; preds = %885, %883
  br label %887

887:                                              ; preds = %886, %807
  %888 = load i1, ptr %104, align 1
  br i1 %888, label %889, label %890

889:                                              ; preds = %887
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  br label %890

890:                                              ; preds = %889, %887
  br label %891

891:                                              ; preds = %890, %803
  %892 = load i1, ptr %103, align 1
  br i1 %892, label %893, label %894

893:                                              ; preds = %891
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #6
  br label %894

894:                                              ; preds = %893, %891
  %895 = load i1, ptr %102, align 1
  br i1 %895, label %896, label %897

896:                                              ; preds = %894
  call void @llvm.lifetime.end.p0(i64 1, ptr %101) #6
  br label %897

897:                                              ; preds = %896, %894
  %898 = load i1, ptr %100, align 1
  br i1 %898, label %899, label %900

899:                                              ; preds = %897
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #6
  br label %900

900:                                              ; preds = %899, %897
  %901 = load i1, ptr %98, align 1
  br i1 %901, label %902, label %903

902:                                              ; preds = %900
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #6
  br label %903

903:                                              ; preds = %902, %900
  br label %904

904:                                              ; preds = %903, %799
  %905 = load i1, ptr %97, align 1
  br i1 %905, label %906, label %907

906:                                              ; preds = %904
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #6
  br label %907

907:                                              ; preds = %906, %904
  br label %908

908:                                              ; preds = %907, %795
  %909 = load i1, ptr %96, align 1
  br i1 %909, label %910, label %911

910:                                              ; preds = %908
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #6
  br label %911

911:                                              ; preds = %910, %908
  br label %912

912:                                              ; preds = %911, %791
  %913 = load i1, ptr %95, align 1
  br i1 %913, label %914, label %915

914:                                              ; preds = %912
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %93) #6
  br label %915

915:                                              ; preds = %914, %912
  %916 = load i1, ptr %94, align 1
  br i1 %916, label %917, label %918

917:                                              ; preds = %915
  call void @llvm.lifetime.end.p0(i64 1, ptr %93) #6
  br label %918

918:                                              ; preds = %917, %915
  %919 = load i1, ptr %92, align 1
  br i1 %919, label %920, label %921

920:                                              ; preds = %918
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #6
  br label %921

921:                                              ; preds = %920, %918
  %922 = load i1, ptr %90, align 1
  br i1 %922, label %923, label %924

923:                                              ; preds = %921
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #6
  br label %924

924:                                              ; preds = %923, %921
  br label %925

925:                                              ; preds = %924, %787
  %926 = load i1, ptr %89, align 1
  br i1 %926, label %927, label %928

927:                                              ; preds = %925
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #6
  br label %928

928:                                              ; preds = %927, %925
  br label %929

929:                                              ; preds = %928, %783
  %930 = load i1, ptr %88, align 1
  br i1 %930, label %931, label %932

931:                                              ; preds = %929
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #6
  br label %932

932:                                              ; preds = %931, %929
  %933 = load i1, ptr %87, align 1
  br i1 %933, label %934, label %935

934:                                              ; preds = %932
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #6
  br label %935

935:                                              ; preds = %934, %932
  %936 = load i1, ptr %85, align 1
  br i1 %936, label %937, label %938

937:                                              ; preds = %935
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #6
  br label %938

938:                                              ; preds = %937, %935
  %939 = load i1, ptr %83, align 1
  br i1 %939, label %940, label %941

940:                                              ; preds = %938
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #6
  br label %941

941:                                              ; preds = %940, %938
  %942 = load i1, ptr %81, align 1
  br i1 %942, label %943, label %944

943:                                              ; preds = %941
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #6
  br label %944

944:                                              ; preds = %943, %941
  %945 = load i1, ptr %79, align 1
  br i1 %945, label %946, label %947

946:                                              ; preds = %944
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #6
  br label %947

947:                                              ; preds = %946, %944
  %948 = load i1, ptr %77, align 1
  br i1 %948, label %949, label %950

949:                                              ; preds = %947
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #6
  br label %950

950:                                              ; preds = %949, %947
  %951 = load i1, ptr %75, align 1
  br i1 %951, label %952, label %953

952:                                              ; preds = %950
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #6
  br label %953

953:                                              ; preds = %952, %950
  br label %1175

954:                                              ; preds = %490
  %955 = landingpad { ptr, i32 }
          cleanup
  %956 = extractvalue { ptr, i32 } %955, 0
  store ptr %956, ptr %34, align 8
  %957 = extractvalue { ptr, i32 } %955, 1
  store i32 %957, ptr %35, align 4
  br label %1100

958:                                              ; preds = %491
  %959 = landingpad { ptr, i32 }
          cleanup
  %960 = extractvalue { ptr, i32 } %959, 0
  store ptr %960, ptr %34, align 8
  %961 = extractvalue { ptr, i32 } %959, 1
  store i32 %961, ptr %35, align 4
  br label %1096

962:                                              ; preds = %492
  %963 = landingpad { ptr, i32 }
          cleanup
  %964 = extractvalue { ptr, i32 } %963, 0
  store ptr %964, ptr %34, align 8
  %965 = extractvalue { ptr, i32 } %963, 1
  store i32 %965, ptr %35, align 4
  br label %1083

966:                                              ; preds = %493
  %967 = landingpad { ptr, i32 }
          cleanup
  %968 = extractvalue { ptr, i32 } %967, 0
  store ptr %968, ptr %34, align 8
  %969 = extractvalue { ptr, i32 } %967, 1
  store i32 %969, ptr %35, align 4
  br label %1079

970:                                              ; preds = %494
  %971 = landingpad { ptr, i32 }
          cleanup
  %972 = extractvalue { ptr, i32 } %971, 0
  store ptr %972, ptr %34, align 8
  %973 = extractvalue { ptr, i32 } %971, 1
  store i32 %973, ptr %35, align 4
  br label %1075

974:                                              ; preds = %495
  %975 = landingpad { ptr, i32 }
          cleanup
  %976 = extractvalue { ptr, i32 } %975, 0
  store ptr %976, ptr %34, align 8
  %977 = extractvalue { ptr, i32 } %975, 1
  store i32 %977, ptr %35, align 4
  br label %1062

978:                                              ; preds = %496
  %979 = landingpad { ptr, i32 }
          cleanup
  %980 = extractvalue { ptr, i32 } %979, 0
  store ptr %980, ptr %34, align 8
  %981 = extractvalue { ptr, i32 } %979, 1
  store i32 %981, ptr %35, align 4
  br label %1058

982:                                              ; preds = %497
  %983 = landingpad { ptr, i32 }
          cleanup
  %984 = extractvalue { ptr, i32 } %983, 0
  store ptr %984, ptr %34, align 8
  %985 = extractvalue { ptr, i32 } %983, 1
  store i32 %985, ptr %35, align 4
  br label %1054

986:                                              ; preds = %498
  %987 = landingpad { ptr, i32 }
          cleanup
  %988 = extractvalue { ptr, i32 } %987, 0
  store ptr %988, ptr %34, align 8
  %989 = extractvalue { ptr, i32 } %987, 1
  store i32 %989, ptr %35, align 4
  br label %1047

990:                                              ; preds = %499
  %991 = landingpad { ptr, i32 }
          cleanup
  %992 = extractvalue { ptr, i32 } %991, 0
  store ptr %992, ptr %34, align 8
  %993 = extractvalue { ptr, i32 } %991, 1
  store i32 %993, ptr %35, align 4
  br label %1043

994:                                              ; preds = %500
  %995 = landingpad { ptr, i32 }
          cleanup
  %996 = extractvalue { ptr, i32 } %995, 0
  store ptr %996, ptr %34, align 8
  %997 = extractvalue { ptr, i32 } %995, 1
  store i32 %997, ptr %35, align 4
  br label %1030

998:                                              ; preds = %501
  %999 = landingpad { ptr, i32 }
          cleanup
  %1000 = extractvalue { ptr, i32 } %999, 0
  store ptr %1000, ptr %34, align 8
  %1001 = extractvalue { ptr, i32 } %999, 1
  store i32 %1001, ptr %35, align 4
  br label %1017

1002:                                             ; preds = %502
  %1003 = landingpad { ptr, i32 }
          cleanup
  %1004 = extractvalue { ptr, i32 } %1003, 0
  store ptr %1004, ptr %34, align 8
  %1005 = extractvalue { ptr, i32 } %1003, 1
  store i32 %1005, ptr %35, align 4
  br label %1013

1006:                                             ; preds = %503
  %1007 = landingpad { ptr, i32 }
          cleanup
  %1008 = extractvalue { ptr, i32 } %1007, 0
  store ptr %1008, ptr %34, align 8
  %1009 = extractvalue { ptr, i32 } %1007, 1
  store i32 %1009, ptr %35, align 4
  %1010 = load i1, ptr %180, align 1
  br i1 %1010, label %1011, label %1012

1011:                                             ; preds = %1006
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %167) #6
  br label %1012

1012:                                             ; preds = %1011, %1006
  br label %1013

1013:                                             ; preds = %1012, %1002
  %1014 = load i1, ptr %179, align 1
  br i1 %1014, label %1015, label %1016

1015:                                             ; preds = %1013
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %174) #6
  br label %1016

1016:                                             ; preds = %1015, %1013
  br label %1017

1017:                                             ; preds = %1016, %998
  %1018 = load i1, ptr %178, align 1
  br i1 %1018, label %1019, label %1020

1019:                                             ; preds = %1017
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %176) #6
  br label %1020

1020:                                             ; preds = %1019, %1017
  %1021 = load i1, ptr %177, align 1
  br i1 %1021, label %1022, label %1023

1022:                                             ; preds = %1020
  call void @llvm.lifetime.end.p0(i64 1, ptr %176) #6
  br label %1023

1023:                                             ; preds = %1022, %1020
  %1024 = load i1, ptr %175, align 1
  br i1 %1024, label %1025, label %1026

1025:                                             ; preds = %1023
  call void @llvm.lifetime.end.p0(i64 32, ptr %174) #6
  br label %1026

1026:                                             ; preds = %1025, %1023
  %1027 = load i1, ptr %173, align 1
  br i1 %1027, label %1028, label %1029

1028:                                             ; preds = %1026
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %168) #6
  br label %1029

1029:                                             ; preds = %1028, %1026
  br label %1030

1030:                                             ; preds = %1029, %994
  %1031 = load i1, ptr %172, align 1
  br i1 %1031, label %1032, label %1033

1032:                                             ; preds = %1030
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %170) #6
  br label %1033

1033:                                             ; preds = %1032, %1030
  %1034 = load i1, ptr %171, align 1
  br i1 %1034, label %1035, label %1036

1035:                                             ; preds = %1033
  call void @llvm.lifetime.end.p0(i64 1, ptr %170) #6
  br label %1036

1036:                                             ; preds = %1035, %1033
  %1037 = load i1, ptr %169, align 1
  br i1 %1037, label %1038, label %1039

1038:                                             ; preds = %1036
  call void @llvm.lifetime.end.p0(i64 32, ptr %168) #6
  br label %1039

1039:                                             ; preds = %1038, %1036
  %1040 = load i1, ptr %166, align 1
  br i1 %1040, label %1041, label %1042

1041:                                             ; preds = %1039
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #6
  br label %1042

1042:                                             ; preds = %1041, %1039
  br label %1043

1043:                                             ; preds = %1042, %990
  %1044 = load i1, ptr %165, align 1
  br i1 %1044, label %1045, label %1046

1045:                                             ; preds = %1043
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #6
  br label %1046

1046:                                             ; preds = %1045, %1043
  br label %1047

1047:                                             ; preds = %1046, %986
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #6
  %1048 = load i1, ptr %163, align 1
  br i1 %1048, label %1049, label %1050

1049:                                             ; preds = %1047
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #6
  br label %1050

1050:                                             ; preds = %1049, %1047
  %1051 = load i1, ptr %161, align 1
  br i1 %1051, label %1052, label %1053

1052:                                             ; preds = %1050
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #6
  br label %1053

1053:                                             ; preds = %1052, %1050
  br label %1054

1054:                                             ; preds = %1053, %982
  %1055 = load i1, ptr %160, align 1
  br i1 %1055, label %1056, label %1057

1056:                                             ; preds = %1054
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #6
  br label %1057

1057:                                             ; preds = %1056, %1054
  br label %1058

1058:                                             ; preds = %1057, %978
  %1059 = load i1, ptr %159, align 1
  br i1 %1059, label %1060, label %1061

1060:                                             ; preds = %1058
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #6
  br label %1061

1061:                                             ; preds = %1060, %1058
  br label %1062

1062:                                             ; preds = %1061, %974
  %1063 = load i1, ptr %158, align 1
  br i1 %1063, label %1064, label %1065

1064:                                             ; preds = %1062
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #6
  br label %1065

1065:                                             ; preds = %1064, %1062
  %1066 = load i1, ptr %157, align 1
  br i1 %1066, label %1067, label %1068

1067:                                             ; preds = %1065
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #6
  br label %1068

1068:                                             ; preds = %1067, %1065
  %1069 = load i1, ptr %155, align 1
  br i1 %1069, label %1070, label %1071

1070:                                             ; preds = %1068
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #6
  br label %1071

1071:                                             ; preds = %1070, %1068
  %1072 = load i1, ptr %153, align 1
  br i1 %1072, label %1073, label %1074

1073:                                             ; preds = %1071
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #6
  br label %1074

1074:                                             ; preds = %1073, %1071
  br label %1075

1075:                                             ; preds = %1074, %970
  %1076 = load i1, ptr %152, align 1
  br i1 %1076, label %1077, label %1078

1077:                                             ; preds = %1075
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #6
  br label %1078

1078:                                             ; preds = %1077, %1075
  br label %1079

1079:                                             ; preds = %1078, %966
  %1080 = load i1, ptr %151, align 1
  br i1 %1080, label %1081, label %1082

1081:                                             ; preds = %1079
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #6
  br label %1082

1082:                                             ; preds = %1081, %1079
  br label %1083

1083:                                             ; preds = %1082, %962
  %1084 = load i1, ptr %150, align 1
  br i1 %1084, label %1085, label %1086

1085:                                             ; preds = %1083
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %148) #6
  br label %1086

1086:                                             ; preds = %1085, %1083
  %1087 = load i1, ptr %149, align 1
  br i1 %1087, label %1088, label %1089

1088:                                             ; preds = %1086
  call void @llvm.lifetime.end.p0(i64 1, ptr %148) #6
  br label %1089

1089:                                             ; preds = %1088, %1086
  %1090 = load i1, ptr %147, align 1
  br i1 %1090, label %1091, label %1092

1091:                                             ; preds = %1089
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #6
  br label %1092

1092:                                             ; preds = %1091, %1089
  %1093 = load i1, ptr %145, align 1
  br i1 %1093, label %1094, label %1095

1094:                                             ; preds = %1092
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #6
  br label %1095

1095:                                             ; preds = %1094, %1092
  br label %1096

1096:                                             ; preds = %1095, %958
  %1097 = load i1, ptr %144, align 1
  br i1 %1097, label %1098, label %1099

1098:                                             ; preds = %1096
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #6
  br label %1099

1099:                                             ; preds = %1098, %1096
  br label %1100

1100:                                             ; preds = %1099, %954
  %1101 = load i1, ptr %143, align 1
  br i1 %1101, label %1102, label %1103

1102:                                             ; preds = %1100
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %141) #6
  br label %1103

1103:                                             ; preds = %1102, %1100
  %1104 = load i1, ptr %142, align 1
  br i1 %1104, label %1105, label %1106

1105:                                             ; preds = %1103
  call void @llvm.lifetime.end.p0(i64 1, ptr %141) #6
  br label %1106

1106:                                             ; preds = %1105, %1103
  %1107 = load i1, ptr %140, align 1
  br i1 %1107, label %1108, label %1109

1108:                                             ; preds = %1106
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #6
  br label %1109

1109:                                             ; preds = %1108, %1106
  %1110 = load i1, ptr %138, align 1
  br i1 %1110, label %1111, label %1112

1111:                                             ; preds = %1109
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #6
  br label %1112

1112:                                             ; preds = %1111, %1109
  %1113 = load i1, ptr %136, align 1
  br i1 %1113, label %1114, label %1115

1114:                                             ; preds = %1112
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #6
  br label %1115

1115:                                             ; preds = %1114, %1112
  %1116 = load i1, ptr %134, align 1
  br i1 %1116, label %1117, label %1118

1117:                                             ; preds = %1115
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #6
  br label %1118

1118:                                             ; preds = %1117, %1115
  %1119 = load i1, ptr %132, align 1
  br i1 %1119, label %1120, label %1121

1120:                                             ; preds = %1118
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #6
  br label %1121

1121:                                             ; preds = %1120, %1118
  %1122 = load i1, ptr %130, align 1
  br i1 %1122, label %1123, label %1124

1123:                                             ; preds = %1121
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #6
  br label %1124

1124:                                             ; preds = %1123, %1121
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #6
  br label %1175

1125:                                             ; preds = %610, %477
  %1126 = load double, ptr %15, align 8, !tbaa !9
  %1127 = load double, ptr %13, align 8, !tbaa !9
  %1128 = load double, ptr %14, align 8, !tbaa !9
  %1129 = fsub double %1127, %1128
  %1130 = call double @cos(double noundef %1129) #6
  %1131 = fmul double %1126, %1130
  %1132 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 3
  %1133 = load double, ptr %1132, align 8, !tbaa !26
  %1134 = load double, ptr %14, align 8, !tbaa !9
  %1135 = call double @sin(double noundef %1134) #6
  %1136 = fmul double %1133, %1135
  %1137 = fdiv double %1131, %1136
  %1138 = getelementptr inbounds %class.Apex, ptr %184, i32 0, i32 6
  store double %1137, ptr %1138, align 8, !tbaa !28
  %1139 = load double, ptr %15, align 8, !tbaa !9
  %1140 = load double, ptr %12, align 8, !tbaa !9
  %1141 = load double, ptr %14, align 8, !tbaa !9
  %1142 = fsub double %1140, %1141
  %1143 = call double @cos(double noundef %1142) #6
  %1144 = fmul double %1139, %1143
  %1145 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 3
  %1146 = load double, ptr %1145, align 8, !tbaa !26
  %1147 = load double, ptr %14, align 8, !tbaa !9
  %1148 = call double @sin(double noundef %1147) #6
  %1149 = fmul double %1146, %1148
  %1150 = fdiv double %1144, %1149
  %1151 = getelementptr inbounds %class.Apex, ptr %184, i32 0, i32 7
  store double %1150, ptr %1151, align 8, !tbaa !29
  %1152 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 3
  %1153 = load double, ptr %1152, align 8, !tbaa !26
  %1154 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 4
  %1155 = load ptr, ptr %1154, align 8, !tbaa !27
  %1156 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %1155)
  %1157 = fcmp olt double %1153, %1156
  br i1 %1157, label %1158, label %1171

1158:                                             ; preds = %1125
  %1159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.15)
  %1160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  %1161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.9)
  %1162 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 3
  %1163 = load double, ptr %1162, align 8, !tbaa !26
  %1164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1161, double noundef %1163)
  %1165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1164, ptr noundef @.str.16)
  %1166 = getelementptr inbounds %class.LayerApex, ptr %184, i32 0, i32 4
  %1167 = load ptr, ptr %1166, align 8, !tbaa !27
  %1168 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %1167)
  %1169 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1165, double noundef %1168)
  %1170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  store i1 false, ptr %9, align 1
  store i32 1, ptr %181, align 4
  br label %1172

1171:                                             ; preds = %1125
  store i1 true, ptr %9, align 1
  store i32 1, ptr %181, align 4
  br label %1172

1172:                                             ; preds = %1171, %1158
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #6
  br label %1173

1173:                                             ; preds = %1172, %186
  %1174 = load i1, ptr %9, align 1
  ret i1 %1174

1175:                                             ; preds = %1124, %953, %782
  %1176 = load ptr, ptr %34, align 8
  %1177 = load i32, ptr %35, align 4
  %1178 = insertvalue { ptr, i32 } poison, ptr %1176, 0
  %1179 = insertvalue { ptr, i32 } %1178, i32 %1177, 1
  resume { ptr, i32 } %1179
}

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8)) #5

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !12, i64 83}
!14 = !{!"_ZTS4Apex", !12, i64 8, !10, i64 16, !10, i64 24, !6, i64 32, !15, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !12, i64 80, !12, i64 81, !12, i64 82, !12, i64 83, !16, i64 88}
!15 = !{!"int", !7, i64 0}
!16 = !{!"_ZTSSt4pairIidE", !15, i64 0, !10, i64 8}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = !{!14, !15, i64 88}
!20 = !{!21, !6, i64 112}
!21 = !{!"_ZTS9LayerApex", !14, i64 0, !15, i64 104, !6, i64 112, !10, i64 120, !6, i64 128, !10, i64 136}
!22 = !{!16, !15, i64 0}
!23 = !{!15, !15, i64 0}
!24 = !{!25, !25, i64 0}
!25 = !{!"vtable pointer", !8, i64 0}
!26 = !{!21, !10, i64 120}
!27 = !{!21, !6, i64 128}
!28 = !{!14, !10, i64 48}
!29 = !{!14, !10, i64 56}


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

@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.9 = external hidden unnamed_addr constant [3 x i8], align 1
@__FUNCTION__._ZN9LayerApex14finitLayerApexEdddddbb = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [4 x i8], align 1

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sin(double noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @cos(double noundef) local_unnamed_addr #1

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

; Function Attrs: 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 @_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 #4 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z2_sIiENSt7__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 #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), double noundef, double noundef, i1 noundef zeroext) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #3 align 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 @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8), double noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4Apex6existsEv(ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN9LayerApex14finitLayerApexEdddddbb(ptr noundef nonnull align 8 dereferenceable(144) %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5, i1 noundef zeroext %6, i1 noundef zeroext %7) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca double, 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::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %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::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i32, align 4
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca double, 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::__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::allocator", align 1
  %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 i32, align 4
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::allocator", align 1
  store double %4, ptr %9, align 8, !tbaa !5
  %68 = tail call noundef zeroext i1 @_ZNK4Apex6existsEv(ptr noundef nonnull align 8 dereferenceable(104) %0)
  br i1 %68, label %69, label %319

69:                                               ; preds = %8
  %70 = getelementptr inbounds i8, ptr %0, i64 83
  %71 = load i8, ptr %70, align 1, !tbaa !9, !range !15, !noundef !16
  %72 = trunc nuw i8 %71 to i1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  %73 = getelementptr inbounds i8, ptr %0, i64 88
  %74 = load i32, ptr %73, align 8
  %75 = icmp sgt i32 %74, -1
  %or.cond406 = select i1 %72, i1 true, i1 %75
  br i1 %or.cond406, label %98, label %76

76:                                               ; preds = %69
  %77 = getelementptr inbounds i8, ptr %0, i64 112
  %78 = load ptr, ptr %77, align 8, !tbaa !17
  %79 = tail call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %78)
  %80 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %79)
  %81 = load i32, ptr %80, align 8, !tbaa !19
  %82 = icmp sgt i32 %81, -1
  br i1 %82, label %98, label %83

83:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %84 unwind label %157

84:                                               ; preds = %83
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.1)
          to label %85 unwind label %159

85:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @__FUNCTION__._ZN9LayerApex14finitLayerApexEdddddbb, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %86 unwind label %161

86:                                               ; preds = %85
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %18)
          to label %87 unwind label %163

87:                                               ; preds = %86
  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.2)
          to label %88 unwind label %165

88:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %89 unwind label %167

89:                                               ; preds = %88
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %20)
          to label %90 unwind label %169

90:                                               ; preds = %89
  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.4)
          to label %91 unwind label %171

91:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #6
  store i32 224, ptr %23, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %92 unwind label %173

92:                                               ; preds = %91
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %93 unwind label %175

93:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %94 unwind label %177

94:                                               ; preds = %93
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.12, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %95 unwind label %179

95:                                               ; preds = %94
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %96 unwind label %181

96:                                               ; preds = %95
  %97 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %10, ptr noundef nonnull %24, i32 noundef 0)
          to label %.critedge418 unwind label %183

98:                                               ; preds = %76, %69
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  br label %.critedge439

.critedge418:                                     ; preds = %96
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %.critedge439

.critedge439:                                     ; preds = %98, %.critedge418
  %99 = getelementptr inbounds i8, ptr %0, i64 112
  %100 = load ptr, ptr %99, align 8, !tbaa !17
  %101 = load ptr, ptr %100, align 8, !tbaa !21
  %102 = getelementptr inbounds i8, ptr %101, i64 152
  %103 = load ptr, ptr %102, align 8
  %104 = call noundef zeroext i1 %103(ptr noundef nonnull align 8 dereferenceable(152) %100)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #6
  br i1 %104, label %105, label %120

105:                                              ; preds = %.critedge439
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %106 unwind label %198

106:                                              ; preds = %105
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.1)
          to label %107 unwind label %200

107:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @__FUNCTION__._ZN9LayerApex14finitLayerApexEdddddbb, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %108 unwind label %202

108:                                              ; preds = %107
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %109 unwind label %204

109:                                              ; preds = %108
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.2)
          to label %110 unwind label %206

110:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %111 unwind label %208

111:                                              ; preds = %110
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %112 unwind label %210

112:                                              ; preds = %111
  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.4)
          to label %113 unwind label %212

113:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #6
  store i32 225, ptr %42, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__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) %42)
          to label %114 unwind label %214

114:                                              ; preds = %113
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %41)
          to label %115 unwind label %216

115:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %116 unwind label %218

116:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.13, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %117 unwind label %220

117:                                              ; preds = %116
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %46)
          to label %118 unwind label %222

118:                                              ; preds = %117
  %119 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %29, ptr noundef nonnull %43, i32 noundef 0)
          to label %.critedge454 unwind label %224

120:                                              ; preds = %.critedge439
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  br label %.critedge475

.critedge454:                                     ; preds = %118
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  br label %.critedge475

.critedge475:                                     ; preds = %120, %.critedge454
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #6
  %121 = select i1 %6, double %2, double %3
  store double %121, ptr %48, align 8, !tbaa !5
  %122 = load ptr, ptr %99, align 8, !tbaa !17
  %123 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %122)
  %124 = call noundef zeroext i1 @_ZNK4Elem12isTrappedOilEv(ptr noundef nonnull align 8 dereferenceable(408) %123)
  %125 = load ptr, ptr %99, align 8, !tbaa !17
  %126 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %125)
  %127 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %126)
  %128 = load i32, ptr %127, align 8, !tbaa !19
  %129 = icmp sgt i32 %128, -1
  %130 = load i8, ptr %70, align 1, !tbaa !9, !range !15, !noundef !16
  %131 = trunc nuw i8 %130 to i1
  %132 = or i1 %124, %129
  %133 = xor i1 %132, true
  %or.cond = select i1 %131, i1 true, i1 %133
  br i1 %or.cond, label %134, label %280

134:                                              ; preds = %.critedge475
  %135 = getelementptr inbounds i8, ptr %0, i64 120
  call void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144) %0, ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %9, double noundef %1, double noundef %5, i1 noundef zeroext false)
  %136 = load double, ptr %135, align 8, !tbaa !23
  %137 = getelementptr inbounds i8, ptr %0, i64 128
  %138 = load ptr, ptr %137, align 8, !tbaa !24
  %139 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %138)
  %140 = fcmp ule double %136, %139
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %62) #6
  br i1 %140, label %141, label %156

141:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %142 unwind label %239

142:                                              ; preds = %141
  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.1)
          to label %143 unwind label %241

143:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @__FUNCTION__._ZN9LayerApex14finitLayerApexEdddddbb, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %144 unwind label %243

144:                                              ; preds = %143
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %57)
          to label %145 unwind label %245

145:                                              ; preds = %144
  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.2)
          to label %146 unwind label %247

146:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %60) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %147 unwind label %249

147:                                              ; preds = %146
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %59)
          to label %148 unwind label %251

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

149:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #6
  store i32 235, ptr %62, align 4, !tbaa !20
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 4 dereferenceable(4) %62)
          to label %150 unwind label %255

150:                                              ; preds = %149
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %151 unwind label %257

151:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %152 unwind label %259

152:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %67) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull @.str.14, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %153 unwind label %261

153:                                              ; preds = %152
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %154 unwind label %263

154:                                              ; preds = %153
  %155 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %49, ptr noundef nonnull %63, i32 noundef 0)
          to label %.critedge490 unwind label %265

156:                                              ; preds = %134
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #6
  br label %.critedge511

.critedge490:                                     ; preds = %154
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #6
  br label %.critedge511

.critedge511:                                     ; preds = %156, %.critedge490
  store i8 0, ptr %70, align 1, !tbaa !9
  br label %280

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

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

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

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

165:                                              ; preds = %87
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %193

167:                                              ; preds = %88
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %192

169:                                              ; preds = %89
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %191

171:                                              ; preds = %90
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %190

173:                                              ; preds = %91
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %189

175:                                              ; preds = %92
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %188

177:                                              ; preds = %93
  %178 = landingpad { ptr, i32 }
          cleanup
  br label %187

179:                                              ; preds = %94
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %186

181:                                              ; preds = %95
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %185

183:                                              ; preds = %96
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %185

185:                                              ; preds = %181, %183
  %.pn = phi { ptr, i32 } [ %184, %183 ], [ %182, %181 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %186

186:                                              ; preds = %179, %185
  %.pn.pn = phi { ptr, i32 } [ %.pn, %185 ], [ %180, %179 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %187

187:                                              ; preds = %177, %186
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %186 ], [ %178, %177 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %188

188:                                              ; preds = %175, %187
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %187 ], [ %176, %175 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %189

189:                                              ; preds = %188, %173
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %188 ], [ %174, %173 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %190

190:                                              ; preds = %171, %189
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %189 ], [ %172, %171 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %191

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

192:                                              ; preds = %167, %191
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %191 ], [ %168, %167 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %193

193:                                              ; preds = %165, %192
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %192 ], [ %166, %165 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %194

194:                                              ; preds = %163, %193
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %193 ], [ %164, %163 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %195

195:                                              ; preds = %161, %194
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %194 ], [ %162, %161 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %196

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

197:                                              ; preds = %157, %196
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %196 ], [ %158, %157 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  br label %320

198:                                              ; preds = %105
  %199 = landingpad { ptr, i32 }
          cleanup
  br label %238

200:                                              ; preds = %106
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %237

202:                                              ; preds = %107
  %203 = landingpad { ptr, i32 }
          cleanup
  br label %236

204:                                              ; preds = %108
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %235

206:                                              ; preds = %109
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %234

208:                                              ; preds = %110
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %233

210:                                              ; preds = %111
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %232

212:                                              ; preds = %112
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %231

214:                                              ; preds = %113
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %230

216:                                              ; preds = %114
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %229

218:                                              ; preds = %115
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %228

220:                                              ; preds = %116
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %227

222:                                              ; preds = %117
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %226

224:                                              ; preds = %118
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %226

226:                                              ; preds = %222, %224
  %.pn375 = phi { ptr, i32 } [ %225, %224 ], [ %223, %222 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %227

227:                                              ; preds = %220, %226
  %.pn375.pn = phi { ptr, i32 } [ %.pn375, %226 ], [ %221, %220 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  br label %228

228:                                              ; preds = %218, %227
  %.pn375.pn.pn = phi { ptr, i32 } [ %.pn375.pn, %227 ], [ %219, %218 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %229

229:                                              ; preds = %216, %228
  %.pn375.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn, %228 ], [ %217, %216 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %230

230:                                              ; preds = %229, %214
  %.pn375.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn, %229 ], [ %215, %214 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %231

231:                                              ; preds = %212, %230
  %.pn375.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn, %230 ], [ %213, %212 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %232

232:                                              ; preds = %210, %231
  %.pn375.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn, %231 ], [ %211, %210 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  br label %233

233:                                              ; preds = %208, %232
  %.pn375.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn, %232 ], [ %209, %208 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %234

234:                                              ; preds = %206, %233
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn, %233 ], [ %207, %206 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %235

235:                                              ; preds = %204, %234
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn, %234 ], [ %205, %204 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %236

236:                                              ; preds = %202, %235
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn, %235 ], [ %203, %202 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %237

237:                                              ; preds = %200, %236
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %236 ], [ %201, %200 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  br label %238

238:                                              ; preds = %198, %237
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %237 ], [ %199, %198 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  br label %320

239:                                              ; preds = %141
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %279

241:                                              ; preds = %142
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %278

243:                                              ; preds = %143
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %277

245:                                              ; preds = %144
  %246 = landingpad { ptr, i32 }
          cleanup
  br label %276

247:                                              ; preds = %145
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %275

249:                                              ; preds = %146
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %274

251:                                              ; preds = %147
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %273

253:                                              ; preds = %148
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %272

255:                                              ; preds = %149
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %271

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

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

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

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

265:                                              ; preds = %154
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %267

267:                                              ; preds = %263, %265
  %.pn389 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %268

268:                                              ; preds = %261, %267
  %.pn389.pn = phi { ptr, i32 } [ %.pn389, %267 ], [ %262, %261 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %67) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %269

269:                                              ; preds = %259, %268
  %.pn389.pn.pn = phi { ptr, i32 } [ %.pn389.pn, %268 ], [ %260, %259 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  br label %270

270:                                              ; preds = %257, %269
  %.pn389.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn, %269 ], [ %258, %257 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #6
  br label %271

271:                                              ; preds = %270, %255
  %.pn389.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn, %270 ], [ %256, %255 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %62) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #6
  br label %272

272:                                              ; preds = %253, %271
  %.pn389.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn, %271 ], [ %254, %253 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %273

273:                                              ; preds = %251, %272
  %.pn389.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn, %272 ], [ %252, %251 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %274

274:                                              ; preds = %249, %273
  %.pn389.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn, %273 ], [ %250, %249 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %60) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  br label %275

275:                                              ; preds = %247, %274
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn, %274 ], [ %248, %247 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %276

276:                                              ; preds = %245, %275
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn, %275 ], [ %246, %245 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #6
  br label %277

277:                                              ; preds = %243, %276
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn, %276 ], [ %244, %243 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #6
  br label %278

278:                                              ; preds = %241, %277
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %277 ], [ %242, %241 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %279

279:                                              ; preds = %239, %278
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %278 ], [ %240, %239 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #6
  br label %320

280:                                              ; preds = %.critedge475, %.critedge511
  %281 = load double, ptr %9, align 8, !tbaa !5
  %282 = fsub double %3, %281
  %283 = call double @cos(double noundef %282) #6
  %284 = fmul double %283, %5
  %285 = getelementptr inbounds i8, ptr %0, i64 120
  %286 = load double, ptr %285, align 8, !tbaa !23
  %287 = load double, ptr %9, align 8, !tbaa !5
  %288 = call double @sin(double noundef %287) #6
  %289 = fmul double %286, %288
  %290 = fdiv double %284, %289
  %291 = getelementptr inbounds i8, ptr %0, i64 48
  store double %290, ptr %291, align 8, !tbaa !25
  %292 = load double, ptr %9, align 8, !tbaa !5
  %293 = fsub double %2, %292
  %294 = call double @cos(double noundef %293) #6
  %295 = fmul double %294, %5
  %296 = load double, ptr %285, align 8, !tbaa !23
  %297 = load double, ptr %9, align 8, !tbaa !5
  %298 = call double @sin(double noundef %297) #6
  %299 = fmul double %296, %298
  %300 = fdiv double %295, %299
  %301 = getelementptr inbounds i8, ptr %0, i64 56
  store double %300, ptr %301, align 8, !tbaa !26
  %302 = load double, ptr %285, align 8, !tbaa !23
  %303 = getelementptr inbounds i8, ptr %0, i64 128
  %304 = load ptr, ptr %303, align 8, !tbaa !24
  %305 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %304)
  %306 = fcmp uge double %302, %305
  br i1 %306, label %318, label %307

307:                                              ; preds = %280
  %308 = 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.15)
  %309 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  %310 = 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.9)
  %311 = load double, ptr %285, align 8, !tbaa !23
  %312 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %310, double noundef %311)
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef nonnull @.str.16)
  %314 = load ptr, ptr %303, align 8, !tbaa !24
  %315 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %314)
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %313, double noundef %315)
  %317 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  br label %318

318:                                              ; preds = %280, %307
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #6
  br label %319

319:                                              ; preds = %8, %318
  %.1 = phi i1 [ %306, %318 ], [ true, %8 ]
  ret i1 %.1

320:                                              ; preds = %238, %197, %279
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %279 ], [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %238 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %197 ]
  resume { ptr, i32 } %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK4Elem12isTrappedOilEv(ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { 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 #5 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 83}
!10 = !{!"_ZTS4Apex", !11, i64 8, !6, i64 16, !6, i64 24, !12, i64 32, !13, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !11, i64 80, !11, i64 81, !11, i64 82, !11, i64 83, !14, i64 88}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTSSt4pairIidE", !13, i64 0, !6, i64 8}
!15 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !12, i64 112}
!18 = !{!"_ZTS9LayerApex", !10, i64 0, !13, i64 104, !12, i64 112, !6, i64 120, !12, i64 128, !6, i64 136}
!19 = !{!14, !13, i64 0}
!20 = !{!13, !13, i64 0}
!21 = !{!22, !22, i64 0}
!22 = !{!"vtable pointer", !8, i64 0}
!23 = !{!18, !6, i64 120}
!24 = !{!18, !12, i64 128}
!25 = !{!10, !6, i64 48}
!26 = !{!10, !6, i64 56}


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