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

; 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.7" = type { i8 }
%class.VoidElem = type { %class.ElemModel, double, double, double, double }
%class.ElemModel = type { ptr, double, double, ptr, ptr, double, ptr, i8, i8, i8, i8, i32, double, double, double, double, double, double, double, %"struct.std::pair", %"struct.std::pair" }
%"struct.std::pair" = type { double, double }
%class.Polygon = type { %class.VoidElem, i32, %"class.std::vector.16", ptr, ptr, i16, i8, double }
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.LayerApex = type { %class.Apex, i32, ptr, double, ptr, double }
%class.Apex = type { ptr, i8, double, double, ptr, i32, double, double, double, double, i8, i8, i8, i8, %"struct.std::pair.0" }
%"struct.std::pair.0" = type { i32, 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 [97 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
@_ZN9ElemModel2PIE = external constant double, align 8
@__FUNCTION__._ZNK7Polygon24calcSnapOffPressureDrainEv = external hidden unnamed_addr constant [25 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [14 x i8], align 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) #0

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #3 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)) #3

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZNK7Polygon24calcSnapOffPressureDrainEv(ptr noundef nonnull align 8 dereferenceable(248) %0) #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca double, align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca i1, align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca i1, align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca i1, align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca i1, align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca i1, align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca i1, align 1
  %17 = alloca %"class.std::allocator.7", align 1
  %18 = alloca i1, align 1
  %19 = alloca i1, align 1
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i1, align 1
  %23 = alloca i1, align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca i1, align 1
  %26 = alloca %"class.std::allocator.7", align 1
  %27 = alloca i1, align 1
  %28 = alloca i1, align 1
  %29 = alloca i1, align 1
  %30 = alloca i1, align 1
  %31 = alloca i1, align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca i1, align 1
  %34 = alloca %"class.std::allocator.7", align 1
  %35 = alloca i1, align 1
  %36 = alloca i1, align 1
  %37 = alloca i1, align 1
  %38 = alloca i1, align 1
  %39 = alloca i1, align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca i1, align 1
  %42 = alloca i32, align 4
  %43 = alloca i1, align 1
  %44 = alloca i1, align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca i1, align 1
  %48 = alloca %"class.std::allocator.7", align 1
  %49 = alloca i1, align 1
  %50 = alloca i1, align 1
  %51 = alloca i1, align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca i1, align 1
  %54 = alloca %"class.std::allocator.7", align 1
  %55 = alloca i1, align 1
  %56 = alloca i1, align 1
  %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::__cxx11::basic_string", align 8
  %63 = alloca i1, align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca i1, align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca i1, align 1
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca i1, align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca i1, align 1
  %72 = alloca %"class.std::allocator.7", align 1
  %73 = alloca i1, align 1
  %74 = alloca i1, align 1
  %75 = alloca i1, align 1
  %76 = alloca i1, align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca i1, align 1
  %79 = alloca %"class.std::allocator.7", align 1
  %80 = alloca i1, align 1
  %81 = alloca i1, align 1
  %82 = alloca i1, align 1
  %83 = alloca i1, align 1
  %84 = alloca i1, align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca i1, align 1
  %87 = alloca %"class.std::allocator.7", align 1
  %88 = alloca i1, align 1
  %89 = alloca i1, align 1
  %90 = alloca i1, align 1
  %91 = alloca i1, align 1
  %92 = alloca i1, align 1
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca i1, align 1
  %95 = alloca i32, align 4
  %96 = alloca i1, align 1
  %97 = alloca i1, align 1
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca i1, align 1
  %101 = alloca %"class.std::allocator.7", align 1
  %102 = alloca i1, align 1
  %103 = alloca i1, align 1
  %104 = alloca i1, align 1
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca i1, align 1
  %107 = alloca %"class.std::allocator.7", align 1
  %108 = alloca i1, align 1
  %109 = alloca i1, align 1
  %110 = alloca i1, align 1
  %111 = alloca i1, align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  %112 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #6
  %113 = getelementptr inbounds %class.VoidElem, ptr %112, i32 0, i32 4
  %114 = load double, ptr %113, align 8, !tbaa !9
  %115 = load double, ptr @_ZN9ElemModel2PIE, align 8, !tbaa !16
  %116 = fdiv double %115, 2.000000e+00
  %117 = getelementptr inbounds %class.Polygon, ptr %112, i32 0, i32 2
  %118 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %117, i64 noundef 0) #6
  %119 = load double, ptr %118, align 8, !tbaa !16
  %120 = fadd double %116, %119
  %121 = fcmp ogt double %114, %120
  br i1 %121, label %122, label %421

122:                                              ; preds = %1
  %123 = load ptr, ptr %112, align 8, !tbaa !17
  %124 = getelementptr inbounds ptr, ptr %123, i64 28
  %125 = load ptr, ptr %124, align 8
  %126 = call noundef double %125(ptr noundef nonnull align 8 dereferenceable(248) %112)
  store double %126, ptr %3, align 8, !tbaa !16
  %127 = load double, ptr %3, align 8, !tbaa !16
  %128 = fcmp une double %127, 0.000000e+00
  store i1 false, ptr %6, align 1
  store i1 false, ptr %8, align 1
  store i1 false, ptr %10, align 1
  store i1 false, ptr %12, align 1
  store i1 false, ptr %14, align 1
  store i1 false, ptr %16, align 1
  store i1 false, ptr %18, align 1
  store i1 false, ptr %19, align 1
  store i1 false, ptr %22, align 1
  store i1 false, ptr %23, align 1
  store i1 false, ptr %25, align 1
  store i1 false, ptr %27, align 1
  store i1 false, ptr %28, align 1
  store i1 false, ptr %29, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %31, align 1
  store i1 false, ptr %33, align 1
  store i1 false, ptr %35, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %37, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %41, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #6
  store i1 false, ptr %43, align 1
  store i1 false, ptr %44, 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 %53, align 1
  store i1 false, ptr %55, align 1
  store i1 false, ptr %56, align 1
  store i1 false, ptr %57, align 1
  store i1 false, ptr %58, align 1
  br i1 %128, label %145, label %129

129:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #6
  store i1 true, ptr %6, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #6
  store i1 true, ptr %8, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #6
  store i1 true, ptr %10, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #6
  store i1 true, ptr %12, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #6
  store i1 true, ptr %14, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #6
  store i1 true, ptr %16, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #6
  store i1 true, ptr %18, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  store i1 true, ptr %19, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %130 unwind label %250

130:                                              ; preds = %129
  store i1 true, ptr %22, 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 %13, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.1)
          to label %131 unwind label %254

