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

; 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.2" = type { i8 }
%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.VoidElem = type { %class.ElemModel, double, double, double, 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 }
%class.CornerApex = type { %class.Apex, ptr, double, double, double, ptr }

@.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 [100 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
@__FUNCTION__._ZN7Polygon25Pc_pin_disconnectOilLayerEi = external hidden unnamed_addr constant [26 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [7 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

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

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

declare void @_ZN10CornerApex15finitCornerApexEdddddbb(ptr noundef nonnull align 8 dereferenceable(144), double noundef, double noundef, double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext) #4

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

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

173:                                              ; preds = %2
  %174 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 5
  %175 = load i16, ptr %174, align 8, !tbaa !18
  %176 = sext i16 %175 to i32
  %177 = icmp sgt i32 %176, 0
  br i1 %177, label %194, label %178

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

179:                                              ; preds = %178
  store i1 true, ptr %23, 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 %14, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef @.str.1)
          to label %180 unwind label %353

180:                                              ; preds = %179
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #6
  store i1 true, ptr %26, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #6
  store i1 true, ptr %28, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  store i1 true, ptr %29, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @__FUNCTION__._ZN7Polygon25Pc_pin_disconnectOilLayerEi, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %181 unwind label %357

181:                                              ; preds = %180
  store i1 true, ptr %30, 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 %12, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %182 unwind label %361

182:                                              ; preds = %181
  store i1 true, ptr %31, 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 %10, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.2)
          to label %183 unwind label %365

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

184:                                              ; preds = %183
  store i1 true, ptr %38, 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 %8, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %185 unwind label %373

185:                                              ; preds = %184
  store i1 true, ptr %39, 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 %6, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.4)
          to label %186 unwind label %377

186:                                              ; preds = %185
  store i1 true, ptr %40, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #6
  store i1 true, ptr %42, align 1
  store i32 457, ptr %43, align 4, !tbaa !9
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 4 dereferenceable(4) %43)
          to label %187 unwind label %381

187:                                              ; preds = %186
  store i1 true, ptr %44, 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 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %188 unwind label %385

188:                                              ; preds = %187
  store i1 true, ptr %45, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #6
  store i1 true, ptr %48, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #6
  store i1 true, ptr %50, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  store i1 true, ptr %51, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %189 unwind label %389

189:                                              ; preds = %188
  store i1 true, ptr %52, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #6
  store i1 true, ptr %54, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #6
  store i1 true, ptr %56, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  store i1 true, ptr %57, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %55)
          to label %190 unwind label %393

190:                                              ; preds = %189
  store i1 true, ptr %58, 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 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %191 unwind label %397

191:                                              ; preds = %190
  store i1 true, ptr %59, align 1
  %192 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %5, ptr noundef %46, i32 noundef 0)
          to label %193 unwind label %401

193:                                              ; preds = %191
  br label %194

194:                                              ; preds = %193, %173
  %195 = phi i1 [ true, %173 ], [ %192, %193 ]
  %196 = xor i1 %195, true
  %197 = load i1, ptr %59, align 1
  br i1 %197, label %198, label %199

198:                                              ; preds = %194
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %199

199:                                              ; preds = %198, %194
  %200 = load i1, ptr %58, align 1
  br i1 %200, label %201, label %202

201:                                              ; preds = %199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %202

202:                                              ; preds = %201, %199
  %203 = load i1, ptr %57, align 1
  br i1 %203, label %204, label %205

204:                                              ; preds = %202
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #6
  br label %205

205:                                              ; preds = %204, %202
  %206 = load i1, ptr %56, align 1
  br i1 %206, label %207, label %208

207:                                              ; preds = %205
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #6
  br label %208

208:                                              ; preds = %207, %205
  %209 = load i1, ptr %54, align 1
  br i1 %209, label %210, label %211

210:                                              ; preds = %208
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #6
  br label %211

211:                                              ; preds = %210, %208
  %212 = load i1, ptr %52, align 1
  br i1 %212, label %213, label %214

213:                                              ; preds = %211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %214

214:                                              ; preds = %213, %211
  %215 = load i1, ptr %51, align 1
  br i1 %215, label %216, label %217

216:                                              ; preds = %214
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  br label %217

217:                                              ; preds = %216, %214
  %218 = load i1, ptr %50, align 1
  br i1 %218, label %219, label %220

219:                                              ; preds = %217
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #6
  br label %220

220:                                              ; preds = %219, %217
  %221 = load i1, ptr %48, align 1
  br i1 %221, label %222, label %223

222:                                              ; preds = %220
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #6
  br label %223

223:                                              ; preds = %222, %220
  %224 = load i1, ptr %45, align 1
  br i1 %224, label %225, label %226

225:                                              ; preds = %223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %226

226:                                              ; preds = %225, %223
  %227 = load i1, ptr %44, align 1
  br i1 %227, label %228, label %229

228:                                              ; preds = %226
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %229

229:                                              ; preds = %228, %226
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  %230 = load i1, ptr %42, align 1
  br i1 %230, label %231, label %232

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

232:                                              ; preds = %231, %229
  %233 = load i1, ptr %40, align 1
  br i1 %233, label %234, label %235

234:                                              ; preds = %232
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %235

235:                                              ; preds = %234, %232
  %236 = load i1, ptr %39, align 1
  br i1 %236, label %237, label %238

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

238:                                              ; preds = %237, %235
  %239 = load i1, ptr %38, align 1
  br i1 %239, label %240, label %241

240:                                              ; preds = %238
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %241

241:                                              ; preds = %240, %238
  %242 = load i1, ptr %37, align 1
  br i1 %242, label %243, label %244

243:                                              ; preds = %241
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  br label %244

244:                                              ; preds = %243, %241
  %245 = load i1, ptr %36, align 1
  br i1 %245, label %246, label %247

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

247:                                              ; preds = %246, %244
  %248 = load i1, ptr %34, align 1
  br i1 %248, label %249, label %250

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

250:                                              ; preds = %249, %247
  %251 = load i1, ptr %32, align 1
  br i1 %251, label %252, label %253

252:                                              ; preds = %250
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %253

253:                                              ; preds = %252, %250
  %254 = load i1, ptr %31, align 1
  br i1 %254, label %255, label %256

255:                                              ; preds = %253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %256

256:                                              ; preds = %255, %253
  %257 = load i1, ptr %30, align 1
  br i1 %257, label %258, label %259

258:                                              ; preds = %256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %259

259:                                              ; preds = %258, %256
  %260 = load i1, ptr %29, align 1
  br i1 %260, label %261, label %262

261:                                              ; preds = %259
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  br label %262

262:                                              ; preds = %261, %259
  %263 = load i1, ptr %28, align 1
  br i1 %263, label %264, label %265

264:                                              ; preds = %262
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #6
  br label %265

265:                                              ; preds = %264, %262
  %266 = load i1, ptr %26, align 1
  br i1 %266, label %267, label %268

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

268:                                              ; preds = %267, %265
  %269 = load i1, ptr %24, align 1
  br i1 %269, label %270, label %271

270:                                              ; preds = %268
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %271

271:                                              ; preds = %270, %268
  %272 = load i1, ptr %23, align 1
  br i1 %272, label %273, label %274

273:                                              ; preds = %271
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %274

274:                                              ; preds = %273, %271
  %275 = load i1, ptr %20, align 1
  br i1 %275, label %276, label %277

276:                                              ; preds = %274
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #6
  br label %277

277:                                              ; preds = %276, %274
  %278 = load i1, ptr %19, align 1
  br i1 %278, label %279, label %280

279:                                              ; preds = %277
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #6
  br label %280

280:                                              ; preds = %279, %277
  %281 = load i1, ptr %17, align 1
  br i1 %281, label %282, label %283

282:                                              ; preds = %280
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %283

283:                                              ; preds = %282, %280
  %284 = load i1, ptr %15, align 1
  br i1 %284, label %285, label %286

285:                                              ; preds = %283
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  br label %286

286:                                              ; preds = %285, %283
  %287 = load i1, ptr %13, align 1
  br i1 %287, label %288, label %289

288:                                              ; preds = %286
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  br label %289

289:                                              ; preds = %288, %286
  %290 = load i1, ptr %11, align 1
  br i1 %290, label %291, label %292

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

292:                                              ; preds = %291, %289
  %293 = load i1, ptr %9, align 1
  br i1 %293, label %294, label %295

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

295:                                              ; preds = %294, %292
  %296 = load i1, ptr %7, align 1
  br i1 %296, label %297, label %298

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

298:                                              ; preds = %297, %295
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #6
  %299 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 4
  %300 = load ptr, ptr %299, align 8, !tbaa !26
  %301 = load i32, ptr %4, align 4, !tbaa !9
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds %class.LayerApex, ptr %300, i64 %302
  store ptr %303, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  %304 = load ptr, ptr %60, align 8, !tbaa !5
  %305 = call noundef double @_ZNK9LayerApex11layerCollPcEv(ptr noundef nonnull align 8 dereferenceable(144) %304)
  store double %305, ptr %61, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #6
  %306 = getelementptr inbounds %class.ElemModel, ptr %169, i32 0, i32 4
  %307 = load ptr, ptr %306, align 8, !tbaa !28
  %308 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %307)
  store double %308, ptr %62, align 8, !tbaa !27
  %309 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 3
  %310 = load ptr, ptr %309, align 8, !tbaa !29
  %311 = load i32, ptr %4, align 4, !tbaa !9
  %312 = sext i32 %311 to i64
  %313 = getelementptr inbounds %class.CornerApex, ptr %310, i64 %312
  %314 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %313)
  br i1 %314, label %315, label %520