131:                                              ; preds = %130
  store i1 true, ptr %23, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #6
  store i1 true, ptr %25, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #6
  store i1 true, ptr %27, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  store i1 true, ptr %28, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @__FUNCTION__._ZNK7Polygon24calcSnapOffPressureDrainEv, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %132 unwind label %258

132:                                              ; preds = %131
  store i1 true, ptr %29, 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 %11, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %133 unwind label %262

133:                                              ; preds = %132
  store i1 true, ptr %30, 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 %9, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.2)
          to label %134 unwind label %266

134:                                              ; preds = %133
  store i1 true, ptr %31, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #6
  store i1 true, ptr %33, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #6
  store i1 true, ptr %35, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  store i1 true, ptr %36, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %135 unwind label %270

135:                                              ; preds = %134
  store i1 true, ptr %37, 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 %7, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %136 unwind label %274

136:                                              ; preds = %135
  store i1 true, ptr %38, 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 %5, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.4)
          to label %137 unwind label %278

137:                                              ; preds = %136
  store i1 true, ptr %39, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #6
  store i1 true, ptr %41, align 1
  store i32 608, ptr %42, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %138 unwind label %282

138:                                              ; preds = %137
  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 %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %139 unwind label %286

139:                                              ; preds = %138
  store i1 true, ptr %44, 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.5, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %140 unwind label %290

140:                                              ; preds = %139
  store i1 true, ptr %51, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #6
  store i1 true, ptr %53, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #6
  store i1 true, ptr %55, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  store i1 true, ptr %56, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %141 unwind label %294

141:                                              ; preds = %140
  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 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %142 unwind label %298

142:                                              ; preds = %141
  store i1 true, ptr %58, align 1
  %143 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %4, ptr noundef %45, i32 noundef 0)
          to label %144 unwind label %302

144:                                              ; preds = %142
  br label %145

145:                                              ; preds = %144, %122
  %146 = phi i1 [ true, %122 ], [ %143, %144 ]
  %147 = xor i1 %146, true
  %148 = load i1, ptr %58, align 1
  br i1 %148, label %149, label %150

149:                                              ; preds = %145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %150

150:                                              ; preds = %149, %145
  %151 = load i1, ptr %57, align 1
  br i1 %151, label %152, label %153

152:                                              ; preds = %150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  br label %153

153:                                              ; preds = %152, %150
  %154 = load i1, ptr %56, align 1
  br i1 %154, label %155, label %156

155:                                              ; preds = %153
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  br label %156

156:                                              ; preds = %155, %153
  %157 = load i1, ptr %55, align 1
  br i1 %157, label %158, label %159

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

159:                                              ; preds = %158, %156
  %160 = load i1, ptr %53, align 1
  br i1 %160, label %161, label %162

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

162:                                              ; preds = %161, %159
  %163 = load i1, ptr %51, align 1
  br i1 %163, label %164, label %165

164:                                              ; preds = %162
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %165

165:                                              ; preds = %164, %162
  %166 = load i1, ptr %50, align 1
  br i1 %166, label %167, label %168

167:                                              ; preds = %165
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  br label %168

168:                                              ; preds = %167, %165
  %169 = load i1, ptr %49, align 1
  br i1 %169, label %170, label %171

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

171:                                              ; preds = %170, %168
  %172 = load i1, ptr %47, align 1
  br i1 %172, label %173, label %174

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

174:                                              ; preds = %173, %171
  %175 = load i1, ptr %44, align 1
  br i1 %175, label %176, label %177

176:                                              ; preds = %174
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %177

177:                                              ; preds = %176, %174
  %178 = load i1, ptr %43, align 1
  br i1 %178, label %179, label %180

179:                                              ; preds = %177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %180

180:                                              ; preds = %179, %177
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  %181 = load i1, ptr %41, align 1
  br i1 %181, label %182, label %183

182:                                              ; preds = %180
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #6
  br label %183

183:                                              ; preds = %182, %180
  %184 = load i1, ptr %39, align 1
  br i1 %184, label %185, label %186

185:                                              ; preds = %183
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %186

186:                                              ; preds = %185, %183
  %187 = load i1, ptr %38, align 1
  br i1 %187, label %188, label %189

188:                                              ; preds = %186
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %189

189:                                              ; preds = %188, %186
  %190 = load i1, ptr %37, align 1
  br i1 %190, label %191, label %192

191:                                              ; preds = %189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %192

192:                                              ; preds = %191, %189
  %193 = load i1, ptr %36, align 1
  br i1 %193, label %194, label %195

194:                                              ; preds = %192
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  br label %195

195:                                              ; preds = %194, %192
  %196 = load i1, ptr %35, align 1
  br i1 %196, label %197, label %198

197:                                              ; preds = %195
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #6
  br label %198

198:                                              ; preds = %197, %195
  %199 = load i1, ptr %33, align 1
  br i1 %199, label %200, label %201

200:                                              ; preds = %198
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #6
  br label %201

201:                                              ; preds = %200, %198
  %202 = load i1, ptr %31, align 1
  br i1 %202, label %203, label %204

203:                                              ; preds = %201
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %204

204:                                              ; preds = %203, %201
  %205 = load i1, ptr %30, align 1
  br i1 %205, label %206, label %207

206:                                              ; preds = %204
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %207

207:                                              ; preds = %206, %204
  %208 = load i1, ptr %29, align 1
  br i1 %208, label %209, label %210

209:                                              ; preds = %207
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %210

210:                                              ; preds = %209, %207
  %211 = load i1, ptr %28, align 1
  br i1 %211, label %212, label %213

212:                                              ; preds = %210
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  br label %213

213:                                              ; preds = %212, %210
  %214 = load i1, ptr %27, align 1
  br i1 %214, label %215, label %216

215:                                              ; preds = %213
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #6
  br label %216

216:                                              ; preds = %215, %213
  %217 = load i1, ptr %25, align 1
  br i1 %217, label %218, label %219

218:                                              ; preds = %216
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #6
  br label %219

219:                                              ; preds = %218, %216
  %220 = load i1, ptr %23, align 1
  br i1 %220, label %221, label %222

221:                                              ; preds = %219
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  br label %222

222:                                              ; preds = %221, %219
  %223 = load i1, ptr %22, align 1
  br i1 %223, label %224, label %225

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

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

227:                                              ; preds = %225
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  br label %228

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

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

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

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

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

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

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

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

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

242:                                              ; preds = %240
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #6
  br label %243

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

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

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

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

249:                                              ; preds = %248, %246
  br label %730

250:                                              ; preds = %129
  %251 = landingpad { ptr, i32 }
          cleanup
  %252 = extractvalue { ptr, i32 } %251, 0
  store ptr %252, ptr %20, align 8
  %253 = extractvalue { ptr, i32 } %251, 1
  store i32 %253, ptr %21, align 4
  br label %396

254:                                              ; preds = %130
  %255 = landingpad { ptr, i32 }
          cleanup
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %20, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %21, align 4
  br label %392

258:                                              ; preds = %131
  %259 = landingpad { ptr, i32 }
          cleanup
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %20, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %21, align 4
  br label %379

262:                                              ; preds = %132
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %20, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %21, align 4
  br label %375

266:                                              ; preds = %133
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %20, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %21, align 4
  br label %371

270:                                              ; preds = %134
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %20, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %21, align 4
  br label %358

274:                                              ; preds = %135
  %275 = landingpad { ptr, i32 }
          cleanup
  %276 = extractvalue { ptr, i32 } %275, 0
  store ptr %276, ptr %20, align 8
  %277 = extractvalue { ptr, i32 } %275, 1
  store i32 %277, ptr %21, align 4
  br label %354

278:                                              ; preds = %136
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %20, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %21, align 4
  br label %350

282:                                              ; preds = %137
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %20, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %21, align 4
  br label %343

286:                                              ; preds = %138
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %20, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %21, align 4
  br label %339

290:                                              ; preds = %139
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %20, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %21, align 4
  br label %326

294:                                              ; preds = %140
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %20, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %21, align 4
  br label %313

298:                                              ; preds = %141
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %20, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %21, align 4
  br label %309

302:                                              ; preds = %142
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %20, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %21, align 4
  %306 = load i1, ptr %58, align 1
  br i1 %306, label %307, label %308

307:                                              ; preds = %302
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %308

308:                                              ; preds = %307, %302
  br label %309

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

311:                                              ; preds = %309
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #6
  br label %312

312:                                              ; preds = %311, %309
  br label %313

313:                                              ; preds = %312, %294
  %314 = load i1, ptr %56, align 1
  br i1 %314, label %315, label %316

315:                                              ; preds = %313
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #6
  br label %316

316:                                              ; preds = %315, %313
  %317 = load i1, ptr %55, align 1
  br i1 %317, label %318, label %319

318:                                              ; preds = %316
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #6
  br label %319

319:                                              ; preds = %318, %316
  %320 = load i1, ptr %53, align 1
  br i1 %320, label %321, label %322

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

322:                                              ; preds = %321, %319
  %323 = load i1, ptr %51, align 1
  br i1 %323, label %324, label %325

324:                                              ; preds = %322
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %325

325:                                              ; preds = %324, %322
  br label %326

326:                                              ; preds = %325, %290
  %327 = load i1, ptr %50, align 1
  br i1 %327, label %328, label %329

328:                                              ; preds = %326
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  br label %329

329:                                              ; preds = %328, %326
  %330 = load i1, ptr %49, align 1
  br i1 %330, label %331, label %332

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

332:                                              ; preds = %331, %329
  %333 = load i1, ptr %47, align 1
  br i1 %333, label %334, label %335

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

335:                                              ; preds = %334, %332
  %336 = load i1, ptr %44, align 1
  br i1 %336, label %337, label %338

337:                                              ; preds = %335
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %338

338:                                              ; preds = %337, %335
  br label %339

339:                                              ; preds = %338, %286
  %340 = load i1, ptr %43, align 1
  br i1 %340, label %341, label %342

341:                                              ; preds = %339
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %342

342:                                              ; preds = %341, %339
  br label %343

343:                                              ; preds = %342, %282
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #6
  %344 = load i1, ptr %41, align 1
  br i1 %344, label %345, label %346

345:                                              ; preds = %343
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #6
  br label %346

346:                                              ; preds = %345, %343
  %347 = load i1, ptr %39, align 1
  br i1 %347, label %348, label %349

348:                                              ; preds = %346
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %349

349:                                              ; preds = %348, %346
  br label %350

350:                                              ; preds = %349, %278
  %351 = load i1, ptr %38, align 1
  br i1 %351, label %352, label %353

352:                                              ; preds = %350
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %353

353:                                              ; preds = %352, %350
  br label %354

354:                                              ; preds = %353, %274
  %355 = load i1, ptr %37, align 1
  br i1 %355, label %356, label %357

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

357:                                              ; preds = %356, %354
  br label %358

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

360:                                              ; preds = %358
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #6
  br label %361

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

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

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

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

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

369:                                              ; preds = %367
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %370

370:                                              ; preds = %369, %367
  br label %371

371:                                              ; preds = %370, %266
  %372 = load i1, ptr %30, align 1
  br i1 %372, label %373, label %374

373:                                              ; preds = %371
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  br label %374

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

375:                                              ; preds = %374, %262
  %376 = load i1, ptr %29, align 1
  br i1 %376, label %377, label %378

377:                                              ; preds = %375
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %378

378:                                              ; preds = %377, %375
  br label %379

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

381:                                              ; preds = %379
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #6
  br label %382

382:                                              ; preds = %381, %379
  %383 = load i1, ptr %27, align 1
  br i1 %383, label %384, label %385

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

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

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

388:                                              ; preds = %387, %385
  %389 = load i1, ptr %23, 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) %13) #6
  br label %391

391:                                              ; preds = %390, %388
  br label %392

392:                                              ; preds = %391, %254
  %393 = load i1, ptr %22, align 1
  br i1 %393, label %394, label %395

394:                                              ; preds = %392
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %395

395:                                              ; preds = %394, %392
  br label %396

396:                                              ; preds = %395, %250
  %397 = load i1, ptr %19, align 1
  br i1 %397, label %398, label %399

398:                                              ; preds = %396
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #6
  br label %399

399:                                              ; preds = %398, %396
  %400 = load i1, ptr %18, align 1
  br i1 %400, label %401, label %402

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

402:                                              ; preds = %401, %399
  %403 = load i1, ptr %16, align 1
  br i1 %403, label %404, label %405

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

405:                                              ; preds = %404, %402
  %406 = load i1, ptr %14, align 1
  br i1 %406, label %407, label %408

407:                                              ; preds = %405
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #6
  br label %408