315:                                              ; preds = %298
  %316 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 3
  %317 = load ptr, ptr %316, align 8, !tbaa !29
  %318 = load i32, ptr %4, align 4, !tbaa !9
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds %class.CornerApex, ptr %317, i64 %319
  %321 = load double, ptr %61, align 8, !tbaa !27
  %322 = getelementptr inbounds %class.VoidElem, ptr %169, i32 0, i32 4
  %323 = load double, ptr %322, align 8, !tbaa !30
  %324 = getelementptr inbounds %class.VoidElem, ptr %169, i32 0, i32 3
  %325 = load double, ptr %324, align 8, !tbaa !31
  %326 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 2
  %327 = load i32, ptr %4, align 4, !tbaa !9
  %328 = sext i32 %327 to i64
  %329 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %326, i64 noundef %328) #6
  %330 = load double, ptr %329, align 8, !tbaa !27
  %331 = load double, ptr %62, align 8, !tbaa !27
  call void @_ZN10CornerApex15finitCornerApexEdddddbb(ptr noundef nonnull align 8 dereferenceable(144) %320, double noundef %321, double noundef %323, double noundef %325, double noundef %330, double noundef %331, i1 noundef zeroext false, i1 noundef zeroext false)
  %332 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 3
  %333 = load ptr, ptr %332, align 8, !tbaa !29
  %334 = load i32, ptr %4, align 4, !tbaa !9
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds %class.CornerApex, ptr %333, i64 %335
  %337 = load double, ptr %61, align 8, !tbaa !27
  %338 = getelementptr inbounds %class.VoidElem, ptr %169, i32 0, i32 4
  %339 = load double, ptr %338, align 8, !tbaa !30
  %340 = getelementptr inbounds %class.VoidElem, ptr %169, i32 0, i32 3
  %341 = load double, ptr %340, align 8, !tbaa !31
  %342 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 2
  %343 = load i32, ptr %4, align 4, !tbaa !9
  %344 = sext i32 %343 to i64
  %345 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %342, i64 noundef %344) #6
  %346 = load double, ptr %345, align 8, !tbaa !27
  %347 = load double, ptr %62, align 8, !tbaa !27
  call void @_ZN10CornerApex14initCornerApexEdddddb(ptr noundef nonnull align 8 dereferenceable(144) %336, double noundef %337, double noundef %339, double noundef %341, double noundef %346, double noundef %347, i1 noundef zeroext false)
  %348 = getelementptr inbounds %class.ElemModel, ptr %169, i32 0, i32 9
  store i8 0, ptr %348, align 2, !tbaa !32
  br label %520

349:                                              ; preds = %178
  %350 = landingpad { ptr, i32 }
          cleanup
  %351 = extractvalue { ptr, i32 } %350, 0
  store ptr %351, ptr %21, align 8
  %352 = extractvalue { ptr, i32 } %350, 1
  store i32 %352, ptr %22, align 4
  br label %495

353:                                              ; preds = %179
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %21, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %22, align 4
  br label %491

357:                                              ; preds = %180
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %21, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %22, align 4
  br label %478

361:                                              ; preds = %181
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %21, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %22, align 4
  br label %474

365:                                              ; preds = %182
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %21, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %22, align 4
  br label %470

369:                                              ; preds = %183
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %21, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %22, align 4
  br label %457

373:                                              ; preds = %184
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %21, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %22, align 4
  br label %453

377:                                              ; preds = %185
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %21, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %22, align 4
  br label %449

381:                                              ; preds = %186
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %21, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %22, align 4
  br label %442

385:                                              ; preds = %187
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %21, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %22, align 4
  br label %438

389:                                              ; preds = %188
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %21, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %22, align 4
  br label %425

393:                                              ; preds = %189
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %21, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %22, align 4
  br label %412

397:                                              ; preds = %190
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %21, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %22, align 4
  br label %408

401:                                              ; preds = %191
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %21, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %22, align 4
  %405 = load i1, ptr %59, align 1
  br i1 %405, label %406, label %407

406:                                              ; preds = %401
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %407

407:                                              ; preds = %406, %401
  br label %408

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

410:                                              ; preds = %408
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %411

411:                                              ; preds = %410, %408
  br label %412

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

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

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

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

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

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

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

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

424:                                              ; preds = %423, %421
  br label %425

425:                                              ; preds = %424, %389
  %426 = load i1, ptr %51, align 1
  br i1 %426, label %427, label %428

427:                                              ; preds = %425
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #6
  br label %428

428:                                              ; preds = %427, %425
  %429 = load i1, ptr %50, align 1
  br i1 %429, label %430, label %431

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

431:                                              ; preds = %430, %428
  %432 = load i1, ptr %48, align 1
  br i1 %432, label %433, label %434

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

434:                                              ; preds = %433, %431
  %435 = load i1, ptr %45, align 1
  br i1 %435, label %436, label %437

436:                                              ; preds = %434
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %437

437:                                              ; preds = %436, %434
  br label %438

438:                                              ; preds = %437, %385
  %439 = load i1, ptr %44, align 1
  br i1 %439, label %440, label %441

440:                                              ; preds = %438
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %441

441:                                              ; preds = %440, %438
  br label %442

442:                                              ; preds = %441, %381
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #6
  %443 = load i1, ptr %42, align 1
  br i1 %443, label %444, label %445

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

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

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

448:                                              ; preds = %447, %445
  br label %449

449:                                              ; preds = %448, %377
  %450 = load i1, ptr %39, 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) %8) #6
  br label %452

452:                                              ; preds = %451, %449
  br label %453

453:                                              ; preds = %452, %373
  %454 = load i1, ptr %38, align 1
  br i1 %454, label %455, label %456

455:                                              ; preds = %453
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %456

456:                                              ; preds = %455, %453
  br label %457

457:                                              ; preds = %456, %369
  %458 = load i1, ptr %37, align 1
  br i1 %458, label %459, label %460

459:                                              ; preds = %457
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  br label %460

460:                                              ; preds = %459, %457
  %461 = load i1, ptr %36, align 1
  br i1 %461, label %462, label %463

462:                                              ; preds = %460
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #6
  br label %463

463:                                              ; preds = %462, %460
  %464 = load i1, ptr %34, align 1
  br i1 %464, label %465, label %466

465:                                              ; preds = %463
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #6
  br label %466

466:                                              ; preds = %465, %463
  %467 = load i1, ptr %32, align 1
  br i1 %467, label %468, label %469

468:                                              ; preds = %466
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %469

469:                                              ; preds = %468, %466
  br label %470

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

472:                                              ; preds = %470
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #6
  br label %473

473:                                              ; preds = %472, %470
  br label %474

474:                                              ; preds = %473, %361
  %475 = load i1, ptr %30, align 1
  br i1 %475, label %476, label %477

476:                                              ; preds = %474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %477

477:                                              ; preds = %476, %474
  br label %478

478:                                              ; preds = %477, %357
  %479 = load i1, ptr %29, align 1
  br i1 %479, label %480, label %481

480:                                              ; preds = %478
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  br label %481

481:                                              ; preds = %480, %478
  %482 = load i1, ptr %28, align 1
  br i1 %482, label %483, label %484

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

484:                                              ; preds = %483, %481
  %485 = load i1, ptr %26, align 1
  br i1 %485, label %486, label %487

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

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

489:                                              ; preds = %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %490

490:                                              ; preds = %489, %487
  br label %491

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

493:                                              ; preds = %491
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #6
  br label %494

494:                                              ; preds = %493, %491
  br label %495

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

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

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

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

501:                                              ; preds = %500, %498
  %502 = load i1, ptr %17, align 1
  br i1 %502, label %503, label %504

503:                                              ; preds = %501
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #6
  br label %504

504:                                              ; preds = %503, %501
  %505 = load i1, ptr %15, align 1
  br i1 %505, label %506, label %507

506:                                              ; preds = %504
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #6
  br label %507

507:                                              ; preds = %506, %504
  %508 = load i1, ptr %13, align 1
  br i1 %508, label %509, label %510

509:                                              ; preds = %507
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #6
  br label %510

510:                                              ; preds = %509, %507
  %511 = load i1, ptr %11, align 1
  br i1 %511, label %512, label %513

512:                                              ; preds = %510
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  br label %513

513:                                              ; preds = %512, %510
  %514 = load i1, ptr %9, align 1
  br i1 %514, label %515, label %516

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

516:                                              ; preds = %515, %513
  %517 = load i1, ptr %7, align 1
  br i1 %517, label %518, label %519

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

519:                                              ; preds = %518, %516
  br label %1144

520:                                              ; preds = %315, %298
  %521 = load ptr, ptr %60, align 8, !tbaa !5
  call void @_ZN9LayerApex11removeLayerEv(ptr noundef nonnull align 8 dereferenceable(144) %521)
  %522 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 5
  %523 = load i16, ptr %522, align 8, !tbaa !18
  %524 = add i16 %523, -1
  store i16 %524, ptr %522, align 8, !tbaa !18
  %525 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 5
  %526 = load i16, ptr %525, align 8, !tbaa !18
  %527 = sext i16 %526 to i32
  %528 = icmp sge i32 %527, 0
  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 %75, align 1
  store i1 false, ptr %77, align 1
  store i1 false, ptr %78, align 1
  store i1 false, ptr %79, align 1
  store i1 false, ptr %80, align 1
  store i1 false, ptr %82, align 1
  store i1 false, ptr %84, align 1
  store i1 false, ptr %85, align 1
  store i1 false, ptr %86, align 1
  store i1 false, ptr %87, align 1
  store i1 false, ptr %88, align 1
  store i1 false, ptr %90, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %93, align 1
  store i1 false, ptr %94, align 1
  store i1 false, ptr %95, align 1
  store i1 false, ptr %96, align 1
  store i1 false, ptr %98, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #6
  store i1 false, ptr %100, align 1
  store i1 false, ptr %101, align 1
  store i1 false, ptr %104, align 1
  store i1 false, ptr %106, align 1
  store i1 false, ptr %107, align 1
  store i1 false, ptr %108, align 1
  store i1 false, ptr %110, align 1
  store i1 false, ptr %112, align 1
  store i1 false, ptr %113, align 1
  store i1 false, ptr %114, align 1
  store i1 false, ptr %115, align 1
  br i1 %528, label %529, label %536