408:                                              ; preds = %407, %405
  %409 = load i1, ptr %12, align 1
  br i1 %409, label %410, label %411

410:                                              ; preds = %408
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #6
  br label %411

411:                                              ; preds = %410, %408
  %412 = load i1, ptr %10, align 1
  br i1 %412, label %413, label %414

413:                                              ; preds = %411
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #6
  br label %414

414:                                              ; preds = %413, %411
  %415 = load i1, ptr %8, align 1
  br i1 %415, label %416, label %417

416:                                              ; preds = %414
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #6
  br label %417

417:                                              ; preds = %416, %414
  %418 = load i1, ptr %6, align 1
  br i1 %418, label %419, label %420

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

420:                                              ; preds = %419, %417
  br label %743

421:                                              ; preds = %1
  %422 = getelementptr inbounds %class.Polygon, ptr %112, i32 0, i32 4
  %423 = load ptr, ptr %422, align 8, !tbaa !20
  %424 = getelementptr inbounds %class.LayerApex, ptr %423, i64 0
  %425 = call noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %424)
  store double %425, ptr %3, align 8, !tbaa !16
  %426 = load double, ptr %3, align 8, !tbaa !16
  %427 = fcmp ogt double %426, 0.000000e+00
  store i1 false, ptr %61, align 1
  store i1 false, ptr %63, 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 %71, align 1
  store i1 false, ptr %73, align 1
  store i1 false, ptr %74, align 1
  store i1 false, ptr %75, align 1
  store i1 false, ptr %76, align 1
  store i1 false, ptr %78, align 1
  store i1 false, ptr %80, align 1
  store i1 false, ptr %81, align 1
  store i1 false, ptr %82, align 1
  store i1 false, ptr %83, align 1
  store i1 false, ptr %84, align 1
  store i1 false, ptr %86, 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 %91, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %94, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #6
  store i1 false, ptr %96, align 1
  store i1 false, ptr %97, 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 %106, align 1
  store i1 false, ptr %108, align 1
  store i1 false, ptr %109, align 1
  store i1 false, ptr %110, align 1
  store i1 false, ptr %111, align 1
  br i1 %427, label %444, label %428

428:                                              ; preds = %421
  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 32, ptr %62) #6
  store i1 true, ptr %63, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #6
  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 32, ptr %68) #6
  store i1 true, ptr %69, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #6
  store i1 true, ptr %71, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #6
  store i1 true, ptr %73, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  store i1 true, ptr %74, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %72)
          to label %429 unwind label %558

429:                                              ; preds = %428
  store i1 true, ptr %75, 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 %68, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef @.str.1)
          to label %430 unwind label %562

430:                                              ; preds = %429
  store i1 true, ptr %76, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #6
  store i1 true, ptr %78, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #6
  store i1 true, ptr %80, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  store i1 true, ptr %81, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef @__FUNCTION__._ZNK7Polygon24calcSnapOffPressureDrainEv, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %431 unwind label %566

431:                                              ; preds = %430
  store i1 true, ptr %82, 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 %66, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %432 unwind label %570

432:                                              ; preds = %431
  store i1 true, ptr %83, 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 %64, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.2)
          to label %433 unwind label %574

433:                                              ; preds = %432
  store i1 true, ptr %84, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #6
  store i1 true, ptr %86, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #6
  store i1 true, ptr %88, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #6
  store i1 true, ptr %89, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %434 unwind label %578

434:                                              ; preds = %433
  store i1 true, ptr %90, 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 %62, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %435 unwind label %582

435:                                              ; preds = %434
  store i1 true, ptr %91, 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 %60, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.4)
          to label %436 unwind label %586

436:                                              ; preds = %435
  store i1 true, ptr %92, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #6
  store i1 true, ptr %94, align 1
  store i32 613, ptr %95, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 4 dereferenceable(4) %95)
          to label %437 unwind label %590

437:                                              ; preds = %436
  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 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %438 unwind label %594

438:                                              ; preds = %437
  store i1 true, ptr %97, 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.5, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %439 unwind label %598

439:                                              ; preds = %438
  store i1 true, ptr %104, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #6
  store i1 true, ptr %106, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #6
  store i1 true, ptr %108, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #6
  store i1 true, ptr %109, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %107)
          to label %440 unwind label %602

440:                                              ; preds = %439
  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 %98, ptr noundef nonnull align 8 dereferenceable(32) %99, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %441 unwind label %606

441:                                              ; preds = %440
  store i1 true, ptr %111, align 1
  %442 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %59, ptr noundef %98, i32 noundef 0)
          to label %443 unwind label %610

443:                                              ; preds = %441
  br label %444

444:                                              ; preds = %443, %421
  %445 = phi i1 [ true, %421 ], [ %442, %443 ]
  %446 = xor i1 %445, true
  %447 = load i1, ptr %111, align 1
  br i1 %447, label %448, label %449

448:                                              ; preds = %444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  br label %449

449:                                              ; preds = %448, %444
  %450 = load i1, ptr %110, align 1
  br i1 %450, label %451, label %452

451:                                              ; preds = %449
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  br label %452

452:                                              ; preds = %451, %449
  %453 = load i1, ptr %109, align 1
  br i1 %453, label %454, label %455

454:                                              ; preds = %452
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #6
  br label %455

455:                                              ; preds = %454, %452
  %456 = load i1, ptr %108, align 1
  br i1 %456, label %457, label %458

457:                                              ; preds = %455
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #6
  br label %458

458:                                              ; preds = %457, %455
  %459 = load i1, ptr %106, align 1
  br i1 %459, label %460, label %461

460:                                              ; preds = %458
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #6
  br label %461

461:                                              ; preds = %460, %458
  %462 = load i1, ptr %104, align 1
  br i1 %462, label %463, label %464

463:                                              ; preds = %461
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  br label %464

464:                                              ; preds = %463, %461
  %465 = load i1, ptr %103, align 1
  br i1 %465, label %466, label %467

466:                                              ; preds = %464
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #6
  br label %467

467:                                              ; preds = %466, %464
  %468 = load i1, ptr %102, align 1
  br i1 %468, label %469, label %470

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

470:                                              ; preds = %469, %467
  %471 = load i1, ptr %100, align 1
  br i1 %471, label %472, label %473

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

473:                                              ; preds = %472, %470
  %474 = load i1, ptr %97, align 1
  br i1 %474, label %475, label %476

475:                                              ; preds = %473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %476

476:                                              ; preds = %475, %473
  %477 = load i1, ptr %96, align 1
  br i1 %477, label %478, label %479

478:                                              ; preds = %476
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %479

479:                                              ; preds = %478, %476
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #6
  %480 = load i1, ptr %94, align 1
  br i1 %480, label %481, label %482

481:                                              ; preds = %479
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  br label %482

482:                                              ; preds = %481, %479
  %483 = load i1, ptr %92, align 1
  br i1 %483, label %484, label %485

484:                                              ; preds = %482
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %485

485:                                              ; preds = %484, %482
  %486 = load i1, ptr %91, align 1
  br i1 %486, label %487, label %488

487:                                              ; preds = %485
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %488

488:                                              ; preds = %487, %485
  %489 = load i1, ptr %90, align 1
  br i1 %489, label %490, label %491

490:                                              ; preds = %488
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  br label %491

491:                                              ; preds = %490, %488
  %492 = load i1, ptr %89, align 1
  br i1 %492, label %493, label %494

493:                                              ; preds = %491
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #6
  br label %494

494:                                              ; preds = %493, %491
  %495 = load i1, ptr %88, align 1
  br i1 %495, label %496, label %497

496:                                              ; preds = %494
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #6
  br label %497

497:                                              ; preds = %496, %494
  %498 = load i1, ptr %86, align 1
  br i1 %498, label %499, label %500

499:                                              ; preds = %497
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #6
  br label %500

500:                                              ; preds = %499, %497
  %501 = load i1, ptr %84, align 1
  br i1 %501, label %502, label %503

502:                                              ; preds = %500
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %503

503:                                              ; preds = %502, %500
  %504 = load i1, ptr %83, align 1
  br i1 %504, label %505, label %506

505:                                              ; preds = %503
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %506

506:                                              ; preds = %505, %503
  %507 = load i1, ptr %82, align 1
  br i1 %507, label %508, label %509

508:                                              ; preds = %506
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %509

509:                                              ; preds = %508, %506
  %510 = load i1, ptr %81, align 1
  br i1 %510, label %511, label %512

511:                                              ; preds = %509
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  br label %512

512:                                              ; preds = %511, %509
  %513 = load i1, ptr %80, align 1
  br i1 %513, label %514, label %515

514:                                              ; preds = %512
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #6
  br label %515

515:                                              ; preds = %514, %512
  %516 = load i1, ptr %78, align 1
  br i1 %516, label %517, label %518

517:                                              ; preds = %515
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #6
  br label %518

518:                                              ; preds = %517, %515
  %519 = load i1, ptr %76, align 1
  br i1 %519, label %520, label %521

520:                                              ; preds = %518
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %521

521:                                              ; preds = %520, %518
  %522 = load i1, ptr %75, align 1
  br i1 %522, label %523, label %524

523:                                              ; preds = %521
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %524

524:                                              ; preds = %523, %521
  %525 = load i1, ptr %74, align 1
  br i1 %525, label %526, label %527

526:                                              ; preds = %524
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  br label %527

527:                                              ; preds = %526, %524
  %528 = load i1, ptr %73, align 1
  br i1 %528, label %529, label %530

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

530:                                              ; preds = %529, %527
  %531 = load i1, ptr %71, align 1
  br i1 %531, label %532, label %533

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

533:                                              ; preds = %532, %530
  %534 = load i1, ptr %69, align 1
  br i1 %534, label %535, label %536

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

536:                                              ; preds = %535, %533
  %537 = load i1, ptr %67, align 1
  br i1 %537, label %538, label %539

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

539:                                              ; preds = %538, %536
  %540 = load i1, ptr %65, align 1
  br i1 %540, label %541, label %542

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

542:                                              ; preds = %541, %539
  %543 = load i1, ptr %63, align 1
  br i1 %543, label %544, label %545

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

545:                                              ; preds = %544, %542
  %546 = load i1, ptr %61, align 1
  br i1 %546, label %547, label %548

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

548:                                              ; preds = %547, %545
  %549 = load double, ptr %3, align 8, !tbaa !16
  %550 = fcmp ole double %549, 0.000000e+00
  br i1 %550, label %551, label %729

551:                                              ; preds = %548
  %552 = getelementptr inbounds %class.Polygon, ptr %112, i32 0, i32 4
  %553 = load ptr, ptr %552, align 8, !tbaa !20
  %554 = getelementptr inbounds %class.LayerApex, ptr %553, i64 0
  %555 = call noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %554)
  %556 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, double noundef %555)
  %557 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %556, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %729

558:                                              ; preds = %428
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %20, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %21, align 4
  br label %704

562:                                              ; preds = %429
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %20, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %21, align 4
  br label %700

566:                                              ; preds = %430
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %20, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %21, align 4
  br label %687

570:                                              ; preds = %431
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %20, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %21, align 4
  br label %683

574:                                              ; preds = %432
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %20, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %21, align 4
  br label %679

578:                                              ; preds = %433
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %20, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %21, align 4
  br label %666

582:                                              ; preds = %434
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %20, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %21, align 4
  br label %662

586:                                              ; preds = %435
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %20, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %21, align 4
  br label %658

590:                                              ; preds = %436
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %20, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %21, align 4
  br label %651

594:                                              ; preds = %437
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %20, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %21, align 4
  br label %647

598:                                              ; preds = %438
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %20, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %21, align 4
  br label %634

602:                                              ; preds = %439
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %20, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %21, align 4
  br label %621

606:                                              ; preds = %440
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %20, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %21, align 4
  br label %617

610:                                              ; preds = %441
  %611 = landingpad { ptr, i32 }
          cleanup
  %612 = extractvalue { ptr, i32 } %611, 0
  store ptr %612, ptr %20, align 8
  %613 = extractvalue { ptr, i32 } %611, 1
  store i32 %613, ptr %21, align 4
  %614 = load i1, ptr %111, align 1
  br i1 %614, label %615, label %616

615:                                              ; preds = %610
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  br label %616

616:                                              ; preds = %615, %610
  br label %617

617:                                              ; preds = %616, %606
  %618 = load i1, ptr %110, align 1
  br i1 %618, label %619, label %620

619:                                              ; preds = %617
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #6
  br label %620

620:                                              ; preds = %619, %617
  br label %621

621:                                              ; preds = %620, %602
  %622 = load i1, ptr %109, align 1
  br i1 %622, label %623, label %624

623:                                              ; preds = %621
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %107) #6
  br label %624

624:                                              ; preds = %623, %621
  %625 = load i1, ptr %108, align 1
  br i1 %625, label %626, label %627

626:                                              ; preds = %624
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #6
  br label %627