529:                                              ; preds = %520
  %530 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 5
  %531 = load i16, ptr %530, align 8, !tbaa !18
  %532 = sext i16 %531 to i32
  %533 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 1
  %534 = load i32, ptr %533, align 8, !tbaa !33
  %535 = icmp slt i32 %532, %534
  br i1 %535, label %552, label %536

536:                                              ; preds = %529, %520
  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 32, ptr %72) #6
  store i1 true, ptr %73, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #6
  store i1 true, ptr %75, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #6
  store i1 true, ptr %77, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #6
  store i1 true, ptr %78, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %537 unwind label %798

537:                                              ; preds = %536
  store i1 true, ptr %79, 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 %72, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef @.str.1)
          to label %538 unwind label %802

538:                                              ; preds = %537
  store i1 true, ptr %80, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #6
  store i1 true, ptr %82, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #6
  store i1 true, ptr %84, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #6
  store i1 true, ptr %85, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @__FUNCTION__._ZN7Polygon25Pc_pin_disconnectOilLayerEi, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %539 unwind label %806

539:                                              ; preds = %538
  store i1 true, ptr %86, 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 %70, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %81)
          to label %540 unwind label %810

540:                                              ; preds = %539
  store i1 true, ptr %87, 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.2)
          to label %541 unwind label %814

541:                                              ; preds = %540
  store i1 true, ptr %88, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #6
  store i1 true, ptr %90, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #6
  store i1 true, ptr %92, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #6
  store i1 true, ptr %93, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %542 unwind label %818

542:                                              ; preds = %541
  store i1 true, ptr %94, 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) %89)
          to label %543 unwind label %822

543:                                              ; preds = %542
  store i1 true, ptr %95, 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.4)
          to label %544 unwind label %826

544:                                              ; preds = %543
  store i1 true, ptr %96, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #6
  store i1 true, ptr %98, align 1
  store i32 472, ptr %99, align 4, !tbaa !9
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 4 dereferenceable(4) %99)
          to label %545 unwind label %830

545:                                              ; preds = %544
  store i1 true, ptr %100, 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 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %546 unwind label %834

546:                                              ; preds = %545
  store i1 true, ptr %101, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #6
  store i1 true, ptr %104, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %105) #6
  store i1 true, ptr %106, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #6
  store i1 true, ptr %107, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %105)
          to label %547 unwind label %838

547:                                              ; preds = %546
  store i1 true, ptr %108, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #6
  store i1 true, ptr %110, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #6
  store i1 true, ptr %112, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #6
  store i1 true, ptr %113, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %548 unwind label %842

548:                                              ; preds = %547
  store i1 true, ptr %114, 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 %102, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %109)
          to label %549 unwind label %846

549:                                              ; preds = %548
  store i1 true, ptr %115, align 1
  %550 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %63, ptr noundef %102, i32 noundef 0)
          to label %551 unwind label %850

551:                                              ; preds = %549
  br label %552

552:                                              ; preds = %551, %529
  %553 = phi i1 [ true, %529 ], [ %550, %551 ]
  %554 = xor i1 %553, true
  %555 = load i1, ptr %115, align 1
  br i1 %555, label %556, label %557

556:                                              ; preds = %552
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #6
  br label %557

557:                                              ; preds = %556, %552
  %558 = load i1, ptr %114, align 1
  br i1 %558, label %559, label %560

559:                                              ; preds = %557
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  br label %560

560:                                              ; preds = %559, %557
  %561 = load i1, ptr %113, align 1
  br i1 %561, label %562, label %563

562:                                              ; preds = %560
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #6
  br label %563

563:                                              ; preds = %562, %560
  %564 = load i1, ptr %112, align 1
  br i1 %564, label %565, label %566

565:                                              ; preds = %563
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #6
  br label %566

566:                                              ; preds = %565, %563
  %567 = load i1, ptr %110, align 1
  br i1 %567, label %568, label %569

568:                                              ; preds = %566
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #6
  br label %569

569:                                              ; preds = %568, %566
  %570 = load i1, ptr %108, align 1
  br i1 %570, label %571, label %572

571:                                              ; preds = %569
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #6
  br label %572

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

574:                                              ; preds = %572
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #6
  br label %575

575:                                              ; preds = %574, %572
  %576 = load i1, ptr %106, align 1
  br i1 %576, label %577, label %578

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

578:                                              ; preds = %577, %575
  %579 = load i1, ptr %104, align 1
  br i1 %579, label %580, label %581

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

581:                                              ; preds = %580, %578
  %582 = load i1, ptr %101, align 1
  br i1 %582, label %583, label %584

583:                                              ; preds = %581
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #6
  br label %584

584:                                              ; preds = %583, %581
  %585 = load i1, ptr %100, align 1
  br i1 %585, label %586, label %587

586:                                              ; preds = %584
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #6
  br label %587

587:                                              ; preds = %586, %584
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #6
  %588 = load i1, ptr %98, align 1
  br i1 %588, label %589, label %590

589:                                              ; preds = %587
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  br label %590

590:                                              ; preds = %589, %587
  %591 = load i1, ptr %96, align 1
  br i1 %591, label %592, label %593

592:                                              ; preds = %590
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %593

593:                                              ; preds = %592, %590
  %594 = load i1, ptr %95, align 1
  br i1 %594, label %595, label %596

595:                                              ; preds = %593
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %596

596:                                              ; preds = %595, %593
  %597 = load i1, ptr %94, align 1
  br i1 %597, label %598, label %599

598:                                              ; preds = %596
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  br label %599

599:                                              ; preds = %598, %596
  %600 = load i1, ptr %93, align 1
  br i1 %600, label %601, label %602

601:                                              ; preds = %599
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #6
  br label %602

602:                                              ; preds = %601, %599
  %603 = load i1, ptr %92, align 1
  br i1 %603, label %604, label %605

604:                                              ; preds = %602
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #6
  br label %605

605:                                              ; preds = %604, %602
  %606 = load i1, ptr %90, align 1
  br i1 %606, label %607, label %608

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

608:                                              ; preds = %607, %605
  %609 = load i1, ptr %88, align 1
  br i1 %609, label %610, label %611

610:                                              ; preds = %608
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %611

611:                                              ; preds = %610, %608
  %612 = load i1, ptr %87, align 1
  br i1 %612, label %613, label %614

613:                                              ; preds = %611
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %614

614:                                              ; preds = %613, %611
  %615 = load i1, ptr %86, align 1
  br i1 %615, label %616, label %617

616:                                              ; preds = %614
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %617

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

619:                                              ; preds = %617
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #6
  br label %620

620:                                              ; preds = %619, %617
  %621 = load i1, ptr %84, align 1
  br i1 %621, label %622, label %623

622:                                              ; preds = %620
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #6
  br label %623

623:                                              ; preds = %622, %620
  %624 = load i1, ptr %82, align 1
  br i1 %624, label %625, label %626

625:                                              ; preds = %623
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #6
  br label %626

626:                                              ; preds = %625, %623
  %627 = load i1, ptr %80, align 1
  br i1 %627, label %628, label %629

628:                                              ; preds = %626
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  br label %629

629:                                              ; preds = %628, %626
  %630 = load i1, ptr %79, align 1
  br i1 %630, label %631, label %632

631:                                              ; preds = %629
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %632

632:                                              ; preds = %631, %629
  %633 = load i1, ptr %78, align 1
  br i1 %633, label %634, label %635

634:                                              ; preds = %632
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #6
  br label %635

635:                                              ; preds = %634, %632
  %636 = load i1, ptr %77, align 1
  br i1 %636, label %637, label %638

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

638:                                              ; preds = %637, %635
  %639 = load i1, ptr %75, align 1
  br i1 %639, label %640, label %641

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

641:                                              ; preds = %640, %638
  %642 = load i1, ptr %73, align 1
  br i1 %642, label %643, label %644

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

644:                                              ; preds = %643, %641
  %645 = load i1, ptr %71, align 1
  br i1 %645, label %646, label %647

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

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

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

650:                                              ; preds = %649, %647
  %651 = load i1, ptr %67, align 1
  br i1 %651, label %652, label %653

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

653:                                              ; preds = %652, %650
  %654 = load i1, ptr %65, align 1
  br i1 %654, label %655, label %656

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

656:                                              ; preds = %655, %653
  %657 = getelementptr inbounds %class.Polygon, ptr %169, i32 0, i32 5
  %658 = load i16, ptr %657, align 8, !tbaa !18
  %659 = icmp ne i16 %658, 0
  br i1 %659, label %1141, label %660

660:                                              ; preds = %656
  %661 = getelementptr inbounds %class.ElemModel, ptr %169, i32 0, i32 9
  %662 = load i8, ptr %661, align 2, !tbaa !32, !range !16, !noundef !17
  %663 = trunc i8 %662 to i1
  store i1 false, ptr %118, align 1
  store i1 false, ptr %120, align 1
  store i1 false, ptr %122, align 1
  store i1 false, ptr %124, align 1
  store i1 false, ptr %126, align 1
  store i1 false, ptr %128, align 1
  store i1 false, ptr %130, align 1
  store i1 false, ptr %131, align 1
  store i1 false, ptr %132, align 1
  store i1 false, ptr %133, align 1
  store i1 false, ptr %135, align 1
  store i1 false, ptr %137, align 1
  store i1 false, ptr %138, align 1
  store i1 false, ptr %139, align 1
  store i1 false, ptr %140, align 1
  store i1 false, ptr %141, align 1
  store i1 false, ptr %143, align 1
  store i1 false, ptr %145, align 1
  store i1 false, ptr %146, align 1
  store i1 false, ptr %147, align 1
  store i1 false, ptr %148, align 1
  store i1 false, ptr %149, align 1
  store i1 false, ptr %151, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #6
  store i1 false, ptr %153, align 1
  store i1 false, ptr %154, align 1
  store i1 false, ptr %157, align 1
  store i1 false, ptr %159, align 1
  store i1 false, ptr %160, align 1
  store i1 false, ptr %161, align 1
  store i1 false, ptr %163, align 1
  store i1 false, ptr %165, align 1
  store i1 false, ptr %166, align 1
  store i1 false, ptr %167, align 1
  store i1 false, ptr %168, align 1
  br i1 %663, label %664, label %680