627:                                              ; preds = %626, %624
  %628 = load i1, ptr %106, align 1
  br i1 %628, label %629, label %630

629:                                              ; preds = %627
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #6
  br label %630

630:                                              ; preds = %629, %627
  %631 = load i1, ptr %104, align 1
  br i1 %631, label %632, label %633

632:                                              ; preds = %630
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #6
  br label %633

633:                                              ; preds = %632, %630
  br label %634

634:                                              ; preds = %633, %598
  %635 = load i1, ptr %103, align 1
  br i1 %635, label %636, label %637

636:                                              ; preds = %634
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #6
  br label %637

637:                                              ; preds = %636, %634
  %638 = load i1, ptr %102, align 1
  br i1 %638, label %639, label %640

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

640:                                              ; preds = %639, %637
  %641 = load i1, ptr %100, align 1
  br i1 %641, label %642, label %643

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

643:                                              ; preds = %642, %640
  %644 = load i1, ptr %97, align 1
  br i1 %644, label %645, label %646

645:                                              ; preds = %643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #6
  br label %646

646:                                              ; preds = %645, %643
  br label %647

647:                                              ; preds = %646, %594
  %648 = load i1, ptr %96, align 1
  br i1 %648, label %649, label %650

649:                                              ; preds = %647
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #6
  br label %650

650:                                              ; preds = %649, %647
  br label %651

651:                                              ; preds = %650, %590
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #6
  %652 = load i1, ptr %94, align 1
  br i1 %652, label %653, label %654

653:                                              ; preds = %651
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #6
  br label %654

654:                                              ; preds = %653, %651
  %655 = load i1, ptr %92, align 1
  br i1 %655, label %656, label %657

656:                                              ; preds = %654
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #6
  br label %657

657:                                              ; preds = %656, %654
  br label %658

658:                                              ; preds = %657, %586
  %659 = load i1, ptr %91, align 1
  br i1 %659, label %660, label %661

660:                                              ; preds = %658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #6
  br label %661

661:                                              ; preds = %660, %658
  br label %662

662:                                              ; preds = %661, %582
  %663 = load i1, ptr %90, align 1
  br i1 %663, label %664, label %665

664:                                              ; preds = %662
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #6
  br label %665

665:                                              ; preds = %664, %662
  br label %666

666:                                              ; preds = %665, %578
  %667 = load i1, ptr %89, align 1
  br i1 %667, label %668, label %669

668:                                              ; preds = %666
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #6
  br label %669

669:                                              ; preds = %668, %666
  %670 = load i1, ptr %88, align 1
  br i1 %670, label %671, label %672

671:                                              ; preds = %669
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #6
  br label %672

672:                                              ; preds = %671, %669
  %673 = load i1, ptr %86, align 1
  br i1 %673, label %674, label %675

674:                                              ; preds = %672
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #6
  br label %675

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

677:                                              ; preds = %675
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %678

678:                                              ; preds = %677, %675
  br label %679

679:                                              ; preds = %678, %574
  %680 = load i1, ptr %83, align 1
  br i1 %680, label %681, label %682

681:                                              ; preds = %679
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %682

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

683:                                              ; preds = %682, %570
  %684 = load i1, ptr %82, align 1
  br i1 %684, label %685, label %686

685:                                              ; preds = %683
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %686

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

687:                                              ; preds = %686, %566
  %688 = load i1, ptr %81, align 1
  br i1 %688, label %689, label %690

689:                                              ; preds = %687
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #6
  br label %690

690:                                              ; preds = %689, %687
  %691 = load i1, ptr %80, align 1
  br i1 %691, label %692, label %693

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

693:                                              ; preds = %692, %690
  %694 = load i1, ptr %78, align 1
  br i1 %694, label %695, label %696

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

696:                                              ; preds = %695, %693
  %697 = load i1, ptr %76, align 1
  br i1 %697, label %698, label %699

698:                                              ; preds = %696
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %699

699:                                              ; preds = %698, %696
  br label %700

700:                                              ; preds = %699, %562
  %701 = load i1, ptr %75, align 1
  br i1 %701, label %702, label %703

702:                                              ; preds = %700
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %703

703:                                              ; preds = %702, %700
  br label %704

704:                                              ; preds = %703, %558
  %705 = load i1, ptr %74, align 1
  br i1 %705, label %706, label %707

706:                                              ; preds = %704
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %72) #6
  br label %707

707:                                              ; preds = %706, %704
  %708 = load i1, ptr %73, align 1
  br i1 %708, label %709, label %710

709:                                              ; preds = %707
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #6
  br label %710

710:                                              ; preds = %709, %707
  %711 = load i1, ptr %71, align 1
  br i1 %711, label %712, label %713

712:                                              ; preds = %710
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #6
  br label %713

713:                                              ; preds = %712, %710
  %714 = load i1, ptr %69, align 1
  br i1 %714, label %715, label %716

715:                                              ; preds = %713
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #6
  br label %716

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

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

719:                                              ; preds = %718, %716
  %720 = load i1, ptr %65, align 1
  br i1 %720, label %721, label %722

721:                                              ; preds = %719
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #6
  br label %722

722:                                              ; preds = %721, %719
  %723 = load i1, ptr %63, align 1
  br i1 %723, label %724, label %725

724:                                              ; preds = %722
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #6
  br label %725

725:                                              ; preds = %724, %722
  %726 = load i1, ptr %61, align 1
  br i1 %726, label %727, label %728

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

728:                                              ; preds = %727, %725
  br label %743

729:                                              ; preds = %551, %548
  br label %730

730:                                              ; preds = %729, %249
  %731 = load double, ptr %3, align 8, !tbaa !16
  %732 = getelementptr inbounds %class.ElemModel, ptr %112, i32 0, i32 3
  %733 = load ptr, ptr %732, align 8, !tbaa !27
  %734 = load ptr, ptr %733, align 8, !tbaa !17
  %735 = getelementptr inbounds ptr, ptr %734, i64 11
  %736 = load ptr, ptr %735, align 8
  %737 = call noundef double %736(ptr noundef nonnull align 8 dereferenceable(408) %733)
  %738 = getelementptr inbounds %class.ElemModel, ptr %112, i32 0, i32 4
  %739 = load ptr, ptr %738, align 8, !tbaa !28
  %740 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %739)
  %741 = fneg double %737
  %742 = call double @llvm.fmuladd.f64(double %741, double %740, double %731)
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #6
  ret double %742

743:                                              ; preds = %728, %420
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #6
  br label %744