664:                                              ; preds = %660
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #6
  store i1 true, ptr %118, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %119) #6
  store i1 true, ptr %120, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %121) #6
  store i1 true, ptr %122, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %123) #6
  store i1 true, ptr %124, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #6
  store i1 true, ptr %126, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #6
  store i1 true, ptr %128, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %129) #6
  store i1 true, ptr %130, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #6
  store i1 true, ptr %131, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %129)
          to label %665 unwind label %969

665:                                              ; preds = %664
  store i1 true, ptr %132, 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 %125, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.1)
          to label %666 unwind label %973

666:                                              ; preds = %665
  store i1 true, ptr %133, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %134) #6
  store i1 true, ptr %135, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %136) #6
  store i1 true, ptr %137, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #6
  store i1 true, ptr %138, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef @__FUNCTION__._ZN7Polygon25Pc_pin_disconnectOilLayerEi, ptr noundef nonnull align 1 dereferenceable(1) %136)
          to label %667 unwind label %977

667:                                              ; preds = %666
  store i1 true, ptr %139, 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 %123, ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %668 unwind label %981

668:                                              ; preds = %667
  store i1 true, ptr %140, 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 %121, ptr noundef nonnull align 8 dereferenceable(32) %123, ptr noundef @.str.2)
          to label %669 unwind label %985

669:                                              ; preds = %668
  store i1 true, ptr %141, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #6
  store i1 true, ptr %143, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %144) #6
  store i1 true, ptr %145, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #6
  store i1 true, ptr %146, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %144)
          to label %670 unwind label %989

670:                                              ; preds = %669
  store i1 true, ptr %147, 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 %119, ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %671 unwind label %993

671:                                              ; preds = %670
  store i1 true, ptr %148, 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 %117, ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef @.str.4)
          to label %672 unwind label %997

672:                                              ; preds = %671
  store i1 true, ptr %149, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %150) #6
  store i1 true, ptr %151, align 1
  store i32 475, ptr %152, align 4, !tbaa !9
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %150, ptr noundef nonnull align 4 dereferenceable(4) %152)
          to label %673 unwind label %1001

673:                                              ; preds = %672
  store i1 true, ptr %153, 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 %116, ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %674 unwind label %1005

674:                                              ; preds = %673
  store i1 true, ptr %154, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %156) #6
  store i1 true, ptr %157, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %158) #6
  store i1 true, ptr %159, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %158) #6
  store i1 true, ptr %160, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %158)
          to label %675 unwind label %1009

675:                                              ; preds = %674
  store i1 true, ptr %161, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %162) #6
  store i1 true, ptr %163, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %164) #6
  store i1 true, ptr %165, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  store i1 true, ptr %166, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %164)
          to label %676 unwind label %1013

676:                                              ; preds = %675
  store i1 true, ptr %167, 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 %155, ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %677 unwind label %1017

677:                                              ; preds = %676
  store i1 true, ptr %168, align 1
  %678 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %116, ptr noundef %155, i32 noundef 0)
          to label %679 unwind label %1021

679:                                              ; preds = %677
  br label %680

680:                                              ; preds = %679, %660
  %681 = phi i1 [ true, %660 ], [ %678, %679 ]
  %682 = xor i1 %681, true
  %683 = load i1, ptr %168, align 1
  br i1 %683, label %684, label %685

684:                                              ; preds = %680
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #6
  br label %685

685:                                              ; preds = %684, %680
  %686 = load i1, ptr %167, align 1
  br i1 %686, label %687, label %688

687:                                              ; preds = %685
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #6
  br label %688

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

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

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

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

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

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

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

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

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

702:                                              ; preds = %700
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %158) #6
  br label %703

703:                                              ; preds = %702, %700
  %704 = load i1, ptr %159, align 1
  br i1 %704, label %705, label %706

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

706:                                              ; preds = %705, %703
  %707 = load i1, ptr %157, align 1
  br i1 %707, label %708, label %709

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

709:                                              ; preds = %708, %706
  %710 = load i1, ptr %154, align 1
  br i1 %710, label %711, label %712

711:                                              ; preds = %709
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #6
  br label %712

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

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

715:                                              ; preds = %714, %712
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #6
  %716 = load i1, ptr %151, align 1
  br i1 %716, label %717, label %718

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

718:                                              ; preds = %717, %715
  %719 = load i1, ptr %149, align 1
  br i1 %719, label %720, label %721

720:                                              ; preds = %718
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #6
  br label %721

721:                                              ; preds = %720, %718
  %722 = load i1, ptr %148, align 1
  br i1 %722, label %723, label %724

723:                                              ; preds = %721
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #6
  br label %724

724:                                              ; preds = %723, %721
  %725 = load i1, ptr %147, align 1
  br i1 %725, label %726, label %727

726:                                              ; preds = %724
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #6
  br label %727

727:                                              ; preds = %726, %724
  %728 = load i1, ptr %146, align 1
  br i1 %728, label %729, label %730

729:                                              ; preds = %727
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #6
  br label %730

730:                                              ; preds = %729, %727
  %731 = load i1, ptr %145, align 1
  br i1 %731, label %732, label %733

732:                                              ; preds = %730
  call void @llvm.lifetime.end.p0(i64 1, ptr %144) #6
  br label %733

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

735:                                              ; preds = %733
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #6
  br label %736

736:                                              ; preds = %735, %733
  %737 = load i1, ptr %141, align 1
  br i1 %737, label %738, label %739

738:                                              ; preds = %736
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #6
  br label %739

739:                                              ; preds = %738, %736
  %740 = load i1, ptr %140, align 1
  br i1 %740, label %741, label %742

741:                                              ; preds = %739
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #6
  br label %742

742:                                              ; preds = %741, %739
  %743 = load i1, ptr %139, align 1
  br i1 %743, label %744, label %745

744:                                              ; preds = %742
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #6
  br label %745

745:                                              ; preds = %744, %742
  %746 = load i1, ptr %138, align 1
  br i1 %746, label %747, label %748

747:                                              ; preds = %745
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #6
  br label %748

748:                                              ; preds = %747, %745
  %749 = load i1, ptr %137, align 1
  br i1 %749, label %750, label %751

750:                                              ; preds = %748
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #6
  br label %751

751:                                              ; preds = %750, %748
  %752 = load i1, ptr %135, align 1
  br i1 %752, label %753, label %754

753:                                              ; preds = %751
  call void @llvm.lifetime.end.p0(i64 32, ptr %134) #6
  br label %754

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

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

757:                                              ; preds = %756, %754
  %758 = load i1, ptr %132, align 1
  br i1 %758, label %759, label %760

759:                                              ; preds = %757
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #6
  br label %760

760:                                              ; preds = %759, %757
  %761 = load i1, ptr %131, align 1
  br i1 %761, label %762, label %763

762:                                              ; preds = %760
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #6
  br label %763

763:                                              ; preds = %762, %760
  %764 = load i1, ptr %130, align 1
  br i1 %764, label %765, label %766

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

766:                                              ; preds = %765, %763
  %767 = load i1, ptr %128, align 1
  br i1 %767, label %768, label %769

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

769:                                              ; preds = %768, %766
  %770 = load i1, ptr %126, align 1
  br i1 %770, label %771, label %772

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

772:                                              ; preds = %771, %769
  %773 = load i1, ptr %124, align 1
  br i1 %773, label %774, label %775

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

775:                                              ; preds = %774, %772
  %776 = load i1, ptr %122, align 1
  br i1 %776, label %777, label %778

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

778:                                              ; preds = %777, %775
  %779 = load i1, ptr %120, align 1
  br i1 %779, label %780, label %781

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

781:                                              ; preds = %780, %778
  %782 = load i1, ptr %118, align 1
  br i1 %782, label %783, label %784

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

784:                                              ; preds = %783, %781
  %785 = getelementptr inbounds %class.ElemModel, ptr %169, i32 0, i32 8
  store i8 0, ptr %785, align 1, !tbaa !11
  %786 = load ptr, ptr %169, align 8, !tbaa !34
  %787 = getelementptr inbounds ptr, ptr %786, i64 19
  %788 = load ptr, ptr %787, align 8
  %789 = call noundef zeroext i1 %788(ptr noundef nonnull align 8 dereferenceable(152) %169)
  br i1 %789, label %1140, label %790

790:                                              ; preds = %784
  %791 = getelementptr inbounds %class.ElemModel, ptr %169, i32 0, i32 3
  %792 = load ptr, ptr %791, align 8, !tbaa !36
  %793 = call noundef zeroext i1 @_ZNK4Elem12isTrappedOilEv(ptr noundef nonnull align 8 dereferenceable(408) %792)
  br i1 %793, label %794, label %1140

794:                                              ; preds = %790
  %795 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.44)
  %796 = getelementptr inbounds %class.ElemModel, ptr %169, i32 0, i32 3
  %797 = load ptr, ptr %796, align 8, !tbaa !36
  call void @_ZN4Elem9unTrapOilEv(ptr noundef nonnull align 8 dereferenceable(408) %797)
  br label %1140

798:                                              ; preds = %536
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %21, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %22, align 4
  br label %944

802:                                              ; preds = %537
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %21, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %22, align 4
  br label %940

806:                                              ; preds = %538
  %807 = landingpad { ptr, i32 }
          cleanup
  %808 = extractvalue { ptr, i32 } %807, 0
  store ptr %808, ptr %21, align 8
  %809 = extractvalue { ptr, i32 } %807, 1
  store i32 %809, ptr %22, align 4
  br label %927

810:                                              ; preds = %539
  %811 = landingpad { ptr, i32 }
          cleanup
  %812 = extractvalue { ptr, i32 } %811, 0
  store ptr %812, ptr %21, align 8
  %813 = extractvalue { ptr, i32 } %811, 1
  store i32 %813, ptr %22, align 4
  br label %923