744:                                              ; preds = %743
  %745 = load ptr, ptr %20, align 8
  %746 = load i32, ptr %21, align 4
  %747 = insertvalue { ptr, i32 } poison, ptr %745, 0
  %748 = insertvalue { ptr, i32 } %747, i32 %746, 1
  resume { ptr, i32 } %748
}

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104)) #5 align 2

attributes #0 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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, !12, i64 176}
!10 = !{!"_ZTS8VoidElem", !11, i64 0, !12, i64 152, !12, i64 160, !12, i64 168, !12, i64 176}
!11 = !{!"_ZTS9ElemModel", !12, i64 8, !12, i64 16, !6, i64 24, !6, i64 32, !12, i64 40, !6, i64 48, !13, i64 56, !13, i64 57, !13, i64 58, !13, i64 59, !14, i64 60, !12, i64 64, !12, i64 72, !12, i64 80, !12, i64 88, !12, i64 96, !12, i64 104, !12, i64 112, !15, i64 120, !15, i64 136}
!12 = !{!"double", !7, i64 0}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"int", !7, i64 0}
!15 = !{!"_ZTSSt4pairIddE", !12, i64 0, !12, i64 8}
!16 = !{!12, !12, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"vtable pointer", !8, i64 0}
!19 = !{!14, !14, i64 0}
!20 = !{!21, !6, i64 224}
!21 = !{!"_ZTS7Polygon", !10, i64 0, !14, i64 184, !22, i64 192, !6, i64 216, !6, i64 224, !26, i64 232, !7, i64 234, !12, i64 240}
!22 = !{!"_ZTSSt6vectorIdSaIdEE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!26 = !{!"short", !7, i64 0}
!27 = !{!11, !6, i64 24}
!28 = !{!11, !6, i64 32}


; 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.7" = 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 [97 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
@_ZN9ElemModel2PIE = external local_unnamed_addr constant double, align 8
@__FUNCTION__._ZNK7Polygon24calcSnapOffPressureDrainEv = external hidden unnamed_addr constant [25 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [14 x i8], align 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 #0

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

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

; Function Attrs: 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 #0

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 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 #3 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 #3

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZNK7Polygon24calcSnapOffPressureDrainEv(ptr noundef nonnull align 8 dereferenceable(248) %0) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.7", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.7", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator.7", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i32, align 4
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator.7", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.7", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator.7", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::allocator.7", align 1
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator.7", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca i32, align 4
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator.7", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator.7", align 1
  %40 = getelementptr inbounds i8, ptr %0, i64 176
  %41 = load double, ptr %40, align 8, !tbaa !5
  %42 = load double, ptr @_ZN9ElemModel2PIE, align 8, !tbaa !15
  %43 = fmul double %42, 5.000000e-01
  %44 = getelementptr inbounds i8, ptr %0, i64 192
  %45 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %44, i64 noundef 0) #6
  %46 = load double, ptr %45, align 8, !tbaa !15
  %47 = fadd double %43, %46
  %48 = fcmp ogt double %41, %47
  br i1 %48, label %49, label %112

49:                                               ; preds = %1
  %50 = load ptr, ptr %0, align 8, !tbaa !16
  %51 = getelementptr inbounds i8, ptr %50, i64 224
  %52 = load ptr, ptr %51, align 8
  %53 = tail call noundef double %52(ptr noundef nonnull align 8 dereferenceable(248) %0)
  %54 = fcmp oeq double %53, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  br i1 %54, label %55, label %70

55:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %56 unwind label %71

56:                                               ; preds = %55
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.1)
          to label %57 unwind label %73

57:                                               ; preds = %56
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @__FUNCTION__._ZNK7Polygon24calcSnapOffPressureDrainEv, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %58 unwind label %75

58:                                               ; preds = %57
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %59 unwind label %77

59:                                               ; preds = %58
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.2)
          to label %60 unwind label %79

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

61:                                               ; preds = %60
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %62 unwind label %83

62:                                               ; preds = %61
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.4)
          to label %63 unwind label %85

63:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #6
  store i32 608, ptr %15, align 4, !tbaa !18
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %64 unwind label %87

64:                                               ; preds = %63
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %65 unwind label %89

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

66:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.23, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %67 unwind label %93

67:                                               ; preds = %66
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %68 unwind label %95

68:                                               ; preds = %67
  %69 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %2, ptr noundef nonnull %16, i32 noundef 0)
          to label %.critedge280 unwind label %97

70:                                               ; preds = %49
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  br label %.critedge301

.critedge280:                                     ; preds = %68
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br label %.critedge301

71:                                               ; preds = %55
  %72 = landingpad { ptr, i32 }
          cleanup
  br label %111

73:                                               ; preds = %56
  %74 = landingpad { ptr, i32 }
          cleanup
  br label %110

75:                                               ; preds = %57
  %76 = landingpad { ptr, i32 }
          cleanup
  br label %109

77:                                               ; preds = %58
  %78 = landingpad { ptr, i32 }
          cleanup
  br label %108

79:                                               ; preds = %59
  %80 = landingpad { ptr, i32 }
          cleanup
  br label %107

81:                                               ; preds = %60
  %82 = landingpad { ptr, i32 }
          cleanup
  br label %106

83:                                               ; preds = %61
  %84 = landingpad { ptr, i32 }
          cleanup
  br label %105

85:                                               ; preds = %62
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %104

87:                                               ; preds = %63
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %103

89:                                               ; preds = %64
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %102

91:                                               ; preds = %65
  %92 = landingpad { ptr, i32 }
          cleanup
  br label %101

93:                                               ; preds = %66
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %100

95:                                               ; preds = %67
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %99

97:                                               ; preds = %68
  %98 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %99