814:                                              ; preds = %540
  %815 = landingpad { ptr, i32 }
          cleanup
  %816 = extractvalue { ptr, i32 } %815, 0
  store ptr %816, ptr %21, align 8
  %817 = extractvalue { ptr, i32 } %815, 1
  store i32 %817, ptr %22, align 4
  br label %919

818:                                              ; preds = %541
  %819 = landingpad { ptr, i32 }
          cleanup
  %820 = extractvalue { ptr, i32 } %819, 0
  store ptr %820, ptr %21, align 8
  %821 = extractvalue { ptr, i32 } %819, 1
  store i32 %821, ptr %22, align 4
  br label %906

822:                                              ; preds = %542
  %823 = landingpad { ptr, i32 }
          cleanup
  %824 = extractvalue { ptr, i32 } %823, 0
  store ptr %824, ptr %21, align 8
  %825 = extractvalue { ptr, i32 } %823, 1
  store i32 %825, ptr %22, align 4
  br label %902

826:                                              ; preds = %543
  %827 = landingpad { ptr, i32 }
          cleanup
  %828 = extractvalue { ptr, i32 } %827, 0
  store ptr %828, ptr %21, align 8
  %829 = extractvalue { ptr, i32 } %827, 1
  store i32 %829, ptr %22, align 4
  br label %898

830:                                              ; preds = %544
  %831 = landingpad { ptr, i32 }
          cleanup
  %832 = extractvalue { ptr, i32 } %831, 0
  store ptr %832, ptr %21, align 8
  %833 = extractvalue { ptr, i32 } %831, 1
  store i32 %833, ptr %22, align 4
  br label %891

834:                                              ; preds = %545
  %835 = landingpad { ptr, i32 }
          cleanup
  %836 = extractvalue { ptr, i32 } %835, 0
  store ptr %836, ptr %21, align 8
  %837 = extractvalue { ptr, i32 } %835, 1
  store i32 %837, ptr %22, align 4
  br label %887

838:                                              ; preds = %546
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %21, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %22, align 4
  br label %874

842:                                              ; preds = %547
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %21, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %22, align 4
  br label %861

846:                                              ; preds = %548
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %21, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %22, align 4
  br label %857

850:                                              ; preds = %549
  %851 = landingpad { ptr, i32 }
          cleanup
  %852 = extractvalue { ptr, i32 } %851, 0
  store ptr %852, ptr %21, align 8
  %853 = extractvalue { ptr, i32 } %851, 1
  store i32 %853, ptr %22, align 4
  %854 = load i1, ptr %115, align 1
  br i1 %854, label %855, label %856

855:                                              ; preds = %850
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #6
  br label %856

856:                                              ; preds = %855, %850
  br label %857

857:                                              ; preds = %856, %846
  %858 = load i1, ptr %114, align 1
  br i1 %858, label %859, label %860

859:                                              ; preds = %857
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #6
  br label %860

860:                                              ; preds = %859, %857
  br label %861

861:                                              ; preds = %860, %842
  %862 = load i1, ptr %113, align 1
  br i1 %862, label %863, label %864

863:                                              ; preds = %861
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #6
  br label %864

864:                                              ; preds = %863, %861
  %865 = load i1, ptr %112, align 1
  br i1 %865, label %866, label %867

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

867:                                              ; preds = %866, %864
  %868 = load i1, ptr %110, align 1
  br i1 %868, label %869, label %870

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

870:                                              ; preds = %869, %867
  %871 = load i1, ptr %108, align 1
  br i1 %871, label %872, label %873

872:                                              ; preds = %870
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #6
  br label %873

873:                                              ; preds = %872, %870
  br label %874

874:                                              ; preds = %873, %838
  %875 = load i1, ptr %107, align 1
  br i1 %875, label %876, label %877

876:                                              ; preds = %874
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %105) #6
  br label %877

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

879:                                              ; preds = %877
  call void @llvm.lifetime.end.p0(i64 1, ptr %105) #6
  br label %880

880:                                              ; preds = %879, %877
  %881 = load i1, ptr %104, align 1
  br i1 %881, label %882, label %883

882:                                              ; preds = %880
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #6
  br label %883

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

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

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

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

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

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

891:                                              ; preds = %890, %830
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #6
  %892 = load i1, ptr %98, align 1
  br i1 %892, label %893, label %894

893:                                              ; preds = %891
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #6
  br label %894

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

896:                                              ; preds = %894
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #6
  br label %897

897:                                              ; preds = %896, %894
  br label %898

898:                                              ; preds = %897, %826
  %899 = load i1, ptr %95, align 1
  br i1 %899, label %900, label %901

900:                                              ; preds = %898
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #6
  br label %901

901:                                              ; preds = %900, %898
  br label %902

902:                                              ; preds = %901, %822
  %903 = load i1, ptr %94, align 1
  br i1 %903, label %904, label %905

904:                                              ; preds = %902
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #6
  br label %905

905:                                              ; preds = %904, %902
  br label %906

906:                                              ; preds = %905, %818
  %907 = load i1, ptr %93, align 1
  br i1 %907, label %908, label %909

908:                                              ; preds = %906
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #6
  br label %909

909:                                              ; preds = %908, %906
  %910 = load i1, ptr %92, align 1
  br i1 %910, label %911, label %912

911:                                              ; preds = %909
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #6
  br label %912

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

914:                                              ; preds = %912
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #6
  br label %915

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

917:                                              ; preds = %915
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #6
  br label %918

918:                                              ; preds = %917, %915
  br label %919

919:                                              ; preds = %918, %814
  %920 = load i1, ptr %87, align 1
  br i1 %920, label %921, label %922

921:                                              ; preds = %919
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #6
  br label %922

922:                                              ; preds = %921, %919
  br label %923

923:                                              ; preds = %922, %810
  %924 = load i1, ptr %86, align 1
  br i1 %924, label %925, label %926

925:                                              ; preds = %923
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %926

926:                                              ; preds = %925, %923
  br label %927

927:                                              ; preds = %926, %806
  %928 = load i1, ptr %85, align 1
  br i1 %928, label %929, label %930

929:                                              ; preds = %927
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #6
  br label %930

930:                                              ; preds = %929, %927
  %931 = load i1, ptr %84, align 1
  br i1 %931, label %932, label %933

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

933:                                              ; preds = %932, %930
  %934 = load i1, ptr %82, align 1
  br i1 %934, label %935, label %936

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

936:                                              ; preds = %935, %933
  %937 = load i1, ptr %80, align 1
  br i1 %937, label %938, label %939

938:                                              ; preds = %936
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  br label %939

939:                                              ; preds = %938, %936
  br label %940

940:                                              ; preds = %939, %802
  %941 = load i1, ptr %79, align 1
  br i1 %941, label %942, label %943

942:                                              ; preds = %940
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #6
  br label %943

943:                                              ; preds = %942, %940
  br label %944

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

946:                                              ; preds = %944
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #6
  br label %947

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

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

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

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

953:                                              ; preds = %952, %950
  %954 = load i1, ptr %73, align 1
  br i1 %954, label %955, label %956

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

956:                                              ; preds = %955, %953
  %957 = load i1, ptr %71, align 1
  br i1 %957, label %958, label %959

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

959:                                              ; preds = %958, %956
  %960 = load i1, ptr %69, align 1
  br i1 %960, label %961, label %962

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

962:                                              ; preds = %961, %959
  %963 = load i1, ptr %67, align 1
  br i1 %963, label %964, label %965

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

965:                                              ; preds = %964, %962
  %966 = load i1, ptr %65, align 1
  br i1 %966, label %967, label %968

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

968:                                              ; preds = %967, %965
  br label %1143

969:                                              ; preds = %664
  %970 = landingpad { ptr, i32 }
          cleanup
  %971 = extractvalue { ptr, i32 } %970, 0
  store ptr %971, ptr %21, align 8
  %972 = extractvalue { ptr, i32 } %970, 1
  store i32 %972, ptr %22, align 4
  br label %1115

973:                                              ; preds = %665
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %21, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %22, align 4
  br label %1111

977:                                              ; preds = %666
  %978 = landingpad { ptr, i32 }
          cleanup
  %979 = extractvalue { ptr, i32 } %978, 0
  store ptr %979, ptr %21, align 8
  %980 = extractvalue { ptr, i32 } %978, 1
  store i32 %980, ptr %22, align 4
  br label %1098

981:                                              ; preds = %667
  %982 = landingpad { ptr, i32 }
          cleanup
  %983 = extractvalue { ptr, i32 } %982, 0
  store ptr %983, ptr %21, align 8
  %984 = extractvalue { ptr, i32 } %982, 1
  store i32 %984, ptr %22, align 4
  br label %1094

985:                                              ; preds = %668
  %986 = landingpad { ptr, i32 }
          cleanup
  %987 = extractvalue { ptr, i32 } %986, 0
  store ptr %987, ptr %21, align 8
  %988 = extractvalue { ptr, i32 } %986, 1
  store i32 %988, ptr %22, align 4
  br label %1090

989:                                              ; preds = %669
  %990 = landingpad { ptr, i32 }
          cleanup
  %991 = extractvalue { ptr, i32 } %990, 0
  store ptr %991, ptr %21, align 8
  %992 = extractvalue { ptr, i32 } %990, 1
  store i32 %992, ptr %22, align 4
  br label %1077

993:                                              ; preds = %670
  %994 = landingpad { ptr, i32 }
          cleanup
  %995 = extractvalue { ptr, i32 } %994, 0
  store ptr %995, ptr %21, align 8
  %996 = extractvalue { ptr, i32 } %994, 1
  store i32 %996, ptr %22, align 4
  br label %1073