99:                                               ; preds = %95, %97
  %.pn253 = phi { ptr, i32 } [ %98, %97 ], [ %96, %95 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #6
  br label %100

100:                                              ; preds = %93, %99
  %.pn253.pn = phi { ptr, i32 } [ %.pn253, %99 ], [ %94, %93 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %101

101:                                              ; preds = %91, %100
  %.pn253.pn.pn = phi { ptr, i32 } [ %.pn253.pn, %100 ], [ %92, %91 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #6
  br label %102

102:                                              ; preds = %89, %101
  %.pn253.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn, %101 ], [ %90, %89 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %103

103:                                              ; preds = %102, %87
  %.pn253.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn, %102 ], [ %88, %87 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %104

104:                                              ; preds = %85, %103
  %.pn253.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn, %103 ], [ %86, %85 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %105

105:                                              ; preds = %83, %104
  %.pn253.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn.pn, %104 ], [ %84, %83 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %106

106:                                              ; preds = %81, %105
  %.pn253.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn.pn.pn, %105 ], [ %82, %81 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %107

107:                                              ; preds = %79, %106
  %.pn253.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn.pn.pn.pn, %106 ], [ %80, %79 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %108

108:                                              ; preds = %77, %107
  %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn.pn.pn.pn.pn, %107 ], [ %78, %77 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %109

109:                                              ; preds = %75, %108
  %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn, %108 ], [ %76, %75 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %110

110:                                              ; preds = %73, %109
  %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %109 ], [ %74, %73 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  br label %111

111:                                              ; preds = %71, %110
  %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %110 ], [ %72, %71 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  br label %191

112:                                              ; preds = %1
  %113 = getelementptr inbounds i8, ptr %0, i64 224
  %114 = load ptr, ptr %113, align 8, !tbaa !19
  %115 = tail call noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %114)
  %116 = fcmp ule double %115, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  br i1 %116, label %117, label %132

117:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #6
  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, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %118 unwind label %139

118:                                              ; preds = %117
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull @.str.1)
          to label %119 unwind label %141

119:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %30) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @__FUNCTION__._ZNK7Polygon24calcSnapOffPressureDrainEv, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %120 unwind label %143

120:                                              ; preds = %119
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %121 unwind label %145

121:                                              ; preds = %120
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.2)
          to label %122 unwind label %147

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %123 unwind label %149

123:                                              ; preds = %122
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %124 unwind label %151

124:                                              ; preds = %123
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.4)
          to label %125 unwind label %153

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #6
  store i32 613, ptr %34, align 4, !tbaa !18
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 4 dereferenceable(4) %34)
          to label %126 unwind label %155

126:                                              ; preds = %125
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %127 unwind label %157

127:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %128 unwind label %159

128:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.24, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %129 unwind label %161

129:                                              ; preds = %128
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %130 unwind label %163

130:                                              ; preds = %129
  %131 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %21, ptr noundef nonnull %35, i32 noundef 0)
          to label %.critedge316 unwind label %165

132:                                              ; preds = %112
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  br label %.critedge337

.critedge316:                                     ; preds = %130
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  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) %25) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  br label %.critedge337

.critedge337:                                     ; preds = %132, %.critedge316
  %133 = fcmp ugt double %115, 0.000000e+00
  br i1 %133, label %.critedge301, label %134

134:                                              ; preds = %.critedge337
  %135 = load ptr, ptr %113, align 8, !tbaa !19
  %136 = call noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %135)
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, double noundef %136)
  %138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %.critedge301

139:                                              ; preds = %117
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %179

141:                                              ; preds = %118
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %178

143:                                              ; preds = %119
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %177

145:                                              ; preds = %120
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %176

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

149:                                              ; preds = %122
  %150 = landingpad { ptr, i32 }
          cleanup
  br label %174

151:                                              ; preds = %123
  %152 = landingpad { ptr, i32 }
          cleanup
  br label %173

153:                                              ; preds = %124
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %172

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

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

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

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

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

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

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

168:                                              ; preds = %161, %167
  %.pn.pn = phi { ptr, i32 } [ %.pn, %167 ], [ %162, %161 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %169

169:                                              ; preds = %159, %168
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %168 ], [ %160, %159 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #6
  br label %170

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

171:                                              ; preds = %170, %155
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %170 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %172

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

173:                                              ; preds = %151, %172
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %172 ], [ %152, %151 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %174

174:                                              ; preds = %149, %173
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %173 ], [ %150, %149 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %175

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

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

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

178:                                              ; preds = %141, %177
  %.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, %177 ], [ %142, %141 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %179

179:                                              ; preds = %139, %178
  %.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, %178 ], [ %140, %139 ]
  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 @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  br label %191

.critedge301:                                     ; preds = %70, %.critedge337, %134, %.critedge280
  %.0237 = phi double [ %53, %.critedge280 ], [ %115, %134 ], [ %115, %.critedge337 ], [ %53, %70 ]
  %180 = getelementptr inbounds i8, ptr %0, i64 24
  %181 = load ptr, ptr %180, align 8, !tbaa !26
  %182 = load ptr, ptr %181, align 8, !tbaa !16
  %183 = getelementptr inbounds i8, ptr %182, i64 88
  %184 = load ptr, ptr %183, align 8
  %185 = call noundef double %184(ptr noundef nonnull align 8 dereferenceable(408) %181)
  %186 = getelementptr inbounds i8, ptr %0, i64 32
  %187 = load ptr, ptr %186, align 8, !tbaa !27
  %188 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %187)
  %189 = fneg double %185
  %190 = call double @llvm.fmuladd.f64(double %189, double %188, double %.0237)
  ret double %190

191:                                              ; preds = %179, %111
  %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %111 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %179 ]
  resume { ptr, i32 } %.pn253.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #4

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #5 align 2

attributes #0 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { 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 #4 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #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, !8, i64 176}
!6 = !{!"_ZTS8VoidElem", !7, i64 0, !8, i64 152, !8, i64 160, !8, i64 168, !8, i64 176}
!7 = !{!"_ZTS9ElemModel", !8, i64 8, !8, i64 16, !11, i64 24, !11, i64 32, !8, i64 40, !11, i64 48, !12, i64 56, !12, i64 57, !12, i64 58, !12, i64 59, !13, i64 60, !8, i64 64, !8, i64 72, !8, i64 80, !8, i64 88, !8, i64 96, !8, i64 104, !8, i64 112, !14, i64 120, !14, i64 136}
!8 = !{!"double", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"any pointer", !9, i64 0}
!12 = !{!"bool", !9, i64 0}
!13 = !{!"int", !9, i64 0}
!14 = !{!"_ZTSSt4pairIddE", !8, i64 0, !8, i64 8}
!15 = !{!8, !8, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"vtable pointer", !10, i64 0}
!18 = !{!13, !13, i64 0}
!19 = !{!20, !11, i64 224}
!20 = !{!"_ZTS7Polygon", !6, i64 0, !13, i64 184, !21, i64 192, !11, i64 216, !11, i64 224, !25, i64 232, !9, i64 234, !8, i64 240}
!21 = !{!"_ZTSSt6vectorIdSaIdEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!25 = !{!"short", !9, i64 0}
!26 = !{!7, !11, i64 24}
!27 = !{!7, !11, i64 32}


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