997:                                              ; preds = %671
  %998 = landingpad { ptr, i32 }
          cleanup
  %999 = extractvalue { ptr, i32 } %998, 0
  store ptr %999, ptr %21, align 8
  %1000 = extractvalue { ptr, i32 } %998, 1
  store i32 %1000, ptr %22, align 4
  br label %1069

1001:                                             ; preds = %672
  %1002 = landingpad { ptr, i32 }
          cleanup
  %1003 = extractvalue { ptr, i32 } %1002, 0
  store ptr %1003, ptr %21, align 8
  %1004 = extractvalue { ptr, i32 } %1002, 1
  store i32 %1004, ptr %22, align 4
  br label %1062

1005:                                             ; preds = %673
  %1006 = landingpad { ptr, i32 }
          cleanup
  %1007 = extractvalue { ptr, i32 } %1006, 0
  store ptr %1007, ptr %21, align 8
  %1008 = extractvalue { ptr, i32 } %1006, 1
  store i32 %1008, ptr %22, align 4
  br label %1058

1009:                                             ; preds = %674
  %1010 = landingpad { ptr, i32 }
          cleanup
  %1011 = extractvalue { ptr, i32 } %1010, 0
  store ptr %1011, ptr %21, align 8
  %1012 = extractvalue { ptr, i32 } %1010, 1
  store i32 %1012, ptr %22, align 4
  br label %1045

1013:                                             ; preds = %675
  %1014 = landingpad { ptr, i32 }
          cleanup
  %1015 = extractvalue { ptr, i32 } %1014, 0
  store ptr %1015, ptr %21, align 8
  %1016 = extractvalue { ptr, i32 } %1014, 1
  store i32 %1016, ptr %22, align 4
  br label %1032

1017:                                             ; preds = %676
  %1018 = landingpad { ptr, i32 }
          cleanup
  %1019 = extractvalue { ptr, i32 } %1018, 0
  store ptr %1019, ptr %21, align 8
  %1020 = extractvalue { ptr, i32 } %1018, 1
  store i32 %1020, ptr %22, align 4
  br label %1028

1021:                                             ; preds = %677
  %1022 = landingpad { ptr, i32 }
          cleanup
  %1023 = extractvalue { ptr, i32 } %1022, 0
  store ptr %1023, ptr %21, align 8
  %1024 = extractvalue { ptr, i32 } %1022, 1
  store i32 %1024, ptr %22, align 4
  %1025 = load i1, ptr %168, align 1
  br i1 %1025, label %1026, label %1027

1026:                                             ; preds = %1021
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #6
  br label %1027

1027:                                             ; preds = %1026, %1021
  br label %1028

1028:                                             ; preds = %1027, %1017
  %1029 = load i1, ptr %167, align 1
  br i1 %1029, label %1030, label %1031

1030:                                             ; preds = %1028
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #6
  br label %1031

1031:                                             ; preds = %1030, %1028
  br label %1032

1032:                                             ; preds = %1031, %1013
  %1033 = load i1, ptr %166, align 1
  br i1 %1033, label %1034, label %1035

1034:                                             ; preds = %1032
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #6
  br label %1035

1035:                                             ; preds = %1034, %1032
  %1036 = load i1, ptr %165, align 1
  br i1 %1036, label %1037, label %1038

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

1038:                                             ; preds = %1037, %1035
  %1039 = load i1, ptr %163, align 1
  br i1 %1039, label %1040, label %1041

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

1041:                                             ; preds = %1040, %1038
  %1042 = load i1, ptr %161, align 1
  br i1 %1042, label %1043, label %1044

1043:                                             ; preds = %1041
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #6
  br label %1044

1044:                                             ; preds = %1043, %1041
  br label %1045

1045:                                             ; preds = %1044, %1009
  %1046 = load i1, ptr %160, align 1
  br i1 %1046, label %1047, label %1048

1047:                                             ; preds = %1045
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %158) #6
  br label %1048

1048:                                             ; preds = %1047, %1045
  %1049 = load i1, ptr %159, align 1
  br i1 %1049, label %1050, label %1051

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

1051:                                             ; preds = %1050, %1048
  %1052 = load i1, ptr %157, align 1
  br i1 %1052, label %1053, label %1054

1053:                                             ; preds = %1051
  call void @llvm.lifetime.end.p0(i64 32, ptr %156) #6
  br label %1054

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

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

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

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

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

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

1062:                                             ; preds = %1061, %1001
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #6
  %1063 = load i1, ptr %151, align 1
  br i1 %1063, label %1064, label %1065

1064:                                             ; preds = %1062
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #6
  br label %1065

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

1067:                                             ; preds = %1065
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #6
  br label %1068

1068:                                             ; preds = %1067, %1065
  br label %1069

1069:                                             ; preds = %1068, %997
  %1070 = load i1, ptr %148, align 1
  br i1 %1070, label %1071, label %1072

1071:                                             ; preds = %1069
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #6
  br label %1072

1072:                                             ; preds = %1071, %1069
  br label %1073

1073:                                             ; preds = %1072, %993
  %1074 = load i1, ptr %147, align 1
  br i1 %1074, label %1075, label %1076

1075:                                             ; preds = %1073
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #6
  br label %1076

1076:                                             ; preds = %1075, %1073
  br label %1077

1077:                                             ; preds = %1076, %989
  %1078 = load i1, ptr %146, align 1
  br i1 %1078, label %1079, label %1080

1079:                                             ; preds = %1077
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #6
  br label %1080

1080:                                             ; preds = %1079, %1077
  %1081 = load i1, ptr %145, align 1
  br i1 %1081, label %1082, label %1083

1082:                                             ; preds = %1080
  call void @llvm.lifetime.end.p0(i64 1, ptr %144) #6
  br label %1083

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

1085:                                             ; preds = %1083
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #6
  br label %1086

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

1088:                                             ; preds = %1086
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #6
  br label %1089

1089:                                             ; preds = %1088, %1086
  br label %1090

1090:                                             ; preds = %1089, %985
  %1091 = load i1, ptr %140, align 1
  br i1 %1091, label %1092, label %1093

1092:                                             ; preds = %1090
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %123) #6
  br label %1093

1093:                                             ; preds = %1092, %1090
  br label %1094

1094:                                             ; preds = %1093, %981
  %1095 = load i1, ptr %139, align 1
  br i1 %1095, label %1096, label %1097

1096:                                             ; preds = %1094
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #6
  br label %1097

1097:                                             ; preds = %1096, %1094
  br label %1098

1098:                                             ; preds = %1097, %977
  %1099 = load i1, ptr %138, align 1
  br i1 %1099, label %1100, label %1101

1100:                                             ; preds = %1098
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %136) #6
  br label %1101

1101:                                             ; preds = %1100, %1098
  %1102 = load i1, ptr %137, align 1
  br i1 %1102, label %1103, label %1104

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

1104:                                             ; preds = %1103, %1101
  %1105 = load i1, ptr %135, align 1
  br i1 %1105, label %1106, label %1107

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

1107:                                             ; preds = %1106, %1104
  %1108 = load i1, ptr %133, align 1
  br i1 %1108, label %1109, label %1110

1109:                                             ; preds = %1107
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #6
  br label %1110

1110:                                             ; preds = %1109, %1107
  br label %1111

1111:                                             ; preds = %1110, %973
  %1112 = load i1, ptr %132, align 1
  br i1 %1112, label %1113, label %1114

1113:                                             ; preds = %1111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #6
  br label %1114

1114:                                             ; preds = %1113, %1111
  br label %1115

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

1117:                                             ; preds = %1115
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %129) #6
  br label %1118

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

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

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

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

1124:                                             ; preds = %1123, %1121
  %1125 = load i1, ptr %126, align 1
  br i1 %1125, label %1126, label %1127

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

1127:                                             ; preds = %1126, %1124
  %1128 = load i1, ptr %124, align 1
  br i1 %1128, label %1129, label %1130

1129:                                             ; preds = %1127
  call void @llvm.lifetime.end.p0(i64 32, ptr %123) #6
  br label %1130

1130:                                             ; preds = %1129, %1127
  %1131 = load i1, ptr %122, align 1
  br i1 %1131, label %1132, label %1133

1132:                                             ; preds = %1130
  call void @llvm.lifetime.end.p0(i64 32, ptr %121) #6
  br label %1133

1133:                                             ; preds = %1132, %1130
  %1134 = load i1, ptr %120, align 1
  br i1 %1134, label %1135, label %1136

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

1136:                                             ; preds = %1135, %1133
  %1137 = load i1, ptr %118, align 1
  br i1 %1137, label %1138, label %1139

1138:                                             ; preds = %1136
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #6
  br label %1139

1139:                                             ; preds = %1138, %1136
  br label %1143

1140:                                             ; preds = %794, %790, %784
  br label %1141

1141:                                             ; preds = %1140, %656
  %1142 = load double, ptr %61, align 8, !tbaa !27
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  ret double %1142

1143:                                             ; preds = %1139, %968
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  br label %1144

1144:                                             ; preds = %1143, %519
  %1145 = load ptr, ptr %21, align 8
  %1146 = load i32, ptr %22, align 4
  %1147 = insertvalue { ptr, i32 } poison, ptr %1145, 0
  %1148 = insertvalue { ptr, i32 } %1147, i32 %1146, 1
  resume { ptr, i32 } %1148
}

declare void @_ZN10CornerApex14initCornerApexEdddddb(ptr noundef nonnull align 8 dereferenceable(144), double noundef, double noundef, double noundef, double noundef, double noundef, i1 noundef zeroext) #4

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN9LayerApex11removeLayerEv(ptr noundef nonnull align 8 dereferenceable(144)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4Elem9unTrapOilEv(ptr noundef nonnull align 8 dereferenceable(408)) #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

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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !14, i64 57}
!12 = !{!"_ZTS9ElemModel", !13, i64 8, !13, i64 16, !6, i64 24, !6, i64 32, !13, i64 40, !6, i64 48, !14, i64 56, !14, i64 57, !14, i64 58, !14, i64 59, !10, i64 60, !13, i64 64, !13, i64 72, !13, i64 80, !13, i64 88, !13, i64 96, !13, i64 104, !13, i64 112, !15, i64 120, !15, i64 136}
!13 = !{!"double", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"_ZTSSt4pairIddE", !13, i64 0, !13, i64 8}
!16 = !{i8 0, i8 2}
!17 = !{}
!18 = !{!19, !25, i64 232}
!19 = !{!"_ZTS7Polygon", !20, i64 0, !10, i64 184, !21, i64 192, !6, i64 216, !6, i64 224, !25, i64 232, !7, i64 234, !13, i64 240}
!20 = !{!"_ZTS8VoidElem", !12, i64 0, !13, i64 152, !13, i64 160, !13, i64 168, !13, i64 176}
!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", !6, i64 0, !6, i64 8, !6, i64 16}
!25 = !{!"short", !7, i64 0}
!26 = !{!19, !6, i64 224}
!27 = !{!13, !13, i64 0}
!28 = !{!12, !6, i64 32}
!29 = !{!19, !6, i64 216}
!30 = !{!20, !13, i64 176}
!31 = !{!20, !13, i64 168}
!32 = !{!12, !14, i64 58}
!33 = !{!19, !10, i64 184}
!34 = !{!35, !35, i64 0}
!35 = !{!"vtable pointer", !8, i64 0}
!36 = !{!12, !6, i64 24}


; 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.2" = type { i8 }
%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 }
%class.CornerApex = type { %class.Apex, ptr, double, double, double, ptr }

@.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 [100 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
@__FUNCTION__._ZN7Polygon25Pc_pin_disconnectOilLayerEi = external hidden unnamed_addr constant [26 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [7 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; 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: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0

declare void @_ZN10CornerApex15finitCornerApexEdddddbb(ptr noundef nonnull align 8 dereferenceable(144), double noundef, double noundef, double noundef, double noundef, double noundef, i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #4

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZN7Polygon25Pc_pin_disconnectOilLayerEi(ptr noundef nonnull align 8 dereferenceable(248) %0, i32 noundef %1) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator.2", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator.2", align 1
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator.2", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator.2", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.2", align 1
  %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::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator.2", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.2", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator.2", align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca i32, align 4
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator.2", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.2", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator.2", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator.2", align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator.2", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca i32, align 4
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::allocator.2", align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::allocator.2", align 1
  %60 = getelementptr inbounds i8, ptr %0, i64 57
  %61 = load i8, ptr %60, align 1, !tbaa !5, !range !14, !noundef !15
  %62 = trunc nuw i8 %61 to i1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  %63 = getelementptr inbounds i8, ptr %0, i64 232
  %64 = load i16, ptr %63, align 8
  %65 = icmp sgt i16 %64, 0
  %or.cond = select i1 %62, i1 %65, i1 false
  br i1 %or.cond, label %81, label %66

66:                                               ; preds = %2
  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 32, ptr nonnull %9) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %67 unwind label %111

67:                                               ; preds = %66
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.1)
          to label %68 unwind label %113

68:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @__FUNCTION__._ZN7Polygon25Pc_pin_disconnectOilLayerEi, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %69 unwind label %115

69:                                               ; preds = %68
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %11)
          to label %70 unwind label %117

70:                                               ; preds = %69
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.2)
          to label %71 unwind label %119

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

72:                                               ; preds = %71
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %13)
          to label %73 unwind label %123

73:                                               ; preds = %72
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.4)
          to label %74 unwind label %125

74:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #6
  store i32 457, ptr %16, align 4, !tbaa !16
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %75 unwind label %127

75:                                               ; preds = %74
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %15)
          to label %76 unwind label %129

76:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %77 unwind label %131

77:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull @.str.41, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %78 unwind label %133

78:                                               ; preds = %77
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %79 unwind label %135

79:                                               ; preds = %78
  %80 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %3, ptr noundef nonnull %17, i32 noundef 0)
          to label %.critedge418 unwind label %137

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

.critedge418:                                     ; preds = %79
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #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) %5) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #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) %7) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, 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
  br label %.critedge439

.critedge439:                                     ; preds = %81, %.critedge418
  %82 = getelementptr inbounds i8, ptr %0, i64 224
  %83 = load ptr, ptr %82, align 8, !tbaa !17
  %84 = sext i32 %1 to i64
  %85 = getelementptr inbounds %class.LayerApex, ptr %83, i64 %84
  %86 = call noundef double @_ZNK9LayerApex11layerCollPcEv(ptr noundef nonnull align 8 dereferenceable(144) %85)
  %87 = getelementptr inbounds i8, ptr %0, i64 32
  %88 = load ptr, ptr %87, align 8, !tbaa !25
  %89 = call noundef double @_ZNK7GNMData7sigmaOWEv(ptr noundef nonnull align 8 dereferenceable(984) %88)
  %90 = getelementptr inbounds i8, ptr %0, i64 216
  %91 = load ptr, ptr %90, align 8, !tbaa !26
  %92 = getelementptr inbounds %class.CornerApex, ptr %91, i64 %84
  %93 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %92)
  br i1 %93, label %94, label %152

94:                                               ; preds = %.critedge439
  %95 = load ptr, ptr %90, align 8, !tbaa !26
  %96 = getelementptr inbounds %class.CornerApex, ptr %95, i64 %84
  %97 = getelementptr inbounds i8, ptr %0, i64 176
  %98 = load double, ptr %97, align 8, !tbaa !27
  %99 = getelementptr inbounds i8, ptr %0, i64 168
  %100 = load double, ptr %99, align 8, !tbaa !28
  %101 = getelementptr inbounds i8, ptr %0, i64 192
  %102 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %101, i64 noundef %84) #6
  %103 = load double, ptr %102, align 8, !tbaa !29
  call void @_ZN10CornerApex15finitCornerApexEdddddbb(ptr noundef nonnull align 8 dereferenceable(144) %96, double noundef %86, double noundef %98, double noundef %100, double noundef %103, double noundef %89, i1 noundef zeroext false, i1 noundef zeroext false)
  %104 = load ptr, ptr %90, align 8, !tbaa !26
  %105 = getelementptr inbounds %class.CornerApex, ptr %104, i64 %84
  %106 = load double, ptr %97, align 8, !tbaa !27
  %107 = load double, ptr %99, align 8, !tbaa !28
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %101, i64 noundef %84) #6
  %109 = load double, ptr %108, align 8, !tbaa !29
  call void @_ZN10CornerApex14initCornerApexEdddddb(ptr noundef nonnull align 8 dereferenceable(144) %105, double noundef %86, double noundef %106, double noundef %107, double noundef %109, double noundef %89, i1 noundef zeroext false)
  %110 = getelementptr inbounds i8, ptr %0, i64 58
  store i8 0, ptr %110, align 2, !tbaa !30
  br label %152

111:                                              ; preds = %66
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %151

113:                                              ; preds = %67
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %150

115:                                              ; preds = %68
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %149

117:                                              ; preds = %69
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %148

119:                                              ; preds = %70
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %147

121:                                              ; preds = %71
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %146

123:                                              ; preds = %72
  %124 = landingpad { ptr, i32 }
          cleanup
  br label %145

125:                                              ; preds = %73
  %126 = landingpad { ptr, i32 }
          cleanup
  br label %144

127:                                              ; preds = %74
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %143

129:                                              ; preds = %75
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %142

131:                                              ; preds = %76
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %141

133:                                              ; preds = %77
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %140

135:                                              ; preds = %78
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %139

137:                                              ; preds = %79
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %139

139:                                              ; preds = %135, %137
  %.pn = phi { ptr, i32 } [ %138, %137 ], [ %136, %135 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %140

140:                                              ; preds = %133, %139
  %.pn.pn = phi { ptr, i32 } [ %.pn, %139 ], [ %134, %133 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %141

141:                                              ; preds = %131, %140
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %140 ], [ %132, %131 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #6
  br label %142

142:                                              ; preds = %129, %141
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %141 ], [ %130, %129 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %143

143:                                              ; preds = %142, %127
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %142 ], [ %128, %127 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #6
  br label %144

144:                                              ; preds = %125, %143
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %143 ], [ %126, %125 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  br label %145

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

146:                                              ; preds = %121, %145
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %145 ], [ %122, %121 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %147

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

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

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

150:                                              ; preds = %113, %149
  %.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, %149 ], [ %114, %113 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #6
  br label %151

151:                                              ; preds = %111, %150
  %.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, %150 ], [ %112, %111 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #6
  call void @llvm.lifetime.end.p0(i64 32, 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
  br label %292

152:                                              ; preds = %94, %.critedge439
  call void @_ZN9LayerApex11removeLayerEv(ptr noundef nonnull align 8 dereferenceable(144) %85)
  %153 = load i16, ptr %63, align 8, !tbaa !31
  %154 = add i16 %153, -1
  store i16 %154, ptr %63, align 8, !tbaa !31
  %155 = icmp sgt i16 %154, -1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #6
  br i1 %155, label %156, label %161

156:                                              ; preds = %152
  %157 = zext nneg i16 %154 to i32
  %158 = getelementptr inbounds i8, ptr %0, i64 184
  %159 = load i32, ptr %158, align 8, !tbaa !32
  %160 = icmp sgt i32 %159, %157
  br i1 %160, label %176, label %161

161:                                              ; preds = %156, %152
  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 32, ptr nonnull %28) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %162 unwind label %209

162:                                              ; preds = %161
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.1)
          to label %163 unwind label %211

163:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @__FUNCTION__._ZN7Polygon25Pc_pin_disconnectOilLayerEi, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %164 unwind label %213

164:                                              ; preds = %163
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %30)
          to label %165 unwind label %215

165:                                              ; preds = %164
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.2)
          to label %166 unwind label %217

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

167:                                              ; preds = %166
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %168 unwind label %221

168:                                              ; preds = %167
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.4)
          to label %169 unwind label %223

169:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #6
  store i32 472, ptr %35, align 4, !tbaa !16
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %170 unwind label %225

170:                                              ; preds = %169
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %34)
          to label %171 unwind label %227

171:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %172 unwind label %229

172:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.42, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %173 unwind label %231

173:                                              ; preds = %172
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %174 unwind label %233

174:                                              ; preds = %173
  %175 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %22, ptr noundef nonnull %36, i32 noundef 0)
          to label %.critedge453 unwind label %235

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

.critedge453:                                     ; preds = %174
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #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) %24) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #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) %26) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 32, 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
  %.pre = load i16, ptr %63, align 8, !tbaa !31
  br label %.critedge474

.critedge474:                                     ; preds = %176, %.critedge453
  %177 = phi i16 [ %154, %176 ], [ %.pre, %.critedge453 ]
  %.not = icmp eq i16 %177, 0
  br i1 %.not, label %178, label %291

178:                                              ; preds = %.critedge474
  %179 = getelementptr inbounds i8, ptr %0, i64 58
  %180 = load i8, ptr %179, align 2, !tbaa !30, !range !14, !noundef !15
  %181 = trunc nuw i8 %180 to i1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %54) #6
  br i1 %181, label %182, label %197

182:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %183 unwind label %250

183:                                              ; preds = %182
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.1)
          to label %184 unwind label %252

184:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @__FUNCTION__._ZN7Polygon25Pc_pin_disconnectOilLayerEi, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %185 unwind label %254

185:                                              ; preds = %184
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %186 unwind label %256

186:                                              ; preds = %185
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.2)
          to label %187 unwind label %258

187:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %188 unwind label %260

188:                                              ; preds = %187
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %189 unwind label %262

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

190:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #6
  store i32 475, ptr %54, align 4, !tbaa !16
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 4 dereferenceable(4) %54)
          to label %191 unwind label %266

191:                                              ; preds = %190
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %192 unwind label %268

192:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %193 unwind label %270

193:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.43, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %194 unwind label %272

194:                                              ; preds = %193
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %195 unwind label %274

195:                                              ; preds = %194
  %196 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %41, ptr noundef nonnull %55, i32 noundef 0)
          to label %.critedge489 unwind label %276

197:                                              ; preds = %178
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #6
  br label %.critedge510

.critedge489:                                     ; preds = %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #6
  br label %.critedge510

.critedge510:                                     ; preds = %197, %.critedge489
  store i8 0, ptr %60, align 1, !tbaa !5
  %198 = load ptr, ptr %0, align 8, !tbaa !33
  %199 = getelementptr inbounds i8, ptr %198, i64 152
  %200 = load ptr, ptr %199, align 8
  %201 = call noundef zeroext i1 %200(ptr noundef nonnull align 8 dereferenceable(152) %0)
  br i1 %201, label %291, label %202

202:                                              ; preds = %.critedge510
  %203 = getelementptr inbounds i8, ptr %0, i64 24
  %204 = load ptr, ptr %203, align 8, !tbaa !35
  %205 = call noundef zeroext i1 @_ZNK4Elem12isTrappedOilEv(ptr noundef nonnull align 8 dereferenceable(408) %204)
  br i1 %205, label %206, label %291

206:                                              ; preds = %202
  %207 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.44)
  %208 = load ptr, ptr %203, align 8, !tbaa !35
  call void @_ZN4Elem9unTrapOilEv(ptr noundef nonnull align 8 dereferenceable(408) %208)
  br label %291

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

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

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

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

217:                                              ; preds = %165
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %245

219:                                              ; preds = %166
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %244

221:                                              ; preds = %167
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %243

223:                                              ; preds = %168
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %242

225:                                              ; preds = %169
  %226 = landingpad { ptr, i32 }
          cleanup
  br label %241

227:                                              ; preds = %170
  %228 = landingpad { ptr, i32 }
          cleanup
  br label %240

229:                                              ; preds = %171
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %239

231:                                              ; preds = %172
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %238

233:                                              ; preds = %173
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %237

235:                                              ; preds = %174
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %237

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

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

239:                                              ; preds = %229, %238
  %.pn375.pn.pn = phi { ptr, i32 } [ %.pn375.pn, %238 ], [ %230, %229 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %240

240:                                              ; preds = %227, %239
  %.pn375.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn, %239 ], [ %228, %227 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %241

241:                                              ; preds = %240, %225
  %.pn375.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn, %240 ], [ %226, %225 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %242

242:                                              ; preds = %223, %241
  %.pn375.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn, %241 ], [ %224, %223 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %243

243:                                              ; preds = %221, %242
  %.pn375.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn, %242 ], [ %222, %221 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #6
  br label %244

244:                                              ; preds = %219, %243
  %.pn375.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn, %243 ], [ %220, %219 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #6
  br label %245

245:                                              ; preds = %217, %244
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn, %244 ], [ %218, %217 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %246

246:                                              ; preds = %215, %245
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn, %245 ], [ %216, %215 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %247

247:                                              ; preds = %213, %246
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn, %246 ], [ %214, %213 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #6
  br label %248

248:                                              ; preds = %211, %247
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %247 ], [ %212, %211 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %249

249:                                              ; preds = %209, %248
  %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %248 ], [ %210, %209 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #6
  call void @llvm.lifetime.end.p0(i64 32, 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
  br label %292

250:                                              ; preds = %182
  %251 = landingpad { ptr, i32 }
          cleanup
  br label %290

252:                                              ; preds = %183
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %289

254:                                              ; preds = %184
  %255 = landingpad { ptr, i32 }
          cleanup
  br label %288

256:                                              ; preds = %185
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %287

258:                                              ; preds = %186
  %259 = landingpad { ptr, i32 }
          cleanup
  br label %286

260:                                              ; preds = %187
  %261 = landingpad { ptr, i32 }
          cleanup
  br label %285

262:                                              ; preds = %188
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %284

264:                                              ; preds = %189
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %283

266:                                              ; preds = %190
  %267 = landingpad { ptr, i32 }
          cleanup
  br label %282

268:                                              ; preds = %191
  %269 = landingpad { ptr, i32 }
          cleanup
  br label %281

270:                                              ; preds = %192
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %280

272:                                              ; preds = %193
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %279

274:                                              ; preds = %194
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %278

276:                                              ; preds = %195
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #6
  br label %278

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

279:                                              ; preds = %272, %278
  %.pn389.pn = phi { ptr, i32 } [ %.pn389, %278 ], [ %273, %272 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #6
  br label %280

280:                                              ; preds = %270, %279
  %.pn389.pn.pn = phi { ptr, i32 } [ %.pn389.pn, %279 ], [ %271, %270 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #6
  br label %281

281:                                              ; preds = %268, %280
  %.pn389.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn, %280 ], [ %269, %268 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %282

282:                                              ; preds = %281, %266
  %.pn389.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn, %281 ], [ %267, %266 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %283

283:                                              ; preds = %264, %282
  %.pn389.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn, %282 ], [ %265, %264 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %284

284:                                              ; preds = %262, %283
  %.pn389.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn, %283 ], [ %263, %262 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #6
  br label %285

285:                                              ; preds = %260, %284
  %.pn389.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn, %284 ], [ %261, %260 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #6
  br label %286

286:                                              ; preds = %258, %285
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn, %285 ], [ %259, %258 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %287

287:                                              ; preds = %256, %286
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn, %286 ], [ %257, %256 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #6
  br label %288

288:                                              ; preds = %254, %287
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn, %287 ], [ %255, %254 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #6
  br label %289

289:                                              ; preds = %252, %288
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %288 ], [ %253, %252 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #6
  br label %290

290:                                              ; preds = %250, %289
  %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %289 ], [ %251, %250 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #6
  br label %292

291:                                              ; preds = %.critedge510, %202, %206, %.critedge474
  ret double %86

292:                                              ; preds = %249, %290, %151
  %.pn389.pn.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.pn, %151 ], [ %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %290 ], [ %.pn375.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %249 ]
  resume { ptr, i32 } %.pn389.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

declare void @_ZN10CornerApex14initCornerApexEdddddb(ptr noundef nonnull align 8 dereferenceable(144), double noundef, double noundef, double noundef, double noundef, double noundef, i1 noundef zeroext) local_unnamed_addr #4

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN9LayerApex11removeLayerEv(ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN4Elem9unTrapOilEv(ptr noundef nonnull align 8 dereferenceable(408)) local_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

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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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, !11, i64 57}
!6 = !{!"_ZTS9ElemModel", !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 32, !7, i64 40, !10, i64 48, !11, i64 56, !11, i64 57, !11, i64 58, !11, i64 59, !12, i64 60, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88, !7, i64 96, !7, i64 104, !7, i64 112, !13, i64 120, !13, i64 136}
!7 = !{!"double", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"int", !8, i64 0}
!13 = !{!"_ZTSSt4pairIddE", !7, i64 0, !7, i64 8}
!14 = !{i8 0, i8 2}
!15 = !{}
!16 = !{!12, !12, i64 0}
!17 = !{!18, !10, i64 224}
!18 = !{!"_ZTS7Polygon", !19, i64 0, !12, i64 184, !20, i64 192, !10, i64 216, !10, i64 224, !24, i64 232, !8, i64 234, !7, i64 240}
!19 = !{!"_ZTS8VoidElem", !6, i64 0, !7, i64 152, !7, i64 160, !7, i64 168, !7, i64 176}
!20 = !{!"_ZTSSt6vectorIdSaIdEE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIdSaIdEE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIdSaIdEE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!24 = !{!"short", !8, i64 0}
!25 = !{!6, !10, i64 32}
!26 = !{!18, !10, i64 216}
!27 = !{!19, !7, i64 176}
!28 = !{!19, !7, i64 168}
!29 = !{!7, !7, i64 0}
!30 = !{!6, !11, i64 58}
!31 = !{!18, !24, i64 232}
!32 = !{!18, !12, i64 184}
!33 = !{!34, !34, i64 0}
!34 = !{!"vtable pointer", !9, i64 0}
!35 = !{!6, !10, i64 24}


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