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

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

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

@_ZN4Apex9SMALL_NUME = external constant double, align 8
@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd = external hidden unnamed_addr constant [27 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZN4Apex15NEG_ALMOST_ZEROE = external constant double, align 8
@_ZN4Apex7MAX_ITRE = external constant i32, align 4
@_ZN4Apex7EPSILONE = external constant double, align 8
@.str.21 = external hidden unnamed_addr constant [59 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.22 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZNK9LayerApex26layerCollapsePc_FromCentreEddddd(ptr noundef nonnull align 8 dereferenceable(144) %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5) #5 align 2 personality ptr @__gxx_personality_v0 {
  %7 = alloca double, align 8
  %8 = alloca ptr, align 8
  %9 = alloca double, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca i1, align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca i1, align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca i1, align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca i1, align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca i1, align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca i1, align 1
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca i1, align 1
  %29 = alloca i1, align 1
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i1, align 1
  %33 = alloca i1, align 1
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca i1, align 1
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca i1, align 1
  %38 = alloca i1, align 1
  %39 = alloca i1, align 1
  %40 = alloca i1, align 1
  %41 = alloca i1, align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca i1, align 1
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca i1, align 1
  %46 = alloca i1, align 1
  %47 = alloca i1, align 1
  %48 = alloca i1, align 1
  %49 = alloca i1, align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca i1, align 1
  %52 = alloca i32, align 4
  %53 = alloca i1, align 1
  %54 = alloca i1, align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca i1, align 1
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca i1, align 1
  %60 = alloca i1, align 1
  %61 = alloca i1, align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca i1, align 1
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca i1, align 1
  %66 = alloca i1, align 1
  %67 = alloca i1, align 1
  %68 = alloca i1, align 1
  %69 = alloca double, align 8
  %70 = alloca double, align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::__cxx11::basic_string", align 8
  %77 = alloca i1, align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca i1, align 1
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca i1, align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca i1, align 1
  %84 = alloca %"class.std::allocator", 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", 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 %"class.std::allocator", align 1
  %100 = alloca i1, align 1
  %101 = alloca i1, align 1
  %102 = alloca i1, align 1
  %103 = alloca i1, align 1
  %104 = alloca i1, align 1
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca i1, align 1
  %107 = alloca i32, align 4
  %108 = alloca i1, align 1
  %109 = alloca i1, align 1
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca i1, align 1
  %113 = alloca %"class.std::allocator", align 1
  %114 = alloca i1, align 1
  %115 = alloca i1, align 1
  %116 = alloca i1, align 1
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca i1, align 1
  %119 = alloca %"class.std::allocator", align 1
  %120 = alloca i1, align 1
  %121 = alloca i1, align 1
  %122 = alloca i1, align 1
  %123 = alloca i1, align 1
  %124 = alloca double, align 8
  %125 = alloca double, align 8
  %126 = alloca double, align 8
  %127 = alloca double, align 8
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca double, align 8
  %131 = alloca double, align 8
  %132 = alloca double, align 8
  %133 = alloca double, align 8
  %134 = alloca double, align 8
  %135 = alloca double, align 8
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca %"class.std::__cxx11::basic_string", align 8
  %138 = alloca i1, align 1
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca i1, align 1
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca i1, align 1
  %143 = alloca %"class.std::__cxx11::basic_string", align 8
  %144 = alloca i1, align 1
  %145 = alloca %"class.std::__cxx11::basic_string", align 8
  %146 = alloca i1, align 1
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca i1, align 1
  %149 = alloca %"class.std::allocator", align 1
  %150 = alloca i1, align 1
  %151 = alloca i1, align 1
  %152 = alloca i1, align 1
  %153 = alloca i1, align 1
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca i1, align 1
  %156 = alloca %"class.std::allocator", align 1
  %157 = alloca i1, align 1
  %158 = alloca i1, align 1
  %159 = alloca i1, align 1
  %160 = alloca i1, align 1
  %161 = alloca i1, align 1
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca i1, align 1
  %164 = alloca %"class.std::allocator", align 1
  %165 = alloca i1, align 1
  %166 = alloca i1, align 1
  %167 = alloca i1, align 1
  %168 = alloca i1, align 1
  %169 = alloca i1, align 1
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca i1, align 1
  %172 = alloca i32, align 4
  %173 = alloca i1, align 1
  %174 = alloca i1, align 1
  %175 = alloca %"class.std::__cxx11::basic_string", align 8
  %176 = alloca %"class.std::__cxx11::basic_string", align 8
  %177 = alloca i1, align 1
  %178 = alloca %"class.std::allocator", align 1
  %179 = alloca i1, align 1
  %180 = alloca i1, align 1
  %181 = alloca i1, align 1
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca i1, align 1
  %184 = alloca %"class.std::allocator", align 1
  %185 = alloca i1, align 1
  %186 = alloca i1, align 1
  %187 = alloca i1, align 1
  %188 = alloca i1, align 1
  %189 = alloca double, align 8
  %190 = alloca double, align 8
  %191 = alloca double, align 8
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca %"class.std::__cxx11::basic_string", align 8
  %194 = alloca i1, align 1
  %195 = alloca %"class.std::__cxx11::basic_string", align 8
  %196 = alloca i1, align 1
  %197 = alloca %"class.std::__cxx11::basic_string", align 8
  %198 = alloca i1, align 1
  %199 = alloca %"class.std::__cxx11::basic_string", align 8
  %200 = alloca i1, align 1
  %201 = alloca %"class.std::__cxx11::basic_string", align 8
  %202 = alloca i1, align 1
  %203 = alloca %"class.std::__cxx11::basic_string", align 8
  %204 = alloca i1, align 1
  %205 = alloca %"class.std::allocator", align 1
  %206 = alloca i1, align 1
  %207 = alloca i1, align 1
  %208 = alloca i1, align 1
  %209 = alloca i1, align 1
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca i1, align 1
  %212 = alloca %"class.std::allocator", align 1
  %213 = alloca i1, align 1
  %214 = alloca i1, align 1
  %215 = alloca i1, align 1
  %216 = alloca i1, align 1
  %217 = alloca i1, align 1
  %218 = alloca %"class.std::__cxx11::basic_string", align 8
  %219 = alloca i1, align 1
  %220 = alloca %"class.std::allocator", align 1
  %221 = alloca i1, align 1
  %222 = alloca i1, align 1
  %223 = alloca i1, align 1
  %224 = alloca i1, align 1
  %225 = alloca i1, align 1
  %226 = alloca %"class.std::__cxx11::basic_string", align 8
  %227 = alloca i1, align 1
  %228 = alloca i32, align 4
  %229 = alloca i1, align 1
  %230 = alloca i1, align 1
  %231 = alloca %"class.std::__cxx11::basic_string", align 8
  %232 = alloca %"class.std::__cxx11::basic_string", align 8
  %233 = alloca i1, align 1
  %234 = alloca %"class.std::allocator", align 1
  %235 = alloca i1, align 1
  %236 = alloca i1, align 1
  %237 = alloca i1, align 1
  %238 = alloca %"class.std::__cxx11::basic_string", align 8
  %239 = alloca i1, align 1
  %240 = alloca %"class.std::allocator", align 1
  %241 = alloca i1, align 1
  %242 = alloca i1, align 1
  %243 = alloca i1, align 1
  %244 = alloca i1, align 1
  store ptr %0, ptr %8, align 8, !tbaa !5
  store double %1, ptr %9, align 8, !tbaa !9
  store double %2, ptr %10, align 8, !tbaa !9
  store double %3, ptr %11, align 8, !tbaa !9
  store double %4, ptr %12, align 8, !tbaa !9
  store double %5, ptr %13, align 8, !tbaa !9
  %245 = load ptr, ptr %8, align 8
  %246 = getelementptr inbounds %class.Apex, ptr %245, i32 0, i32 14
  %247 = getelementptr inbounds %"struct.std::pair", ptr %246, i32 0, i32 0
  %248 = load i32, ptr %247, align 8, !tbaa !11
  %249 = icmp slt i32 %248, 0
  store i1 false, ptr %16, align 1
  store i1 false, ptr %18, align 1
  store i1 false, ptr %20, align 1
  store i1 false, ptr %22, align 1
  store i1 false, ptr %24, align 1
  store i1 false, ptr %26, align 1
  store i1 false, ptr %28, align 1
  store i1 false, ptr %29, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %33, align 1
  store i1 false, ptr %35, 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 %41, align 1
  store i1 false, ptr %43, align 1
  store i1 false, ptr %45, align 1
  store i1 false, ptr %46, align 1
  store i1 false, ptr %47, align 1
  store i1 false, ptr %48, align 1
  store i1 false, ptr %49, align 1
  store i1 false, ptr %51, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  store i1 false, ptr %53, align 1
  store i1 false, ptr %54, align 1
  store i1 false, ptr %57, align 1
  store i1 false, ptr %59, align 1
  store i1 false, ptr %60, align 1
  store i1 false, ptr %61, align 1
  store i1 false, ptr %63, align 1
  store i1 false, ptr %65, align 1
  store i1 false, ptr %66, align 1
  store i1 false, ptr %67, align 1
  store i1 false, ptr %68, align 1
  br i1 %249, label %274, label %250

250:                                              ; preds = %6
  %251 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 2
  %252 = load ptr, ptr %251, align 8, !tbaa !16
  %253 = call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %252)
  %254 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %253)
  %255 = getelementptr inbounds %"struct.std::pair", ptr %254, i32 0, i32 0
  %256 = load i32, ptr %255, align 8, !tbaa !18
  %257 = icmp slt i32 %256, 0
  br i1 %257, label %274, label %258

258:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #9
  store i1 true, ptr %16, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #9
  store i1 true, ptr %18, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #9
  store i1 true, ptr %20, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #9
  store i1 true, ptr %22, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #9
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #9
  store i1 true, ptr %26, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #9
  store i1 true, ptr %28, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #9
  store i1 true, ptr %29, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %259 unwind label %554

259:                                              ; preds = %258
  store i1 true, ptr %32, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.1)
          to label %260 unwind label %558

260:                                              ; preds = %259
  store i1 true, ptr %33, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  store i1 true, ptr %35, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #9
  store i1 true, ptr %37, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  store i1 true, ptr %38, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %261 unwind label %562

261:                                              ; preds = %260
  store i1 true, ptr %39, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %262 unwind label %566

262:                                              ; preds = %261
  store i1 true, ptr %40, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef @.str.2)
          to label %263 unwind label %570

263:                                              ; preds = %262
  store i1 true, ptr %41, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #9
  store i1 true, ptr %43, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #9
  store i1 true, ptr %45, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  store i1 true, ptr %46, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %264 unwind label %574

264:                                              ; preds = %263
  store i1 true, ptr %47, 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 %17, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %265 unwind label %578

265:                                              ; preds = %264
  store i1 true, ptr %48, 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 %15, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.4)
          to label %266 unwind label %582

266:                                              ; preds = %265
  store i1 true, ptr %49, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  store i1 true, ptr %51, align 1
  store i32 320, ptr %52, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 4 dereferenceable(4) %52)
          to label %267 unwind label %586

267:                                              ; preds = %266
  store i1 true, ptr %53, 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 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %268 unwind label %590

268:                                              ; preds = %267
  store i1 true, ptr %54, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #9
  store i1 true, ptr %57, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #9
  store i1 true, ptr %59, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  store i1 true, ptr %60, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %269 unwind label %594

269:                                              ; preds = %268
  store i1 true, ptr %61, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #9
  store i1 true, ptr %63, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #9
  store i1 true, ptr %65, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  store i1 true, ptr %66, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %270 unwind label %598

270:                                              ; preds = %269
  store i1 true, ptr %67, 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 %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %271 unwind label %602

271:                                              ; preds = %270
  store i1 true, ptr %68, align 1
  %272 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %14, ptr noundef %55, i32 noundef 0)
          to label %273 unwind label %606

273:                                              ; preds = %271
  br label %274

274:                                              ; preds = %273, %250, %6
  %275 = phi i1 [ true, %250 ], [ true, %6 ], [ %272, %273 ]
  %276 = xor i1 %275, true
  %277 = load i1, ptr %68, align 1
  br i1 %277, label %278, label %279

278:                                              ; preds = %274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %279

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

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

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

284:                                              ; preds = %282
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  br label %285

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

287:                                              ; preds = %285
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #9
  br label %288

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

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

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

293:                                              ; preds = %291
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  br label %294

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

296:                                              ; preds = %294
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  br label %297

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

299:                                              ; preds = %297
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #9
  br label %300

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

302:                                              ; preds = %300
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  br label %303

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

305:                                              ; preds = %303
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %306

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

308:                                              ; preds = %306
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %309

309:                                              ; preds = %308, %306
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  %310 = load i1, ptr %51, align 1
  br i1 %310, label %311, label %312

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

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

314:                                              ; preds = %312
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %315

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

317:                                              ; preds = %315
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %318

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

320:                                              ; preds = %318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %321

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

323:                                              ; preds = %321
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  br label %324

324:                                              ; preds = %323, %321
  %325 = load i1, ptr %45, align 1
  br i1 %325, label %326, label %327

326:                                              ; preds = %324
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #9
  br label %327

327:                                              ; preds = %326, %324
  %328 = load i1, ptr %43, align 1
  br i1 %328, label %329, label %330

329:                                              ; preds = %327
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #9
  br label %330

330:                                              ; preds = %329, %327
  %331 = load i1, ptr %41, align 1
  br i1 %331, label %332, label %333

332:                                              ; preds = %330
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %333

333:                                              ; preds = %332, %330
  %334 = load i1, ptr %40, align 1
  br i1 %334, label %335, label %336

335:                                              ; preds = %333
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %336

336:                                              ; preds = %335, %333
  %337 = load i1, ptr %39, align 1
  br i1 %337, label %338, label %339

338:                                              ; preds = %336
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %339

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

341:                                              ; preds = %339
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  br label %342

342:                                              ; preds = %341, %339
  %343 = load i1, ptr %37, align 1
  br i1 %343, label %344, label %345

344:                                              ; preds = %342
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #9
  br label %345

345:                                              ; preds = %344, %342
  %346 = load i1, ptr %35, align 1
  br i1 %346, label %347, label %348

347:                                              ; preds = %345
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  br label %348

348:                                              ; preds = %347, %345
  %349 = load i1, ptr %33, align 1
  br i1 %349, label %350, label %351

350:                                              ; preds = %348
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %351

351:                                              ; preds = %350, %348
  %352 = load i1, ptr %32, align 1
  br i1 %352, label %353, label %354

353:                                              ; preds = %351
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %354

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

356:                                              ; preds = %354
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #9
  br label %357

357:                                              ; preds = %356, %354
  %358 = load i1, ptr %28, align 1
  br i1 %358, label %359, label %360

359:                                              ; preds = %357
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #9
  br label %360

360:                                              ; preds = %359, %357
  %361 = load i1, ptr %26, align 1
  br i1 %361, label %362, label %363

362:                                              ; preds = %360
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #9
  br label %363

363:                                              ; preds = %362, %360
  %364 = load i1, ptr %24, align 1
  br i1 %364, label %365, label %366

365:                                              ; preds = %363
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  br label %366

366:                                              ; preds = %365, %363
  %367 = load i1, ptr %22, align 1
  br i1 %367, label %368, label %369

368:                                              ; preds = %366
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  br label %369

369:                                              ; preds = %368, %366
  %370 = load i1, ptr %20, align 1
  br i1 %370, label %371, label %372

371:                                              ; preds = %369
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #9
  br label %372

372:                                              ; preds = %371, %369
  %373 = load i1, ptr %18, align 1
  br i1 %373, label %374, label %375

374:                                              ; preds = %372
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  br label %375

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

377:                                              ; preds = %375
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  br label %378

378:                                              ; preds = %377, %375
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  %379 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 2
  %380 = load ptr, ptr %379, align 8, !tbaa !16
  %381 = call noundef double @_ZNK8VoidElem16minInitRecCntAngEv(ptr noundef nonnull align 8 dereferenceable(184) %380)
  store double %381, ptr %70, align 8, !tbaa !9
  %382 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 4
  %383 = load ptr, ptr %382, align 8, !tbaa !20
  %384 = load double, ptr %10, align 8, !tbaa !9
  %385 = load double, ptr %12, align 8, !tbaa !9
  %386 = load double, ptr %13, align 8, !tbaa !9
  call void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144) %383, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70, double noundef %384, double noundef %385, double noundef %386, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext false)
  %387 = load double, ptr %70, align 8, !tbaa !9
  %388 = load double, ptr %11, align 8, !tbaa !9
  %389 = fcmp une double %387, %388
  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 %79, align 1
  store i1 false, ptr %81, align 1
  store i1 false, ptr %83, align 1
  store i1 false, ptr %85, align 1
  store i1 false, ptr %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
  store i1 false, ptr %100, align 1
  store i1 false, ptr %101, align 1
  store i1 false, ptr %102, align 1
  store i1 false, ptr %103, align 1
  store i1 false, ptr %104, align 1
  store i1 false, ptr %106, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #9
  store i1 false, ptr %108, align 1
  store i1 false, ptr %109, align 1
  store i1 false, ptr %112, align 1
  store i1 false, ptr %114, align 1
  store i1 false, ptr %115, align 1
  store i1 false, ptr %116, align 1
  store i1 false, ptr %118, align 1
  store i1 false, ptr %120, align 1
  store i1 false, ptr %121, align 1
  store i1 false, ptr %122, align 1
  store i1 false, ptr %123, align 1
  br i1 %389, label %406, label %390

390:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #9
  store i1 true, ptr %73, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #9
  store i1 true, ptr %75, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #9
  store i1 true, ptr %77, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #9
  store i1 true, ptr %79, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #9
  store i1 true, ptr %81, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #9
  store i1 true, ptr %83, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #9
  store i1 true, ptr %85, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  store i1 true, ptr %86, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %391 unwind label %725

391:                                              ; preds = %390
  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 %80, ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef @.str.1)
          to label %392 unwind label %729

392:                                              ; preds = %391
  store i1 true, ptr %88, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #9
  store i1 true, ptr %90, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #9
  store i1 true, ptr %92, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #9
  store i1 true, ptr %93, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %393 unwind label %733

393:                                              ; preds = %392
  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 %78, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %394 unwind label %737

394:                                              ; preds = %393
  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 %76, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.2)
          to label %395 unwind label %741

395:                                              ; preds = %394
  store i1 true, ptr %96, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #9
  store i1 true, ptr %98, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %99) #9
  store i1 true, ptr %100, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #9
  store i1 true, ptr %101, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %99)
          to label %396 unwind label %745

396:                                              ; preds = %395
  store i1 true, ptr %102, 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 %74, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %397 unwind label %749

397:                                              ; preds = %396
  store i1 true, ptr %103, 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.4)
          to label %398 unwind label %753

398:                                              ; preds = %397
  store i1 true, ptr %104, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #9
  store i1 true, ptr %106, align 1
  store i32 323, ptr %107, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 4 dereferenceable(4) %107)
          to label %399 unwind label %757

399:                                              ; preds = %398
  store i1 true, ptr %108, 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 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %400 unwind label %761

400:                                              ; preds = %399
  store i1 true, ptr %109, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #9
  store i1 true, ptr %112, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #9
  store i1 true, ptr %114, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  store i1 true, ptr %115, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %401 unwind label %765

401:                                              ; preds = %400
  store i1 true, ptr %116, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #9
  store i1 true, ptr %118, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %119) #9
  store i1 true, ptr %120, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  store i1 true, ptr %121, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %117, ptr noundef @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %119)
          to label %402 unwind label %769

402:                                              ; preds = %401
  store i1 true, ptr %122, 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 %110, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %403 unwind label %773

403:                                              ; preds = %402
  store i1 true, ptr %123, align 1
  %404 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %71, ptr noundef %110, i32 noundef 0)
          to label %405 unwind label %777

405:                                              ; preds = %403
  br label %406

406:                                              ; preds = %405, %378
  %407 = phi i1 [ true, %378 ], [ %404, %405 ]
  %408 = xor i1 %407, true
  %409 = load i1, ptr %123, align 1
  br i1 %409, label %410, label %411

410:                                              ; preds = %406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #9
  br label %411

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

413:                                              ; preds = %411
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #9
  br label %414

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

416:                                              ; preds = %414
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  br label %417

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

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

420:                                              ; preds = %419, %417
  %421 = load i1, ptr %118, align 1
  br i1 %421, label %422, label %423

422:                                              ; preds = %420
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #9
  br label %423

423:                                              ; preds = %422, %420
  %424 = load i1, ptr %116, align 1
  br i1 %424, label %425, label %426

425:                                              ; preds = %423
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #9
  br label %426

426:                                              ; preds = %425, %423
  %427 = load i1, ptr %115, align 1
  br i1 %427, label %428, label %429

428:                                              ; preds = %426
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  br label %429

429:                                              ; preds = %428, %426
  %430 = load i1, ptr %114, align 1
  br i1 %430, label %431, label %432

431:                                              ; preds = %429
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #9
  br label %432

432:                                              ; preds = %431, %429
  %433 = load i1, ptr %112, align 1
  br i1 %433, label %434, label %435

434:                                              ; preds = %432
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #9
  br label %435

435:                                              ; preds = %434, %432
  %436 = load i1, ptr %109, align 1
  br i1 %436, label %437, label %438

437:                                              ; preds = %435
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  br label %438

438:                                              ; preds = %437, %435
  %439 = load i1, ptr %108, 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) %105) #9
  br label %441

441:                                              ; preds = %440, %438
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  %442 = load i1, ptr %106, align 1
  br i1 %442, label %443, label %444

443:                                              ; preds = %441
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #9
  br label %444

444:                                              ; preds = %443, %441
  %445 = load i1, ptr %104, align 1
  br i1 %445, label %446, label %447

446:                                              ; preds = %444
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %447

447:                                              ; preds = %446, %444
  %448 = load i1, ptr %103, align 1
  br i1 %448, label %449, label %450

449:                                              ; preds = %447
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %450

450:                                              ; preds = %449, %447
  %451 = load i1, ptr %102, align 1
  br i1 %451, label %452, label %453

452:                                              ; preds = %450
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  br label %453

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

455:                                              ; preds = %453
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #9
  br label %456

456:                                              ; preds = %455, %453
  %457 = load i1, ptr %100, align 1
  br i1 %457, label %458, label %459

458:                                              ; preds = %456
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #9
  br label %459

459:                                              ; preds = %458, %456
  %460 = load i1, ptr %98, align 1
  br i1 %460, label %461, label %462

461:                                              ; preds = %459
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #9
  br label %462

462:                                              ; preds = %461, %459
  %463 = load i1, ptr %96, align 1
  br i1 %463, label %464, label %465

464:                                              ; preds = %462
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %465

465:                                              ; preds = %464, %462
  %466 = load i1, ptr %95, align 1
  br i1 %466, label %467, label %468

467:                                              ; preds = %465
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %468

468:                                              ; preds = %467, %465
  %469 = load i1, ptr %94, align 1
  br i1 %469, label %470, label %471

470:                                              ; preds = %468
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  br label %471

471:                                              ; preds = %470, %468
  %472 = load i1, ptr %93, align 1
  br i1 %472, label %473, label %474

473:                                              ; preds = %471
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #9
  br label %474

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

476:                                              ; preds = %474
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #9
  br label %477

477:                                              ; preds = %476, %474
  %478 = load i1, ptr %90, align 1
  br i1 %478, label %479, label %480

479:                                              ; preds = %477
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  br label %480

480:                                              ; preds = %479, %477
  %481 = load i1, ptr %88, align 1
  br i1 %481, label %482, label %483

482:                                              ; preds = %480
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  br label %483

483:                                              ; preds = %482, %480
  %484 = load i1, ptr %87, align 1
  br i1 %484, label %485, label %486

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

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

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

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

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

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

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

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

497:                                              ; preds = %495
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #9
  br label %498

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

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

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

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

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

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

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

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

510:                                              ; preds = %509, %507
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #9
  %511 = load double, ptr %13, align 8, !tbaa !9
  %512 = load double, ptr %10, align 8, !tbaa !9
  %513 = fdiv double %511, %512
  %514 = load double, ptr %70, align 8, !tbaa !9
  %515 = call double @cos(double noundef %514) #9
  %516 = load double, ptr %12, align 8, !tbaa !9
  %517 = call double @sin(double noundef %516) #9
  %518 = fdiv double %515, %517
  %519 = fsub double %518, 1.000000e+00
  %520 = fmul double %513, %519
  store double %520, ptr %124, align 8, !tbaa !9
  %521 = getelementptr inbounds %class.Apex, ptr %245, i32 0, i32 13
  %522 = load i8, ptr %521, align 1, !tbaa !21, !range !22, !noundef !23
  %523 = trunc i8 %522 to i1
  br i1 %523, label %524, label %1293

524:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #9
  %525 = getelementptr inbounds %class.Apex, ptr %245, i32 0, i32 6
  %526 = load double, ptr %525, align 8, !tbaa !24
  store double %526, ptr %125, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #9
  %527 = load double, ptr %13, align 8, !tbaa !9
  %528 = load double, ptr %125, align 8, !tbaa !9
  %529 = fdiv double %527, %528
  %530 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 5
  %531 = load double, ptr %530, align 8, !tbaa !25
  %532 = call double @cos(double noundef %531) #9
  %533 = load double, ptr %12, align 8, !tbaa !9
  %534 = call double @sin(double noundef %533) #9
  %535 = fdiv double %532, %534
  %536 = fadd double %535, 1.000000e+00
  %537 = fmul double %529, %536
  store double %537, ptr %126, align 8, !tbaa !9
  %538 = load double, ptr %126, align 8, !tbaa !9
  %539 = load double, ptr %124, align 8, !tbaa !9
  %540 = fsub double %538, %539
  %541 = load double, ptr @_ZN4Apex15NEG_ALMOST_ZEROE, align 8, !tbaa !9
  %542 = fcmp olt double %540, %541
  br i1 %542, label %543, label %1289

543:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #9
  %544 = load double, ptr %13, align 8, !tbaa !9
  %545 = load double, ptr %125, align 8, !tbaa !9
  %546 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8, !tbaa !9
  %547 = fadd double %545, %546
  %548 = fdiv double %544, %547
  store double %548, ptr %127, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #9
  store i32 0, ptr %128, align 4, !tbaa !19
  br label %549

549:                                              ; preds = %1273, %543
  %550 = load i32, ptr %128, align 4, !tbaa !19
  %551 = load i32, ptr @_ZN4Apex7MAX_ITRE, align 4, !tbaa !19
  %552 = icmp slt i32 %550, %551
  br i1 %552, label %896, label %553

553:                                              ; preds = %549
  store i32 2, ptr %129, align 4
  br label %1276

554:                                              ; preds = %258
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %30, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %31, align 4
  br label %700

558:                                              ; preds = %259
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %30, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %31, align 4
  br label %696

562:                                              ; preds = %260
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %30, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %31, align 4
  br label %683

566:                                              ; preds = %261
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %30, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %31, align 4
  br label %679

570:                                              ; preds = %262
  %571 = landingpad { ptr, i32 }
          cleanup
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %30, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %31, align 4
  br label %675

574:                                              ; preds = %263
  %575 = landingpad { ptr, i32 }
          cleanup
  %576 = extractvalue { ptr, i32 } %575, 0
  store ptr %576, ptr %30, align 8
  %577 = extractvalue { ptr, i32 } %575, 1
  store i32 %577, ptr %31, align 4
  br label %662

578:                                              ; preds = %264
  %579 = landingpad { ptr, i32 }
          cleanup
  %580 = extractvalue { ptr, i32 } %579, 0
  store ptr %580, ptr %30, align 8
  %581 = extractvalue { ptr, i32 } %579, 1
  store i32 %581, ptr %31, align 4
  br label %658

582:                                              ; preds = %265
  %583 = landingpad { ptr, i32 }
          cleanup
  %584 = extractvalue { ptr, i32 } %583, 0
  store ptr %584, ptr %30, align 8
  %585 = extractvalue { ptr, i32 } %583, 1
  store i32 %585, ptr %31, align 4
  br label %654

586:                                              ; preds = %266
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %30, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %31, align 4
  br label %647

590:                                              ; preds = %267
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %30, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %31, align 4
  br label %643

594:                                              ; preds = %268
  %595 = landingpad { ptr, i32 }
          cleanup
  %596 = extractvalue { ptr, i32 } %595, 0
  store ptr %596, ptr %30, align 8
  %597 = extractvalue { ptr, i32 } %595, 1
  store i32 %597, ptr %31, align 4
  br label %630

598:                                              ; preds = %269
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %30, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %31, align 4
  br label %617

602:                                              ; preds = %270
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %30, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %31, align 4
  br label %613

606:                                              ; preds = %271
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %30, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %31, align 4
  %610 = load i1, ptr %68, align 1
  br i1 %610, label %611, label %612

611:                                              ; preds = %606
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %612

612:                                              ; preds = %611, %606
  br label %613

613:                                              ; preds = %612, %602
  %614 = load i1, ptr %67, align 1
  br i1 %614, label %615, label %616

615:                                              ; preds = %613
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %616

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

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

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

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

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

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

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

626:                                              ; preds = %625, %623
  %627 = load i1, ptr %61, 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) %56) #9
  br label %629

629:                                              ; preds = %628, %626
  br label %630

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

632:                                              ; preds = %630
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  br label %633

633:                                              ; preds = %632, %630
  %634 = load i1, ptr %59, align 1
  br i1 %634, label %635, label %636

635:                                              ; preds = %633
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #9
  br label %636

636:                                              ; preds = %635, %633
  %637 = load i1, ptr %57, align 1
  br i1 %637, label %638, label %639

638:                                              ; preds = %636
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #9
  br label %639

639:                                              ; preds = %638, %636
  %640 = load i1, ptr %54, align 1
  br i1 %640, label %641, label %642

641:                                              ; preds = %639
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %642

642:                                              ; preds = %641, %639
  br label %643

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

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

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

647:                                              ; preds = %646, %586
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  %648 = load i1, ptr %51, align 1
  br i1 %648, label %649, label %650

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

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

652:                                              ; preds = %650
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %653

653:                                              ; preds = %652, %650
  br label %654

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

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

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

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

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

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

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

664:                                              ; preds = %662
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  br label %665

665:                                              ; preds = %664, %662
  %666 = load i1, ptr %45, align 1
  br i1 %666, label %667, label %668

667:                                              ; preds = %665
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #9
  br label %668

668:                                              ; preds = %667, %665
  %669 = load i1, ptr %43, align 1
  br i1 %669, label %670, label %671

670:                                              ; preds = %668
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #9
  br label %671

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

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

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

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

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

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

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

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

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

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

685:                                              ; preds = %683
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  br label %686

686:                                              ; preds = %685, %683
  %687 = load i1, ptr %37, align 1
  br i1 %687, label %688, label %689

688:                                              ; preds = %686
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #9
  br label %689

689:                                              ; preds = %688, %686
  %690 = load i1, ptr %35, align 1
  br i1 %690, label %691, label %692

691:                                              ; preds = %689
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  br label %692

692:                                              ; preds = %691, %689
  %693 = load i1, ptr %33, align 1
  br i1 %693, label %694, label %695

694:                                              ; preds = %692
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %695

695:                                              ; preds = %694, %692
  br label %696

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

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

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

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

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

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

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

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

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

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

711:                                              ; preds = %709
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  br label %712

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

714:                                              ; preds = %712
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  br label %715

715:                                              ; preds = %714, %712
  %716 = load i1, ptr %20, align 1
  br i1 %716, label %717, label %718

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

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

720:                                              ; preds = %718
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  br label %721

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

723:                                              ; preds = %721
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  br label %724

724:                                              ; preds = %723, %721
  br label %1643

725:                                              ; preds = %390
  %726 = landingpad { ptr, i32 }
          cleanup
  %727 = extractvalue { ptr, i32 } %726, 0
  store ptr %727, ptr %30, align 8
  %728 = extractvalue { ptr, i32 } %726, 1
  store i32 %728, ptr %31, align 4
  br label %871

729:                                              ; preds = %391
  %730 = landingpad { ptr, i32 }
          cleanup
  %731 = extractvalue { ptr, i32 } %730, 0
  store ptr %731, ptr %30, align 8
  %732 = extractvalue { ptr, i32 } %730, 1
  store i32 %732, ptr %31, align 4
  br label %867

733:                                              ; preds = %392
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %30, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %31, align 4
  br label %854

737:                                              ; preds = %393
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %30, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %31, align 4
  br label %850

741:                                              ; preds = %394
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %30, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %31, align 4
  br label %846

745:                                              ; preds = %395
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %30, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %31, align 4
  br label %833

749:                                              ; preds = %396
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %30, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %31, align 4
  br label %829

753:                                              ; preds = %397
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %30, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %31, align 4
  br label %825

757:                                              ; preds = %398
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %30, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %31, align 4
  br label %818

761:                                              ; preds = %399
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %30, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %31, align 4
  br label %814

765:                                              ; preds = %400
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %30, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %31, align 4
  br label %801

769:                                              ; preds = %401
  %770 = landingpad { ptr, i32 }
          cleanup
  %771 = extractvalue { ptr, i32 } %770, 0
  store ptr %771, ptr %30, align 8
  %772 = extractvalue { ptr, i32 } %770, 1
  store i32 %772, ptr %31, align 4
  br label %788

773:                                              ; preds = %402
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %30, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %31, align 4
  br label %784

777:                                              ; preds = %403
  %778 = landingpad { ptr, i32 }
          cleanup
  %779 = extractvalue { ptr, i32 } %778, 0
  store ptr %779, ptr %30, align 8
  %780 = extractvalue { ptr, i32 } %778, 1
  store i32 %780, ptr %31, align 4
  %781 = load i1, ptr %123, align 1
  br i1 %781, label %782, label %783

782:                                              ; preds = %777
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #9
  br label %783

783:                                              ; preds = %782, %777
  br label %784

784:                                              ; preds = %783, %773
  %785 = load i1, ptr %122, align 1
  br i1 %785, label %786, label %787

786:                                              ; preds = %784
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #9
  br label %787

787:                                              ; preds = %786, %784
  br label %788

788:                                              ; preds = %787, %769
  %789 = load i1, ptr %121, align 1
  br i1 %789, label %790, label %791

790:                                              ; preds = %788
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %119) #9
  br label %791

791:                                              ; preds = %790, %788
  %792 = load i1, ptr %120, align 1
  br i1 %792, label %793, label %794

793:                                              ; preds = %791
  call void @llvm.lifetime.end.p0(i64 1, ptr %119) #9
  br label %794

794:                                              ; preds = %793, %791
  %795 = load i1, ptr %118, align 1
  br i1 %795, label %796, label %797

796:                                              ; preds = %794
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #9
  br label %797

797:                                              ; preds = %796, %794
  %798 = load i1, ptr %116, align 1
  br i1 %798, label %799, label %800

799:                                              ; preds = %797
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #9
  br label %800

800:                                              ; preds = %799, %797
  br label %801

801:                                              ; preds = %800, %765
  %802 = load i1, ptr %115, align 1
  br i1 %802, label %803, label %804

803:                                              ; preds = %801
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  br label %804

804:                                              ; preds = %803, %801
  %805 = load i1, ptr %114, align 1
  br i1 %805, label %806, label %807

806:                                              ; preds = %804
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #9
  br label %807

807:                                              ; preds = %806, %804
  %808 = load i1, ptr %112, align 1
  br i1 %808, label %809, label %810

809:                                              ; preds = %807
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #9
  br label %810

810:                                              ; preds = %809, %807
  %811 = load i1, ptr %109, align 1
  br i1 %811, label %812, label %813

812:                                              ; preds = %810
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  br label %813

813:                                              ; preds = %812, %810
  br label %814

814:                                              ; preds = %813, %761
  %815 = load i1, ptr %108, align 1
  br i1 %815, label %816, label %817

816:                                              ; preds = %814
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  br label %817

817:                                              ; preds = %816, %814
  br label %818

818:                                              ; preds = %817, %757
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  %819 = load i1, ptr %106, align 1
  br i1 %819, label %820, label %821

820:                                              ; preds = %818
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #9
  br label %821

821:                                              ; preds = %820, %818
  %822 = load i1, ptr %104, align 1
  br i1 %822, label %823, label %824

823:                                              ; preds = %821
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %824

824:                                              ; preds = %823, %821
  br label %825

825:                                              ; preds = %824, %753
  %826 = load i1, ptr %103, align 1
  br i1 %826, label %827, label %828

827:                                              ; preds = %825
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %828

828:                                              ; preds = %827, %825
  br label %829

829:                                              ; preds = %828, %749
  %830 = load i1, ptr %102, align 1
  br i1 %830, label %831, label %832

831:                                              ; preds = %829
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  br label %832

832:                                              ; preds = %831, %829
  br label %833

833:                                              ; preds = %832, %745
  %834 = load i1, ptr %101, align 1
  br i1 %834, label %835, label %836

835:                                              ; preds = %833
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %99) #9
  br label %836

836:                                              ; preds = %835, %833
  %837 = load i1, ptr %100, align 1
  br i1 %837, label %838, label %839

838:                                              ; preds = %836
  call void @llvm.lifetime.end.p0(i64 1, ptr %99) #9
  br label %839

839:                                              ; preds = %838, %836
  %840 = load i1, ptr %98, align 1
  br i1 %840, label %841, label %842

841:                                              ; preds = %839
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #9
  br label %842

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

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

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

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

848:                                              ; preds = %846
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %849

849:                                              ; preds = %848, %846
  br label %850

850:                                              ; preds = %849, %737
  %851 = load i1, ptr %94, align 1
  br i1 %851, label %852, label %853

852:                                              ; preds = %850
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  br label %853

853:                                              ; preds = %852, %850
  br label %854

854:                                              ; preds = %853, %733
  %855 = load i1, ptr %93, align 1
  br i1 %855, label %856, label %857

856:                                              ; preds = %854
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #9
  br label %857

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

859:                                              ; preds = %857
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #9
  br label %860

860:                                              ; preds = %859, %857
  %861 = load i1, ptr %90, align 1
  br i1 %861, label %862, label %863

862:                                              ; preds = %860
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  br label %863

863:                                              ; preds = %862, %860
  %864 = load i1, ptr %88, align 1
  br i1 %864, label %865, label %866

865:                                              ; preds = %863
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  br label %866

866:                                              ; preds = %865, %863
  br label %867

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

869:                                              ; preds = %867
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  br label %870

870:                                              ; preds = %869, %867
  br label %871

871:                                              ; preds = %870, %725
  %872 = load i1, ptr %86, align 1
  br i1 %872, label %873, label %874

873:                                              ; preds = %871
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  br label %874

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

876:                                              ; preds = %874
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #9
  br label %877

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

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

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

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

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

885:                                              ; preds = %883
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  br label %886

886:                                              ; preds = %885, %883
  %887 = load i1, ptr %77, align 1
  br i1 %887, label %888, label %889

888:                                              ; preds = %886
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  br label %889

889:                                              ; preds = %888, %886
  %890 = load i1, ptr %75, align 1
  br i1 %890, label %891, label %892

891:                                              ; preds = %889
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #9
  br label %892

892:                                              ; preds = %891, %889
  %893 = load i1, ptr %73, align 1
  br i1 %893, label %894, label %895

894:                                              ; preds = %892
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #9
  br label %895

895:                                              ; preds = %894, %892
  br label %1642

896:                                              ; preds = %549
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #9
  %897 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 3
  %898 = load double, ptr %897, align 8, !tbaa !26
  %899 = load double, ptr %12, align 8, !tbaa !9
  %900 = call double @sin(double noundef %899) #9
  %901 = fmul double %898, %900
  %902 = load double, ptr %127, align 8, !tbaa !9
  %903 = fdiv double %901, %902
  %904 = call double @acos(double noundef %903) #9
  %905 = load double, ptr %12, align 8, !tbaa !9
  %906 = fadd double %904, %905
  store double %906, ptr %130, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #9
  %907 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 3
  %908 = load double, ptr %907, align 8, !tbaa !26
  %909 = load double, ptr %12, align 8, !tbaa !9
  %910 = call double @sin(double noundef %909) #9
  %911 = fmul double %908, %910
  %912 = load double, ptr %130, align 8, !tbaa !9
  %913 = load double, ptr %12, align 8, !tbaa !9
  %914 = fsub double %912, %913
  %915 = call double @sin(double noundef %914) #9
  %916 = load double, ptr %127, align 8, !tbaa !9
  %917 = fmul double %915, %916
  %918 = load double, ptr %127, align 8, !tbaa !9
  %919 = fmul double %917, %918
  %920 = fdiv double %911, %919
  store double %920, ptr %131, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #9
  %921 = load double, ptr %127, align 8, !tbaa !9
  %922 = load double, ptr %130, align 8, !tbaa !9
  %923 = call double @cos(double noundef %922) #9
  %924 = load double, ptr %12, align 8, !tbaa !9
  %925 = call double @sin(double noundef %924) #9
  %926 = fdiv double %923, %925
  %927 = fadd double %926, 1.000000e+00
  %928 = load double, ptr %124, align 8, !tbaa !9
  %929 = fneg double %928
  %930 = call double @llvm.fmuladd.f64(double %921, double %927, double %929)
  store double %930, ptr %132, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #9
  %931 = load double, ptr %130, align 8, !tbaa !9
  %932 = call double @cos(double noundef %931) #9
  %933 = load double, ptr %127, align 8, !tbaa !9
  %934 = load double, ptr %131, align 8, !tbaa !9
  %935 = fmul double %933, %934
  %936 = load double, ptr %130, align 8, !tbaa !9
  %937 = call double @sin(double noundef %936) #9
  %938 = fneg double %935
  %939 = call double @llvm.fmuladd.f64(double %938, double %937, double %932)
  %940 = load double, ptr %12, align 8, !tbaa !9
  %941 = call double @sin(double noundef %940) #9
  %942 = fdiv double %939, %941
  %943 = fadd double %942, 1.000000e+00
  store double %943, ptr %133, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #9
  %944 = load double, ptr %127, align 8, !tbaa !9
  %945 = load double, ptr %132, align 8, !tbaa !9
  %946 = load double, ptr %133, align 8, !tbaa !9
  %947 = fdiv double %945, %946
  %948 = fsub double %944, %947
  store double %948, ptr %134, align 8, !tbaa !9
  %949 = load double, ptr %134, align 8, !tbaa !9
  %950 = load double, ptr %127, align 8, !tbaa !9
  %951 = fsub double %949, %950
  %952 = load double, ptr %134, align 8, !tbaa !9
  %953 = fdiv double %951, %952
  %954 = call double @llvm.fabs.f64(double %953)
  %955 = load double, ptr @_ZN4Apex7EPSILONE, align 8, !tbaa !9
  %956 = fcmp olt double %954, %955
  br i1 %956, label %957, label %1268

957:                                              ; preds = %896
  %958 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 1
  store i32 30, ptr %958, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #9
  %959 = load double, ptr %13, align 8, !tbaa !9
  %960 = load double, ptr %134, align 8, !tbaa !9
  %961 = fdiv double %959, %960
  store double %961, ptr %135, align 8, !tbaa !9
  %962 = load double, ptr %124, align 8, !tbaa !9
  %963 = load double, ptr %134, align 8, !tbaa !9
  %964 = load double, ptr %130, align 8, !tbaa !9
  %965 = call double @cos(double noundef %964) #9
  %966 = load double, ptr %12, align 8, !tbaa !9
  %967 = call double @sin(double noundef %966) #9
  %968 = fdiv double %965, %967
  %969 = fadd double %968, 1.000000e+00
  %970 = fneg double %963
  %971 = call double @llvm.fmuladd.f64(double %970, double %969, double %962)
  %972 = call double @llvm.fabs.f64(double %971)
  %973 = load double, ptr @_ZN4Apex7EPSILONE, align 8, !tbaa !9
  %974 = fcmp olt double %972, %973
  store i1 false, ptr %138, align 1
  store i1 false, ptr %140, align 1
  store i1 false, ptr %142, align 1
  store i1 false, ptr %144, align 1
  store i1 false, ptr %146, align 1
  store i1 false, ptr %148, align 1
  store i1 false, ptr %150, align 1
  store i1 false, ptr %151, align 1
  store i1 false, ptr %152, align 1
  store i1 false, ptr %153, align 1
  store i1 false, ptr %155, align 1
  store i1 false, ptr %157, align 1
  store i1 false, ptr %158, align 1
  store i1 false, ptr %159, align 1
  store i1 false, ptr %160, align 1
  store i1 false, ptr %161, align 1
  store i1 false, ptr %163, align 1
  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
  store i1 false, ptr %169, align 1
  store i1 false, ptr %171, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #9
  store i1 false, ptr %173, align 1
  store i1 false, ptr %174, align 1
  store i1 false, ptr %177, align 1
  store i1 false, ptr %179, align 1
  store i1 false, ptr %180, align 1
  store i1 false, ptr %181, align 1
  store i1 false, ptr %183, align 1
  store i1 false, ptr %185, align 1
  store i1 false, ptr %186, align 1
  store i1 false, ptr %187, align 1
  store i1 false, ptr %188, align 1
  br i1 %974, label %991, label %975

975:                                              ; preds = %957
  call void @llvm.lifetime.start.p0(i64 32, ptr %137) #9
  store i1 true, ptr %138, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %139) #9
  store i1 true, ptr %140, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #9
  store i1 true, ptr %142, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %143) #9
  store i1 true, ptr %144, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %145) #9
  store i1 true, ptr %146, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %147) #9
  store i1 true, ptr %148, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %149) #9
  store i1 true, ptr %150, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #9
  store i1 true, ptr %151, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %149)
          to label %976 unwind label %1097

976:                                              ; preds = %975
  store i1 true, ptr %152, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %145, ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef @.str.1)
          to label %977 unwind label %1101

977:                                              ; preds = %976
  store i1 true, ptr %153, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #9
  store i1 true, ptr %155, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #9
  store i1 true, ptr %157, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #9
  store i1 true, ptr %158, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %978 unwind label %1105

978:                                              ; preds = %977
  store i1 true, ptr %159, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %143, ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 8 dereferenceable(32) %154)
          to label %979 unwind label %1109

979:                                              ; preds = %978
  store i1 true, ptr %160, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %141, ptr noundef nonnull align 8 dereferenceable(32) %143, ptr noundef @.str.2)
          to label %980 unwind label %1113

980:                                              ; preds = %979
  store i1 true, ptr %161, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %162) #9
  store i1 true, ptr %163, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %164) #9
  store i1 true, ptr %165, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #9
  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.3, ptr noundef nonnull align 1 dereferenceable(1) %164)
          to label %981 unwind label %1117

981:                                              ; preds = %980
  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 %139, ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %982 unwind label %1121

982:                                              ; preds = %981
  store i1 true, ptr %168, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %137, ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef @.str.4)
          to label %983 unwind label %1125

983:                                              ; preds = %982
  store i1 true, ptr %169, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %170) #9
  store i1 true, ptr %171, align 1
  store i32 341, ptr %172, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %170, ptr noundef nonnull align 4 dereferenceable(4) %172)
          to label %984 unwind label %1129

984:                                              ; preds = %983
  store i1 true, ptr %173, 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 %136, ptr noundef nonnull align 8 dereferenceable(32) %137, ptr noundef nonnull align 8 dereferenceable(32) %170)
          to label %985 unwind label %1133

985:                                              ; preds = %984
  store i1 true, ptr %174, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %176) #9
  store i1 true, ptr %177, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %178) #9
  store i1 true, ptr %179, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %178) #9
  store i1 true, ptr %180, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %178)
          to label %986 unwind label %1137

986:                                              ; preds = %985
  store i1 true, ptr %181, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %182) #9
  store i1 true, ptr %183, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %184) #9
  store i1 true, ptr %185, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #9
  store i1 true, ptr %186, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %184)
          to label %987 unwind label %1141

987:                                              ; preds = %986
  store i1 true, ptr %187, 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 %175, ptr noundef nonnull align 8 dereferenceable(32) %176, ptr noundef nonnull align 8 dereferenceable(32) %182)
          to label %988 unwind label %1145

988:                                              ; preds = %987
  store i1 true, ptr %188, align 1
  %989 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %136, ptr noundef %175, i32 noundef 0)
          to label %990 unwind label %1149

990:                                              ; preds = %988
  br label %991

991:                                              ; preds = %990, %957
  %992 = phi i1 [ true, %957 ], [ %989, %990 ]
  %993 = xor i1 %992, true
  %994 = load i1, ptr %188, align 1
  br i1 %994, label %995, label %996

995:                                              ; preds = %991
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #9
  br label %996

996:                                              ; preds = %995, %991
  %997 = load i1, ptr %187, align 1
  br i1 %997, label %998, label %999

998:                                              ; preds = %996
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #9
  br label %999

999:                                              ; preds = %998, %996
  %1000 = load i1, ptr %186, align 1
  br i1 %1000, label %1001, label %1002

1001:                                             ; preds = %999
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #9
  br label %1002

1002:                                             ; preds = %1001, %999
  %1003 = load i1, ptr %185, align 1
  br i1 %1003, label %1004, label %1005

1004:                                             ; preds = %1002
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #9
  br label %1005

1005:                                             ; preds = %1004, %1002
  %1006 = load i1, ptr %183, align 1
  br i1 %1006, label %1007, label %1008

1007:                                             ; preds = %1005
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #9
  br label %1008

1008:                                             ; preds = %1007, %1005
  %1009 = load i1, ptr %181, align 1
  br i1 %1009, label %1010, label %1011

1010:                                             ; preds = %1008
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #9
  br label %1011

1011:                                             ; preds = %1010, %1008
  %1012 = load i1, ptr %180, align 1
  br i1 %1012, label %1013, label %1014

1013:                                             ; preds = %1011
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %178) #9
  br label %1014

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

1016:                                             ; preds = %1014
  call void @llvm.lifetime.end.p0(i64 1, ptr %178) #9
  br label %1017

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

1019:                                             ; preds = %1017
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #9
  br label %1020

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

1022:                                             ; preds = %1020
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #9
  br label %1023

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

1025:                                             ; preds = %1023
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #9
  br label %1026

1026:                                             ; preds = %1025, %1023
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #9
  %1027 = load i1, ptr %171, align 1
  br i1 %1027, label %1028, label %1029

1028:                                             ; preds = %1026
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #9
  br label %1029

1029:                                             ; preds = %1028, %1026
  %1030 = load i1, ptr %169, align 1
  br i1 %1030, label %1031, label %1032

1031:                                             ; preds = %1029
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #9
  br label %1032

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

1034:                                             ; preds = %1032
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #9
  br label %1035

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

1037:                                             ; preds = %1035
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #9
  br label %1038

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

1040:                                             ; preds = %1038
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #9
  br label %1041

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

1043:                                             ; preds = %1041
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #9
  br label %1044

1044:                                             ; preds = %1043, %1041
  %1045 = load i1, ptr %163, align 1
  br i1 %1045, label %1046, label %1047

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

1047:                                             ; preds = %1046, %1044
  %1048 = load i1, ptr %161, align 1
  br i1 %1048, label %1049, label %1050

1049:                                             ; preds = %1047
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #9
  br label %1050

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

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

1053:                                             ; preds = %1052, %1050
  %1054 = load i1, ptr %159, align 1
  br i1 %1054, label %1055, label %1056

1055:                                             ; preds = %1053
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #9
  br label %1056

1056:                                             ; preds = %1055, %1053
  %1057 = load i1, ptr %158, align 1
  br i1 %1057, label %1058, label %1059

1058:                                             ; preds = %1056
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #9
  br label %1059

1059:                                             ; preds = %1058, %1056
  %1060 = load i1, ptr %157, align 1
  br i1 %1060, label %1061, label %1062

1061:                                             ; preds = %1059
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #9
  br label %1062

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

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

1065:                                             ; preds = %1064, %1062
  %1066 = load i1, ptr %153, 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) %145) #9
  br label %1068

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

1070:                                             ; preds = %1068
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #9
  br label %1071

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

1073:                                             ; preds = %1071
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #9
  br label %1074

1074:                                             ; preds = %1073, %1071
  %1075 = load i1, ptr %150, align 1
  br i1 %1075, label %1076, label %1077

1076:                                             ; preds = %1074
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #9
  br label %1077

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

1079:                                             ; preds = %1077
  call void @llvm.lifetime.end.p0(i64 32, ptr %147) #9
  br label %1080

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

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

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

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

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

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

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

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

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

1094:                                             ; preds = %1092
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #9
  br label %1095

1095:                                             ; preds = %1094, %1092
  %1096 = load double, ptr %135, align 8, !tbaa !9
  store double %1096, ptr %7, align 8
  store i32 1, ptr %129, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #9
  br label %1270

1097:                                             ; preds = %975
  %1098 = landingpad { ptr, i32 }
          cleanup
  %1099 = extractvalue { ptr, i32 } %1098, 0
  store ptr %1099, ptr %30, align 8
  %1100 = extractvalue { ptr, i32 } %1098, 1
  store i32 %1100, ptr %31, align 4
  br label %1243

1101:                                             ; preds = %976
  %1102 = landingpad { ptr, i32 }
          cleanup
  %1103 = extractvalue { ptr, i32 } %1102, 0
  store ptr %1103, ptr %30, align 8
  %1104 = extractvalue { ptr, i32 } %1102, 1
  store i32 %1104, ptr %31, align 4
  br label %1239

1105:                                             ; preds = %977
  %1106 = landingpad { ptr, i32 }
          cleanup
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %30, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %31, align 4
  br label %1226

1109:                                             ; preds = %978
  %1110 = landingpad { ptr, i32 }
          cleanup
  %1111 = extractvalue { ptr, i32 } %1110, 0
  store ptr %1111, ptr %30, align 8
  %1112 = extractvalue { ptr, i32 } %1110, 1
  store i32 %1112, ptr %31, align 4
  br label %1222

1113:                                             ; preds = %979
  %1114 = landingpad { ptr, i32 }
          cleanup
  %1115 = extractvalue { ptr, i32 } %1114, 0
  store ptr %1115, ptr %30, align 8
  %1116 = extractvalue { ptr, i32 } %1114, 1
  store i32 %1116, ptr %31, align 4
  br label %1218

1117:                                             ; preds = %980
  %1118 = landingpad { ptr, i32 }
          cleanup
  %1119 = extractvalue { ptr, i32 } %1118, 0
  store ptr %1119, ptr %30, align 8
  %1120 = extractvalue { ptr, i32 } %1118, 1
  store i32 %1120, ptr %31, align 4
  br label %1205

1121:                                             ; preds = %981
  %1122 = landingpad { ptr, i32 }
          cleanup
  %1123 = extractvalue { ptr, i32 } %1122, 0
  store ptr %1123, ptr %30, align 8
  %1124 = extractvalue { ptr, i32 } %1122, 1
  store i32 %1124, ptr %31, align 4
  br label %1201

1125:                                             ; preds = %982
  %1126 = landingpad { ptr, i32 }
          cleanup
  %1127 = extractvalue { ptr, i32 } %1126, 0
  store ptr %1127, ptr %30, align 8
  %1128 = extractvalue { ptr, i32 } %1126, 1
  store i32 %1128, ptr %31, align 4
  br label %1197

1129:                                             ; preds = %983
  %1130 = landingpad { ptr, i32 }
          cleanup
  %1131 = extractvalue { ptr, i32 } %1130, 0
  store ptr %1131, ptr %30, align 8
  %1132 = extractvalue { ptr, i32 } %1130, 1
  store i32 %1132, ptr %31, align 4
  br label %1190

1133:                                             ; preds = %984
  %1134 = landingpad { ptr, i32 }
          cleanup
  %1135 = extractvalue { ptr, i32 } %1134, 0
  store ptr %1135, ptr %30, align 8
  %1136 = extractvalue { ptr, i32 } %1134, 1
  store i32 %1136, ptr %31, align 4
  br label %1186

1137:                                             ; preds = %985
  %1138 = landingpad { ptr, i32 }
          cleanup
  %1139 = extractvalue { ptr, i32 } %1138, 0
  store ptr %1139, ptr %30, align 8
  %1140 = extractvalue { ptr, i32 } %1138, 1
  store i32 %1140, ptr %31, align 4
  br label %1173

1141:                                             ; preds = %986
  %1142 = landingpad { ptr, i32 }
          cleanup
  %1143 = extractvalue { ptr, i32 } %1142, 0
  store ptr %1143, ptr %30, align 8
  %1144 = extractvalue { ptr, i32 } %1142, 1
  store i32 %1144, ptr %31, align 4
  br label %1160

1145:                                             ; preds = %987
  %1146 = landingpad { ptr, i32 }
          cleanup
  %1147 = extractvalue { ptr, i32 } %1146, 0
  store ptr %1147, ptr %30, align 8
  %1148 = extractvalue { ptr, i32 } %1146, 1
  store i32 %1148, ptr %31, align 4
  br label %1156

1149:                                             ; preds = %988
  %1150 = landingpad { ptr, i32 }
          cleanup
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %30, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %31, align 4
  %1153 = load i1, ptr %188, align 1
  br i1 %1153, label %1154, label %1155

1154:                                             ; preds = %1149
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %175) #9
  br label %1155

1155:                                             ; preds = %1154, %1149
  br label %1156

1156:                                             ; preds = %1155, %1145
  %1157 = load i1, ptr %187, align 1
  br i1 %1157, label %1158, label %1159

1158:                                             ; preds = %1156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #9
  br label %1159

1159:                                             ; preds = %1158, %1156
  br label %1160

1160:                                             ; preds = %1159, %1141
  %1161 = load i1, ptr %186, align 1
  br i1 %1161, label %1162, label %1163

1162:                                             ; preds = %1160
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %184) #9
  br label %1163

1163:                                             ; preds = %1162, %1160
  %1164 = load i1, ptr %185, align 1
  br i1 %1164, label %1165, label %1166

1165:                                             ; preds = %1163
  call void @llvm.lifetime.end.p0(i64 1, ptr %184) #9
  br label %1166

1166:                                             ; preds = %1165, %1163
  %1167 = load i1, ptr %183, align 1
  br i1 %1167, label %1168, label %1169

1168:                                             ; preds = %1166
  call void @llvm.lifetime.end.p0(i64 32, ptr %182) #9
  br label %1169

1169:                                             ; preds = %1168, %1166
  %1170 = load i1, ptr %181, align 1
  br i1 %1170, label %1171, label %1172

1171:                                             ; preds = %1169
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #9
  br label %1172

1172:                                             ; preds = %1171, %1169
  br label %1173

1173:                                             ; preds = %1172, %1137
  %1174 = load i1, ptr %180, align 1
  br i1 %1174, label %1175, label %1176

1175:                                             ; preds = %1173
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %178) #9
  br label %1176

1176:                                             ; preds = %1175, %1173
  %1177 = load i1, ptr %179, align 1
  br i1 %1177, label %1178, label %1179

1178:                                             ; preds = %1176
  call void @llvm.lifetime.end.p0(i64 1, ptr %178) #9
  br label %1179

1179:                                             ; preds = %1178, %1176
  %1180 = load i1, ptr %177, align 1
  br i1 %1180, label %1181, label %1182

1181:                                             ; preds = %1179
  call void @llvm.lifetime.end.p0(i64 32, ptr %176) #9
  br label %1182

1182:                                             ; preds = %1181, %1179
  %1183 = load i1, ptr %174, align 1
  br i1 %1183, label %1184, label %1185

1184:                                             ; preds = %1182
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #9
  br label %1185

1185:                                             ; preds = %1184, %1182
  br label %1186

1186:                                             ; preds = %1185, %1133
  %1187 = load i1, ptr %173, align 1
  br i1 %1187, label %1188, label %1189

1188:                                             ; preds = %1186
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #9
  br label %1189

1189:                                             ; preds = %1188, %1186
  br label %1190

1190:                                             ; preds = %1189, %1129
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #9
  %1191 = load i1, ptr %171, align 1
  br i1 %1191, label %1192, label %1193

1192:                                             ; preds = %1190
  call void @llvm.lifetime.end.p0(i64 32, ptr %170) #9
  br label %1193

1193:                                             ; preds = %1192, %1190
  %1194 = load i1, ptr %169, align 1
  br i1 %1194, label %1195, label %1196

1195:                                             ; preds = %1193
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #9
  br label %1196

1196:                                             ; preds = %1195, %1193
  br label %1197

1197:                                             ; preds = %1196, %1125
  %1198 = load i1, ptr %168, align 1
  br i1 %1198, label %1199, label %1200

1199:                                             ; preds = %1197
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #9
  br label %1200

1200:                                             ; preds = %1199, %1197
  br label %1201

1201:                                             ; preds = %1200, %1121
  %1202 = load i1, ptr %167, align 1
  br i1 %1202, label %1203, label %1204

1203:                                             ; preds = %1201
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #9
  br label %1204

1204:                                             ; preds = %1203, %1201
  br label %1205

1205:                                             ; preds = %1204, %1117
  %1206 = load i1, ptr %166, align 1
  br i1 %1206, label %1207, label %1208

1207:                                             ; preds = %1205
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %164) #9
  br label %1208

1208:                                             ; preds = %1207, %1205
  %1209 = load i1, ptr %165, align 1
  br i1 %1209, label %1210, label %1211

1210:                                             ; preds = %1208
  call void @llvm.lifetime.end.p0(i64 1, ptr %164) #9
  br label %1211

1211:                                             ; preds = %1210, %1208
  %1212 = load i1, ptr %163, align 1
  br i1 %1212, label %1213, label %1214

1213:                                             ; preds = %1211
  call void @llvm.lifetime.end.p0(i64 32, ptr %162) #9
  br label %1214

1214:                                             ; preds = %1213, %1211
  %1215 = load i1, ptr %161, align 1
  br i1 %1215, label %1216, label %1217

1216:                                             ; preds = %1214
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #9
  br label %1217

1217:                                             ; preds = %1216, %1214
  br label %1218

1218:                                             ; preds = %1217, %1113
  %1219 = load i1, ptr %160, align 1
  br i1 %1219, label %1220, label %1221

1220:                                             ; preds = %1218
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %143) #9
  br label %1221

1221:                                             ; preds = %1220, %1218
  br label %1222

1222:                                             ; preds = %1221, %1109
  %1223 = load i1, ptr %159, align 1
  br i1 %1223, label %1224, label %1225

1224:                                             ; preds = %1222
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #9
  br label %1225

1225:                                             ; preds = %1224, %1222
  br label %1226

1226:                                             ; preds = %1225, %1105
  %1227 = load i1, ptr %158, align 1
  br i1 %1227, label %1228, label %1229

1228:                                             ; preds = %1226
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #9
  br label %1229

1229:                                             ; preds = %1228, %1226
  %1230 = load i1, ptr %157, align 1
  br i1 %1230, label %1231, label %1232

1231:                                             ; preds = %1229
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #9
  br label %1232

1232:                                             ; preds = %1231, %1229
  %1233 = load i1, ptr %155, align 1
  br i1 %1233, label %1234, label %1235

1234:                                             ; preds = %1232
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #9
  br label %1235

1235:                                             ; preds = %1234, %1232
  %1236 = load i1, ptr %153, align 1
  br i1 %1236, label %1237, label %1238

1237:                                             ; preds = %1235
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #9
  br label %1238

1238:                                             ; preds = %1237, %1235
  br label %1239

1239:                                             ; preds = %1238, %1101
  %1240 = load i1, ptr %152, align 1
  br i1 %1240, label %1241, label %1242

1241:                                             ; preds = %1239
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #9
  br label %1242

1242:                                             ; preds = %1241, %1239
  br label %1243

1243:                                             ; preds = %1242, %1097
  %1244 = load i1, ptr %151, align 1
  br i1 %1244, label %1245, label %1246

1245:                                             ; preds = %1243
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %149) #9
  br label %1246

1246:                                             ; preds = %1245, %1243
  %1247 = load i1, ptr %150, align 1
  br i1 %1247, label %1248, label %1249

1248:                                             ; preds = %1246
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #9
  br label %1249

1249:                                             ; preds = %1248, %1246
  %1250 = load i1, ptr %148, align 1
  br i1 %1250, label %1251, label %1252

1251:                                             ; preds = %1249
  call void @llvm.lifetime.end.p0(i64 32, ptr %147) #9
  br label %1252

1252:                                             ; preds = %1251, %1249
  %1253 = load i1, ptr %146, align 1
  br i1 %1253, label %1254, label %1255

1254:                                             ; preds = %1252
  call void @llvm.lifetime.end.p0(i64 32, ptr %145) #9
  br label %1255

1255:                                             ; preds = %1254, %1252
  %1256 = load i1, ptr %144, align 1
  br i1 %1256, label %1257, label %1258

1257:                                             ; preds = %1255
  call void @llvm.lifetime.end.p0(i64 32, ptr %143) #9
  br label %1258

1258:                                             ; preds = %1257, %1255
  %1259 = load i1, ptr %142, align 1
  br i1 %1259, label %1260, label %1261

1260:                                             ; preds = %1258
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #9
  br label %1261

1261:                                             ; preds = %1260, %1258
  %1262 = load i1, ptr %140, align 1
  br i1 %1262, label %1263, label %1264

1263:                                             ; preds = %1261
  call void @llvm.lifetime.end.p0(i64 32, ptr %139) #9
  br label %1264

1264:                                             ; preds = %1263, %1261
  %1265 = load i1, ptr %138, align 1
  br i1 %1265, label %1266, label %1267

1266:                                             ; preds = %1264
  call void @llvm.lifetime.end.p0(i64 32, ptr %137) #9
  br label %1267

1267:                                             ; preds = %1266, %1264
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #9
  br label %1641

1268:                                             ; preds = %896
  %1269 = load double, ptr %134, align 8, !tbaa !9
  store double %1269, ptr %127, align 8, !tbaa !9
  store i32 0, ptr %129, align 4
  br label %1270

1270:                                             ; preds = %1268, %1095
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #9
  %1271 = load i32, ptr %129, align 4
  switch i32 %1271, label %1276 [
    i32 0, label %1272
  ]

1272:                                             ; preds = %1270
  br label %1273

1273:                                             ; preds = %1272
  %1274 = load i32, ptr %128, align 4, !tbaa !19
  %1275 = add nsw i32 %1274, 1
  store i32 %1275, ptr %128, align 4, !tbaa !19
  br label %549, !llvm.loop !28

1276:                                             ; preds = %1270, %553
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #9
  %1277 = load i32, ptr %129, align 4
  switch i32 %1277, label %1288 [
    i32 2, label %1278
  ]

1278:                                             ; preds = %1276
  %1279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1280 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1279, ptr noundef @.str.22)
  %1281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1280, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1282 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1281, ptr noundef @.str.23)
  %1283 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1282, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1284 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1283, ptr noundef @.str.24)
  %1285 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1284, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1285, ptr noundef @.str.22)
  %1287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1286, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #10
  unreachable

1288:                                             ; preds = %1276
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #9
  br label %1290

1289:                                             ; preds = %524
  store i32 0, ptr %129, align 4
  br label %1290

1290:                                             ; preds = %1289, %1288
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #9
  %1291 = load i32, ptr %129, align 4
  switch i32 %1291, label %1639 [
    i32 0, label %1292
  ]

1292:                                             ; preds = %1290
  br label %1301

1293:                                             ; preds = %510
  %1294 = getelementptr inbounds %class.Apex, ptr %245, i32 0, i32 12
  %1295 = load i8, ptr %1294, align 2, !tbaa !30, !range !22, !noundef !23
  %1296 = trunc i8 %1295 to i1
  br i1 %1296, label %1297, label %1300

1297:                                             ; preds = %1293
  %1298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.25)
  %1299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  br label %1300

1300:                                             ; preds = %1297, %1293
  br label %1301

1301:                                             ; preds = %1300, %1292
  %1302 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 1
  store i32 31, ptr %1302, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #9
  %1303 = load double, ptr %13, align 8, !tbaa !9
  %1304 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 5
  %1305 = load double, ptr %1304, align 8, !tbaa !25
  %1306 = load double, ptr %12, align 8, !tbaa !9
  %1307 = fsub double %1305, %1306
  %1308 = call double @cos(double noundef %1307) #9
  %1309 = fmul double %1303, %1308
  %1310 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 4
  %1311 = load ptr, ptr %1310, align 8, !tbaa !20
  %1312 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %1311)
  %1313 = load double, ptr %12, align 8, !tbaa !9
  %1314 = call double @sin(double noundef %1313) #9
  %1315 = fmul double %1312, %1314
  %1316 = fdiv double %1309, %1315
  store double %1316, ptr %189, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %190) #9
  %1317 = load double, ptr %13, align 8, !tbaa !9
  %1318 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 5
  %1319 = load double, ptr %1318, align 8, !tbaa !25
  %1320 = call double @cos(double noundef %1319) #9
  %1321 = load double, ptr %12, align 8, !tbaa !9
  %1322 = call double @sin(double noundef %1321) #9
  %1323 = fadd double %1320, %1322
  %1324 = fmul double %1317, %1323
  %1325 = load double, ptr %124, align 8, !tbaa !9
  %1326 = load double, ptr %12, align 8, !tbaa !9
  %1327 = call double @sin(double noundef %1326) #9
  %1328 = fmul double %1325, %1327
  %1329 = fdiv double %1324, %1328
  store double %1329, ptr %190, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #9
  %1330 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef nonnull align 8 dereferenceable(8) %190)
  %1331 = load double, ptr %1330, align 8, !tbaa !9
  store double %1331, ptr %191, align 8, !tbaa !9
  %1332 = load double, ptr %191, align 8, !tbaa !9
  %1333 = fcmp olt double %1332, 0.000000e+00
  store i1 false, ptr %194, align 1
  store i1 false, ptr %196, align 1
  store i1 false, ptr %198, align 1
  store i1 false, ptr %200, align 1
  store i1 false, ptr %202, align 1
  store i1 false, ptr %204, align 1
  store i1 false, ptr %206, align 1
  store i1 false, ptr %207, align 1
  store i1 false, ptr %208, align 1
  store i1 false, ptr %209, align 1
  store i1 false, ptr %211, align 1
  store i1 false, ptr %213, align 1
  store i1 false, ptr %214, align 1
  store i1 false, ptr %215, align 1
  store i1 false, ptr %216, align 1
  store i1 false, ptr %217, align 1
  store i1 false, ptr %219, align 1
  store i1 false, ptr %221, align 1
  store i1 false, ptr %222, align 1
  store i1 false, ptr %223, align 1
  store i1 false, ptr %224, align 1
  store i1 false, ptr %225, align 1
  store i1 false, ptr %227, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %228) #9
  store i1 false, ptr %229, align 1
  store i1 false, ptr %230, align 1
  store i1 false, ptr %233, align 1
  store i1 false, ptr %235, align 1
  store i1 false, ptr %236, align 1
  store i1 false, ptr %237, align 1
  store i1 false, ptr %239, align 1
  store i1 false, ptr %241, align 1
  store i1 false, ptr %242, align 1
  store i1 false, ptr %243, align 1
  store i1 false, ptr %244, align 1
  br i1 %1333, label %1350, label %1334

1334:                                             ; preds = %1301
  call void @llvm.lifetime.start.p0(i64 32, ptr %193) #9
  store i1 true, ptr %194, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %195) #9
  store i1 true, ptr %196, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %197) #9
  store i1 true, ptr %198, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %199) #9
  store i1 true, ptr %200, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %201) #9
  store i1 true, ptr %202, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %203) #9
  store i1 true, ptr %204, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %205) #9
  store i1 true, ptr %206, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #9
  store i1 true, ptr %207, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %205)
          to label %1335 unwind label %1466

1335:                                             ; preds = %1334
  store i1 true, ptr %208, 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 %201, ptr noundef nonnull align 8 dereferenceable(32) %203, ptr noundef @.str.1)
          to label %1336 unwind label %1470

1336:                                             ; preds = %1335
  store i1 true, ptr %209, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %210) #9
  store i1 true, ptr %211, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %212) #9
  store i1 true, ptr %213, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #9
  store i1 true, ptr %214, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd, ptr noundef nonnull align 1 dereferenceable(1) %212)
          to label %1337 unwind label %1474

1337:                                             ; preds = %1336
  store i1 true, ptr %215, 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 %199, ptr noundef nonnull align 8 dereferenceable(32) %201, ptr noundef nonnull align 8 dereferenceable(32) %210)
          to label %1338 unwind label %1478

1338:                                             ; preds = %1337
  store i1 true, ptr %216, 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 %197, ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef @.str.2)
          to label %1339 unwind label %1482

1339:                                             ; preds = %1338
  store i1 true, ptr %217, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %218) #9
  store i1 true, ptr %219, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %220) #9
  store i1 true, ptr %221, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #9
  store i1 true, ptr %222, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %218, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %220)
          to label %1340 unwind label %1486

1340:                                             ; preds = %1339
  store i1 true, ptr %223, 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 %195, ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %218)
          to label %1341 unwind label %1490

1341:                                             ; preds = %1340
  store i1 true, ptr %224, 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 %193, ptr noundef nonnull align 8 dereferenceable(32) %195, ptr noundef @.str.4)
          to label %1342 unwind label %1494

1342:                                             ; preds = %1341
  store i1 true, ptr %225, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %226) #9
  store i1 true, ptr %227, align 1
  store i32 366, ptr %228, align 4, !tbaa !19
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %226, ptr noundef nonnull align 4 dereferenceable(4) %228)
          to label %1343 unwind label %1498

1343:                                             ; preds = %1342
  store i1 true, ptr %229, 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 %192, ptr noundef nonnull align 8 dereferenceable(32) %193, ptr noundef nonnull align 8 dereferenceable(32) %226)
          to label %1344 unwind label %1502

1344:                                             ; preds = %1343
  store i1 true, ptr %230, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %232) #9
  store i1 true, ptr %233, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %234) #9
  store i1 true, ptr %235, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #9
  store i1 true, ptr %236, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %232, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %234)
          to label %1345 unwind label %1506

1345:                                             ; preds = %1344
  store i1 true, ptr %237, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %238) #9
  store i1 true, ptr %239, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %240) #9
  store i1 true, ptr %241, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #9
  store i1 true, ptr %242, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %240)
          to label %1346 unwind label %1510

1346:                                             ; preds = %1345
  store i1 true, ptr %243, 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 %231, ptr noundef nonnull align 8 dereferenceable(32) %232, ptr noundef nonnull align 8 dereferenceable(32) %238)
          to label %1347 unwind label %1514

1347:                                             ; preds = %1346
  store i1 true, ptr %244, align 1
  %1348 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %192, ptr noundef %231, i32 noundef 0)
          to label %1349 unwind label %1518

1349:                                             ; preds = %1347
  br label %1350

1350:                                             ; preds = %1349, %1301
  %1351 = phi i1 [ true, %1301 ], [ %1348, %1349 ]
  %1352 = xor i1 %1351, true
  %1353 = load i1, ptr %244, align 1
  br i1 %1353, label %1354, label %1355

1354:                                             ; preds = %1350
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #9
  br label %1355

1355:                                             ; preds = %1354, %1350
  %1356 = load i1, ptr %243, align 1
  br i1 %1356, label %1357, label %1358

1357:                                             ; preds = %1355
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #9
  br label %1358

1358:                                             ; preds = %1357, %1355
  %1359 = load i1, ptr %242, align 1
  br i1 %1359, label %1360, label %1361

1360:                                             ; preds = %1358
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #9
  br label %1361

1361:                                             ; preds = %1360, %1358
  %1362 = load i1, ptr %241, align 1
  br i1 %1362, label %1363, label %1364

1363:                                             ; preds = %1361
  call void @llvm.lifetime.end.p0(i64 1, ptr %240) #9
  br label %1364

1364:                                             ; preds = %1363, %1361
  %1365 = load i1, ptr %239, align 1
  br i1 %1365, label %1366, label %1367

1366:                                             ; preds = %1364
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #9
  br label %1367

1367:                                             ; preds = %1366, %1364
  %1368 = load i1, ptr %237, align 1
  br i1 %1368, label %1369, label %1370

1369:                                             ; preds = %1367
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #9
  br label %1370

1370:                                             ; preds = %1369, %1367
  %1371 = load i1, ptr %236, align 1
  br i1 %1371, label %1372, label %1373

1372:                                             ; preds = %1370
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #9
  br label %1373

1373:                                             ; preds = %1372, %1370
  %1374 = load i1, ptr %235, align 1
  br i1 %1374, label %1375, label %1376

1375:                                             ; preds = %1373
  call void @llvm.lifetime.end.p0(i64 1, ptr %234) #9
  br label %1376

1376:                                             ; preds = %1375, %1373
  %1377 = load i1, ptr %233, align 1
  br i1 %1377, label %1378, label %1379

1378:                                             ; preds = %1376
  call void @llvm.lifetime.end.p0(i64 32, ptr %232) #9
  br label %1379

1379:                                             ; preds = %1378, %1376
  %1380 = load i1, ptr %230, align 1
  br i1 %1380, label %1381, label %1382

1381:                                             ; preds = %1379
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #9
  br label %1382

1382:                                             ; preds = %1381, %1379
  %1383 = load i1, ptr %229, align 1
  br i1 %1383, label %1384, label %1385

1384:                                             ; preds = %1382
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #9
  br label %1385

1385:                                             ; preds = %1384, %1382
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #9
  %1386 = load i1, ptr %227, align 1
  br i1 %1386, label %1387, label %1388

1387:                                             ; preds = %1385
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #9
  br label %1388

1388:                                             ; preds = %1387, %1385
  %1389 = load i1, ptr %225, align 1
  br i1 %1389, label %1390, label %1391

1390:                                             ; preds = %1388
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #9
  br label %1391

1391:                                             ; preds = %1390, %1388
  %1392 = load i1, ptr %224, align 1
  br i1 %1392, label %1393, label %1394

1393:                                             ; preds = %1391
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #9
  br label %1394

1394:                                             ; preds = %1393, %1391
  %1395 = load i1, ptr %223, align 1
  br i1 %1395, label %1396, label %1397

1396:                                             ; preds = %1394
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #9
  br label %1397

1397:                                             ; preds = %1396, %1394
  %1398 = load i1, ptr %222, align 1
  br i1 %1398, label %1399, label %1400

1399:                                             ; preds = %1397
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #9
  br label %1400

1400:                                             ; preds = %1399, %1397
  %1401 = load i1, ptr %221, align 1
  br i1 %1401, label %1402, label %1403

1402:                                             ; preds = %1400
  call void @llvm.lifetime.end.p0(i64 1, ptr %220) #9
  br label %1403

1403:                                             ; preds = %1402, %1400
  %1404 = load i1, ptr %219, align 1
  br i1 %1404, label %1405, label %1406

1405:                                             ; preds = %1403
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #9
  br label %1406

1406:                                             ; preds = %1405, %1403
  %1407 = load i1, ptr %217, align 1
  br i1 %1407, label %1408, label %1409

1408:                                             ; preds = %1406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #9
  br label %1409

1409:                                             ; preds = %1408, %1406
  %1410 = load i1, ptr %216, align 1
  br i1 %1410, label %1411, label %1412

1411:                                             ; preds = %1409
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #9
  br label %1412

1412:                                             ; preds = %1411, %1409
  %1413 = load i1, ptr %215, align 1
  br i1 %1413, label %1414, label %1415

1414:                                             ; preds = %1412
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #9
  br label %1415

1415:                                             ; preds = %1414, %1412
  %1416 = load i1, ptr %214, align 1
  br i1 %1416, label %1417, label %1418

1417:                                             ; preds = %1415
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #9
  br label %1418

1418:                                             ; preds = %1417, %1415
  %1419 = load i1, ptr %213, align 1
  br i1 %1419, label %1420, label %1421

1420:                                             ; preds = %1418
  call void @llvm.lifetime.end.p0(i64 1, ptr %212) #9
  br label %1421

1421:                                             ; preds = %1420, %1418
  %1422 = load i1, ptr %211, align 1
  br i1 %1422, label %1423, label %1424

1423:                                             ; preds = %1421
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #9
  br label %1424

1424:                                             ; preds = %1423, %1421
  %1425 = load i1, ptr %209, align 1
  br i1 %1425, label %1426, label %1427

1426:                                             ; preds = %1424
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #9
  br label %1427

1427:                                             ; preds = %1426, %1424
  %1428 = load i1, ptr %208, align 1
  br i1 %1428, label %1429, label %1430

1429:                                             ; preds = %1427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #9
  br label %1430

1430:                                             ; preds = %1429, %1427
  %1431 = load i1, ptr %207, align 1
  br i1 %1431, label %1432, label %1433

1432:                                             ; preds = %1430
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #9
  br label %1433

1433:                                             ; preds = %1432, %1430
  %1434 = load i1, ptr %206, align 1
  br i1 %1434, label %1435, label %1436

1435:                                             ; preds = %1433
  call void @llvm.lifetime.end.p0(i64 1, ptr %205) #9
  br label %1436

1436:                                             ; preds = %1435, %1433
  %1437 = load i1, ptr %204, align 1
  br i1 %1437, label %1438, label %1439

1438:                                             ; preds = %1436
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #9
  br label %1439

1439:                                             ; preds = %1438, %1436
  %1440 = load i1, ptr %202, align 1
  br i1 %1440, label %1441, label %1442

1441:                                             ; preds = %1439
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #9
  br label %1442

1442:                                             ; preds = %1441, %1439
  %1443 = load i1, ptr %200, align 1
  br i1 %1443, label %1444, label %1445

1444:                                             ; preds = %1442
  call void @llvm.lifetime.end.p0(i64 32, ptr %199) #9
  br label %1445

1445:                                             ; preds = %1444, %1442
  %1446 = load i1, ptr %198, align 1
  br i1 %1446, label %1447, label %1448

1447:                                             ; preds = %1445
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #9
  br label %1448

1448:                                             ; preds = %1447, %1445
  %1449 = load i1, ptr %196, align 1
  br i1 %1449, label %1450, label %1451

1450:                                             ; preds = %1448
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #9
  br label %1451

1451:                                             ; preds = %1450, %1448
  %1452 = load i1, ptr %194, align 1
  br i1 %1452, label %1453, label %1454

1453:                                             ; preds = %1451
  call void @llvm.lifetime.end.p0(i64 32, ptr %193) #9
  br label %1454

1454:                                             ; preds = %1453, %1451
  %1455 = load double, ptr %191, align 8, !tbaa !9
  %1456 = fcmp ogt double %1455, 0.000000e+00
  br i1 %1456, label %1457, label %1637

1457:                                             ; preds = %1454
  %1458 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.27)
  %1459 = getelementptr inbounds %class.LayerApex, ptr %245, i32 0, i32 5
  %1460 = load double, ptr %1459, align 8, !tbaa !25
  %1461 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1458, double noundef %1460)
  %1462 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1461, ptr noundef @.str.28)
  %1463 = load double, ptr %11, align 8, !tbaa !9
  %1464 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1462, double noundef %1463)
  %1465 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1464, ptr noundef @.str.28)
  br label %1637

1466:                                             ; preds = %1334
  %1467 = landingpad { ptr, i32 }
          cleanup
  %1468 = extractvalue { ptr, i32 } %1467, 0
  store ptr %1468, ptr %30, align 8
  %1469 = extractvalue { ptr, i32 } %1467, 1
  store i32 %1469, ptr %31, align 4
  br label %1612

1470:                                             ; preds = %1335
  %1471 = landingpad { ptr, i32 }
          cleanup
  %1472 = extractvalue { ptr, i32 } %1471, 0
  store ptr %1472, ptr %30, align 8
  %1473 = extractvalue { ptr, i32 } %1471, 1
  store i32 %1473, ptr %31, align 4
  br label %1608

1474:                                             ; preds = %1336
  %1475 = landingpad { ptr, i32 }
          cleanup
  %1476 = extractvalue { ptr, i32 } %1475, 0
  store ptr %1476, ptr %30, align 8
  %1477 = extractvalue { ptr, i32 } %1475, 1
  store i32 %1477, ptr %31, align 4
  br label %1595

1478:                                             ; preds = %1337
  %1479 = landingpad { ptr, i32 }
          cleanup
  %1480 = extractvalue { ptr, i32 } %1479, 0
  store ptr %1480, ptr %30, align 8
  %1481 = extractvalue { ptr, i32 } %1479, 1
  store i32 %1481, ptr %31, align 4
  br label %1591

1482:                                             ; preds = %1338
  %1483 = landingpad { ptr, i32 }
          cleanup
  %1484 = extractvalue { ptr, i32 } %1483, 0
  store ptr %1484, ptr %30, align 8
  %1485 = extractvalue { ptr, i32 } %1483, 1
  store i32 %1485, ptr %31, align 4
  br label %1587

1486:                                             ; preds = %1339
  %1487 = landingpad { ptr, i32 }
          cleanup
  %1488 = extractvalue { ptr, i32 } %1487, 0
  store ptr %1488, ptr %30, align 8
  %1489 = extractvalue { ptr, i32 } %1487, 1
  store i32 %1489, ptr %31, align 4
  br label %1574

1490:                                             ; preds = %1340
  %1491 = landingpad { ptr, i32 }
          cleanup
  %1492 = extractvalue { ptr, i32 } %1491, 0
  store ptr %1492, ptr %30, align 8
  %1493 = extractvalue { ptr, i32 } %1491, 1
  store i32 %1493, ptr %31, align 4
  br label %1570

1494:                                             ; preds = %1341
  %1495 = landingpad { ptr, i32 }
          cleanup
  %1496 = extractvalue { ptr, i32 } %1495, 0
  store ptr %1496, ptr %30, align 8
  %1497 = extractvalue { ptr, i32 } %1495, 1
  store i32 %1497, ptr %31, align 4
  br label %1566

1498:                                             ; preds = %1342
  %1499 = landingpad { ptr, i32 }
          cleanup
  %1500 = extractvalue { ptr, i32 } %1499, 0
  store ptr %1500, ptr %30, align 8
  %1501 = extractvalue { ptr, i32 } %1499, 1
  store i32 %1501, ptr %31, align 4
  br label %1559

1502:                                             ; preds = %1343
  %1503 = landingpad { ptr, i32 }
          cleanup
  %1504 = extractvalue { ptr, i32 } %1503, 0
  store ptr %1504, ptr %30, align 8
  %1505 = extractvalue { ptr, i32 } %1503, 1
  store i32 %1505, ptr %31, align 4
  br label %1555

1506:                                             ; preds = %1344
  %1507 = landingpad { ptr, i32 }
          cleanup
  %1508 = extractvalue { ptr, i32 } %1507, 0
  store ptr %1508, ptr %30, align 8
  %1509 = extractvalue { ptr, i32 } %1507, 1
  store i32 %1509, ptr %31, align 4
  br label %1542

1510:                                             ; preds = %1345
  %1511 = landingpad { ptr, i32 }
          cleanup
  %1512 = extractvalue { ptr, i32 } %1511, 0
  store ptr %1512, ptr %30, align 8
  %1513 = extractvalue { ptr, i32 } %1511, 1
  store i32 %1513, ptr %31, align 4
  br label %1529

1514:                                             ; preds = %1346
  %1515 = landingpad { ptr, i32 }
          cleanup
  %1516 = extractvalue { ptr, i32 } %1515, 0
  store ptr %1516, ptr %30, align 8
  %1517 = extractvalue { ptr, i32 } %1515, 1
  store i32 %1517, ptr %31, align 4
  br label %1525

1518:                                             ; preds = %1347
  %1519 = landingpad { ptr, i32 }
          cleanup
  %1520 = extractvalue { ptr, i32 } %1519, 0
  store ptr %1520, ptr %30, align 8
  %1521 = extractvalue { ptr, i32 } %1519, 1
  store i32 %1521, ptr %31, align 4
  %1522 = load i1, ptr %244, align 1
  br i1 %1522, label %1523, label %1524

1523:                                             ; preds = %1518
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #9
  br label %1524

1524:                                             ; preds = %1523, %1518
  br label %1525

1525:                                             ; preds = %1524, %1514
  %1526 = load i1, ptr %243, align 1
  br i1 %1526, label %1527, label %1528

1527:                                             ; preds = %1525
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %238) #9
  br label %1528

1528:                                             ; preds = %1527, %1525
  br label %1529

1529:                                             ; preds = %1528, %1510
  %1530 = load i1, ptr %242, align 1
  br i1 %1530, label %1531, label %1532

1531:                                             ; preds = %1529
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %240) #9
  br label %1532

1532:                                             ; preds = %1531, %1529
  %1533 = load i1, ptr %241, align 1
  br i1 %1533, label %1534, label %1535

1534:                                             ; preds = %1532
  call void @llvm.lifetime.end.p0(i64 1, ptr %240) #9
  br label %1535

1535:                                             ; preds = %1534, %1532
  %1536 = load i1, ptr %239, align 1
  br i1 %1536, label %1537, label %1538

1537:                                             ; preds = %1535
  call void @llvm.lifetime.end.p0(i64 32, ptr %238) #9
  br label %1538

1538:                                             ; preds = %1537, %1535
  %1539 = load i1, ptr %237, align 1
  br i1 %1539, label %1540, label %1541

1540:                                             ; preds = %1538
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %232) #9
  br label %1541

1541:                                             ; preds = %1540, %1538
  br label %1542

1542:                                             ; preds = %1541, %1506
  %1543 = load i1, ptr %236, align 1
  br i1 %1543, label %1544, label %1545

1544:                                             ; preds = %1542
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #9
  br label %1545

1545:                                             ; preds = %1544, %1542
  %1546 = load i1, ptr %235, align 1
  br i1 %1546, label %1547, label %1548

1547:                                             ; preds = %1545
  call void @llvm.lifetime.end.p0(i64 1, ptr %234) #9
  br label %1548

1548:                                             ; preds = %1547, %1545
  %1549 = load i1, ptr %233, align 1
  br i1 %1549, label %1550, label %1551

1550:                                             ; preds = %1548
  call void @llvm.lifetime.end.p0(i64 32, ptr %232) #9
  br label %1551

1551:                                             ; preds = %1550, %1548
  %1552 = load i1, ptr %230, align 1
  br i1 %1552, label %1553, label %1554

1553:                                             ; preds = %1551
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #9
  br label %1554

1554:                                             ; preds = %1553, %1551
  br label %1555

1555:                                             ; preds = %1554, %1502
  %1556 = load i1, ptr %229, align 1
  br i1 %1556, label %1557, label %1558

1557:                                             ; preds = %1555
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %226) #9
  br label %1558

1558:                                             ; preds = %1557, %1555
  br label %1559

1559:                                             ; preds = %1558, %1498
  call void @llvm.lifetime.end.p0(i64 4, ptr %228) #9
  %1560 = load i1, ptr %227, align 1
  br i1 %1560, label %1561, label %1562

1561:                                             ; preds = %1559
  call void @llvm.lifetime.end.p0(i64 32, ptr %226) #9
  br label %1562

1562:                                             ; preds = %1561, %1559
  %1563 = load i1, ptr %225, align 1
  br i1 %1563, label %1564, label %1565

1564:                                             ; preds = %1562
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %193) #9
  br label %1565

1565:                                             ; preds = %1564, %1562
  br label %1566

1566:                                             ; preds = %1565, %1494
  %1567 = load i1, ptr %224, align 1
  br i1 %1567, label %1568, label %1569

1568:                                             ; preds = %1566
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %195) #9
  br label %1569

1569:                                             ; preds = %1568, %1566
  br label %1570

1570:                                             ; preds = %1569, %1490
  %1571 = load i1, ptr %223, align 1
  br i1 %1571, label %1572, label %1573

1572:                                             ; preds = %1570
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %218) #9
  br label %1573

1573:                                             ; preds = %1572, %1570
  br label %1574

1574:                                             ; preds = %1573, %1486
  %1575 = load i1, ptr %222, align 1
  br i1 %1575, label %1576, label %1577

1576:                                             ; preds = %1574
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %220) #9
  br label %1577

1577:                                             ; preds = %1576, %1574
  %1578 = load i1, ptr %221, align 1
  br i1 %1578, label %1579, label %1580

1579:                                             ; preds = %1577
  call void @llvm.lifetime.end.p0(i64 1, ptr %220) #9
  br label %1580

1580:                                             ; preds = %1579, %1577
  %1581 = load i1, ptr %219, align 1
  br i1 %1581, label %1582, label %1583

1582:                                             ; preds = %1580
  call void @llvm.lifetime.end.p0(i64 32, ptr %218) #9
  br label %1583

1583:                                             ; preds = %1582, %1580
  %1584 = load i1, ptr %217, align 1
  br i1 %1584, label %1585, label %1586

1585:                                             ; preds = %1583
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %197) #9
  br label %1586

1586:                                             ; preds = %1585, %1583
  br label %1587

1587:                                             ; preds = %1586, %1482
  %1588 = load i1, ptr %216, align 1
  br i1 %1588, label %1589, label %1590

1589:                                             ; preds = %1587
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #9
  br label %1590

1590:                                             ; preds = %1589, %1587
  br label %1591

1591:                                             ; preds = %1590, %1478
  %1592 = load i1, ptr %215, align 1
  br i1 %1592, label %1593, label %1594

1593:                                             ; preds = %1591
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #9
  br label %1594

1594:                                             ; preds = %1593, %1591
  br label %1595

1595:                                             ; preds = %1594, %1474
  %1596 = load i1, ptr %214, align 1
  br i1 %1596, label %1597, label %1598

1597:                                             ; preds = %1595
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %212) #9
  br label %1598

1598:                                             ; preds = %1597, %1595
  %1599 = load i1, ptr %213, align 1
  br i1 %1599, label %1600, label %1601

1600:                                             ; preds = %1598
  call void @llvm.lifetime.end.p0(i64 1, ptr %212) #9
  br label %1601

1601:                                             ; preds = %1600, %1598
  %1602 = load i1, ptr %211, align 1
  br i1 %1602, label %1603, label %1604

1603:                                             ; preds = %1601
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #9
  br label %1604

1604:                                             ; preds = %1603, %1601
  %1605 = load i1, ptr %209, align 1
  br i1 %1605, label %1606, label %1607

1606:                                             ; preds = %1604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %201) #9
  br label %1607

1607:                                             ; preds = %1606, %1604
  br label %1608

1608:                                             ; preds = %1607, %1470
  %1609 = load i1, ptr %208, align 1
  br i1 %1609, label %1610, label %1611

1610:                                             ; preds = %1608
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %203) #9
  br label %1611

1611:                                             ; preds = %1610, %1608
  br label %1612

1612:                                             ; preds = %1611, %1466
  %1613 = load i1, ptr %207, align 1
  br i1 %1613, label %1614, label %1615

1614:                                             ; preds = %1612
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %205) #9
  br label %1615

1615:                                             ; preds = %1614, %1612
  %1616 = load i1, ptr %206, align 1
  br i1 %1616, label %1617, label %1618

1617:                                             ; preds = %1615
  call void @llvm.lifetime.end.p0(i64 1, ptr %205) #9
  br label %1618

1618:                                             ; preds = %1617, %1615
  %1619 = load i1, ptr %204, align 1
  br i1 %1619, label %1620, label %1621

1620:                                             ; preds = %1618
  call void @llvm.lifetime.end.p0(i64 32, ptr %203) #9
  br label %1621

1621:                                             ; preds = %1620, %1618
  %1622 = load i1, ptr %202, align 1
  br i1 %1622, label %1623, label %1624

1623:                                             ; preds = %1621
  call void @llvm.lifetime.end.p0(i64 32, ptr %201) #9
  br label %1624

1624:                                             ; preds = %1623, %1621
  %1625 = load i1, ptr %200, align 1
  br i1 %1625, label %1626, label %1627

1626:                                             ; preds = %1624
  call void @llvm.lifetime.end.p0(i64 32, ptr %199) #9
  br label %1627

1627:                                             ; preds = %1626, %1624
  %1628 = load i1, ptr %198, align 1
  br i1 %1628, label %1629, label %1630

1629:                                             ; preds = %1627
  call void @llvm.lifetime.end.p0(i64 32, ptr %197) #9
  br label %1630

1630:                                             ; preds = %1629, %1627
  %1631 = load i1, ptr %196, align 1
  br i1 %1631, label %1632, label %1633

1632:                                             ; preds = %1630
  call void @llvm.lifetime.end.p0(i64 32, ptr %195) #9
  br label %1633

1633:                                             ; preds = %1632, %1630
  %1634 = load i1, ptr %194, align 1
  br i1 %1634, label %1635, label %1636

1635:                                             ; preds = %1633
  call void @llvm.lifetime.end.p0(i64 32, ptr %193) #9
  br label %1636

1636:                                             ; preds = %1635, %1633
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #9
  br label %1641

1637:                                             ; preds = %1457, %1454
  %1638 = load double, ptr %191, align 8, !tbaa !9
  store double %1638, ptr %7, align 8
  store i32 1, ptr %129, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %190) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #9
  br label %1639

1639:                                             ; preds = %1637, %1290
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  %1640 = load double, ptr %7, align 8
  ret double %1640

1641:                                             ; preds = %1636, %1267
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #9
  br label %1642

1642:                                             ; preds = %1641, %895
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  br label %1643

1643:                                             ; preds = %1642, %724
  %1644 = load ptr, ptr %30, align 8
  %1645 = load i32, ptr %31, align 4
  %1646 = insertvalue { ptr, i32 } poison, ptr %1644, 0
  %1647 = insertvalue { ptr, i32 } %1646, i32 %1645, 1
  resume { ptr, i32 } %1647
}

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

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

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

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #8

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

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

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


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

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

@_ZN4Apex9SMALL_NUME = external local_unnamed_addr constant double, align 8
@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd = external hidden unnamed_addr constant [27 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [22 x i8], align 1
@_ZN4Apex15NEG_ALMOST_ZEROE = external local_unnamed_addr constant double, align 8
@_ZN4Apex7MAX_ITRE = external local_unnamed_addr constant i32, align 4
@_ZN4Apex7EPSILONE = external local_unnamed_addr constant double, align 8
@.str.21 = external hidden unnamed_addr constant [59 x i8], align 1
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.22 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZNK9LayerApex26layerCollapsePc_FromCentreEddddd(ptr nocapture noundef nonnull align 8 dereferenceable(144) %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, double noundef %5) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %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::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca double, align 8
  %27 = alloca double, align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca i32, align 4
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca i32, align 4
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::allocator", align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca i32, align 4
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = getelementptr inbounds i8, ptr %0, i64 88
  %88 = load i32, ptr %87, align 8, !tbaa !5
  %89 = icmp slt i32 %88, 0
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #9
  br i1 %89, label %112, label %90

90:                                               ; preds = %6
  %91 = getelementptr inbounds i8, ptr %0, i64 112
  %92 = load ptr, ptr %91, align 8, !tbaa !14
  %93 = tail call noundef ptr @_ZNK9ElemModel6elemanEv(ptr noundef nonnull align 8 dereferenceable(152) %92)
  %94 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Elem15trappingWatBulkEv(ptr noundef nonnull align 8 dereferenceable(408) %93)
  %95 = load i32, ptr %94, align 8, !tbaa !16
  %96 = icmp slt i32 %95, 0
  br i1 %96, label %112, label %97

97:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %98 unwind label %175

98:                                               ; preds = %97
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.1)
          to label %99 unwind label %177

99:                                               ; preds = %98
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %100 unwind label %179

100:                                              ; preds = %99
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %101 unwind label %181

101:                                              ; preds = %100
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.2)
          to label %102 unwind label %183

102:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %103 unwind label %185

103:                                              ; preds = %102
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %104 unwind label %187

104:                                              ; preds = %103
  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.4)
          to label %105 unwind label %189

105:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  store i32 320, ptr %20, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %106 unwind label %191

106:                                              ; preds = %105
  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) %19)
          to label %107 unwind label %193

107:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %108 unwind label %195

108:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %109 unwind label %197

109:                                              ; preds = %108
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %110 unwind label %199

110:                                              ; preds = %109
  %111 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %7, ptr noundef nonnull %21, i32 noundef 0)
          to label %.critedge609 unwind label %201

112:                                              ; preds = %90, %6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  br label %.critedge630

.critedge609:                                     ; preds = %110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  br label %.critedge630

.critedge630:                                     ; preds = %112, %.critedge609
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  %113 = getelementptr inbounds i8, ptr %0, i64 112
  %114 = load ptr, ptr %113, align 8, !tbaa !14
  %115 = call noundef double @_ZNK8VoidElem16minInitRecCntAngEv(ptr noundef nonnull align 8 dereferenceable(184) %114)
  store double %115, ptr %27, align 8, !tbaa !18
  %116 = getelementptr inbounds i8, ptr %0, i64 128
  %117 = load ptr, ptr %116, align 8, !tbaa !19
  call void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144) %117, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27, double noundef %2, double noundef %4, double noundef %5, i1 noundef zeroext false, i1 noundef zeroext false, i1 noundef zeroext false)
  %118 = load double, ptr %27, align 8, !tbaa !18
  %119 = fcmp oeq double %118, %3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #9
  br i1 %119, label %120, label %135

120:                                              ; preds = %.critedge630
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %121 unwind label %216

121:                                              ; preds = %120
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.1)
          to label %122 unwind label %218

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %123 unwind label %220

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

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

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %126 unwind label %226

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

127:                                              ; preds = %126
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.4)
          to label %128 unwind label %230

128:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #9
  store i32 323, ptr %41, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %129 unwind label %232

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

130:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %131 unwind label %236

131:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.20, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %132 unwind label %238

132:                                              ; preds = %131
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %45)
          to label %133 unwind label %240

133:                                              ; preds = %132
  %134 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %28, ptr noundef nonnull %42, i32 noundef 0)
          to label %.critedge645 unwind label %242

135:                                              ; preds = %.critedge630
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #9
  br label %.critedge666

.critedge645:                                     ; preds = %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  %.pre = load double, ptr %27, align 8, !tbaa !18
  br label %.critedge666

.critedge666:                                     ; preds = %135, %.critedge645
  %136 = phi double [ %118, %135 ], [ %.pre, %.critedge645 ]
  %137 = fdiv double %5, %2
  %138 = call double @cos(double noundef %136) #9
  %139 = call double @sin(double noundef %4) #9
  %140 = fdiv double %138, %139
  %141 = fadd double %140, -1.000000e+00
  %142 = fmul double %137, %141
  %143 = getelementptr inbounds i8, ptr %0, i64 83
  %144 = load i8, ptr %143, align 1, !tbaa !20, !range !21, !noundef !22
  %145 = trunc nuw i8 %144 to i1
  br i1 %145, label %146, label %367

146:                                              ; preds = %.critedge666
  %147 = getelementptr inbounds i8, ptr %0, i64 48
  %148 = load double, ptr %147, align 8, !tbaa !23
  %149 = getelementptr inbounds i8, ptr %0, i64 136
  %150 = load double, ptr %149, align 8, !tbaa !24
  %151 = call double @cos(double noundef %150) #9
  %152 = call double @sin(double noundef %4) #9
  %153 = insertelement <2 x double> poison, double %5, i64 0
  %154 = insertelement <2 x double> %153, double %151, i64 1
  %155 = insertelement <2 x double> poison, double %148, i64 0
  %156 = insertelement <2 x double> %155, double %152, i64 1
  %157 = fdiv <2 x double> %154, %156
  %158 = extractelement <2 x double> %157, i64 1
  %159 = fadd double %158, 1.000000e+00
  %160 = extractelement <2 x double> %157, i64 0
  %161 = fmul double %160, %159
  %162 = fsub double %161, %142
  %163 = load double, ptr @_ZN4Apex15NEG_ALMOST_ZEROE, align 8, !tbaa !18
  %164 = fcmp uge double %162, %163
  br i1 %164, label %.thread750, label %165

165:                                              ; preds = %146
  %166 = load i32, ptr @_ZN4Apex7MAX_ITRE, align 4, !tbaa !17
  %.not755 = icmp sgt i32 %166, 0
  br i1 %.not755, label %.critedge702.lr.ph, label %._crit_edge

.critedge702.lr.ph:                               ; preds = %165
  %167 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8, !tbaa !18
  %168 = fadd double %148, %167
  %169 = fdiv double %5, %168
  %170 = getelementptr inbounds i8, ptr %0, i64 120
  %171 = fneg double %142
  %172 = load double, ptr @_ZN4Apex7EPSILONE, align 8, !tbaa !18
  br label %.critedge702

173:                                              ; preds = %.critedge702
  %174 = add nuw nsw i32 %.0415757, 1
  %exitcond.not = icmp eq i32 %174, %166
  br i1 %exitcond.not, label %._crit_edge, label %.critedge702, !llvm.loop !25

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

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

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

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

183:                                              ; preds = %101
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %211

185:                                              ; preds = %102
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %210

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

189:                                              ; preds = %104
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %208

191:                                              ; preds = %105
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %207

193:                                              ; preds = %106
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %206

195:                                              ; preds = %107
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %205

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

199:                                              ; preds = %109
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %203

201:                                              ; preds = %110
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %203

203:                                              ; preds = %199, %201
  %.pn = phi { ptr, i32 } [ %202, %201 ], [ %200, %199 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %204

204:                                              ; preds = %197, %203
  %.pn.pn = phi { ptr, i32 } [ %.pn, %203 ], [ %198, %197 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %205

205:                                              ; preds = %195, %204
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %204 ], [ %196, %195 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  br label %206

206:                                              ; preds = %193, %205
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %205 ], [ %194, %193 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %207

207:                                              ; preds = %206, %191
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %206 ], [ %192, %191 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #9
  br label %208

208:                                              ; preds = %189, %207
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %207 ], [ %190, %189 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  br label %209

209:                                              ; preds = %187, %208
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %208 ], [ %188, %187 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %210

210:                                              ; preds = %185, %209
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %209 ], [ %186, %185 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  br label %211

211:                                              ; preds = %183, %210
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %210 ], [ %184, %183 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %212

212:                                              ; preds = %181, %211
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %211 ], [ %182, %181 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %213

213:                                              ; preds = %179, %212
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %212 ], [ %180, %179 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %214

214:                                              ; preds = %177, %213
  %.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, %213 ], [ %178, %177 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br label %215

215:                                              ; preds = %175, %214
  %.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, %214 ], [ %176, %175 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #9
  br label %464

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

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

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

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

224:                                              ; preds = %124
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %252

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

228:                                              ; preds = %126
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %250

230:                                              ; preds = %127
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %249

232:                                              ; preds = %128
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %248

234:                                              ; preds = %129
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %247

236:                                              ; preds = %130
  %237 = landingpad { ptr, i32 }
          cleanup
  br label %246

238:                                              ; preds = %131
  %239 = landingpad { ptr, i32 }
          cleanup
  br label %245

240:                                              ; preds = %132
  %241 = landingpad { ptr, i32 }
          cleanup
  br label %244

242:                                              ; preds = %133
  %243 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %244

244:                                              ; preds = %240, %242
  %.pn553 = phi { ptr, i32 } [ %243, %242 ], [ %241, %240 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %245

245:                                              ; preds = %238, %244
  %.pn553.pn = phi { ptr, i32 } [ %.pn553, %244 ], [ %239, %238 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %246

246:                                              ; preds = %236, %245
  %.pn553.pn.pn = phi { ptr, i32 } [ %.pn553.pn, %245 ], [ %237, %236 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %247

247:                                              ; preds = %234, %246
  %.pn553.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn, %246 ], [ %235, %234 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  br label %248

248:                                              ; preds = %247, %232
  %.pn553.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn, %247 ], [ %233, %232 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %249

249:                                              ; preds = %230, %248
  %.pn553.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn, %248 ], [ %231, %230 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %250

250:                                              ; preds = %228, %249
  %.pn553.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn.pn, %249 ], [ %229, %228 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %251

251:                                              ; preds = %226, %250
  %.pn553.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn.pn.pn, %250 ], [ %227, %226 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %252

252:                                              ; preds = %224, %251
  %.pn553.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn.pn.pn.pn, %251 ], [ %225, %224 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %253

253:                                              ; preds = %222, %252
  %.pn553.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn.pn.pn.pn.pn, %252 ], [ %223, %222 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %254

254:                                              ; preds = %220, %253
  %.pn553.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn.pn.pn.pn.pn.pn, %253 ], [ %221, %220 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %255

255:                                              ; preds = %218, %254
  %.pn553.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %254 ], [ %219, %218 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %256

256:                                              ; preds = %216, %255
  %.pn553.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %255 ], [ %217, %216 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  br label %463

.critedge702:                                     ; preds = %.critedge702.lr.ph, %173
  %.0415757 = phi i32 [ 0, %.critedge702.lr.ph ], [ %174, %173 ]
  %.0416756 = phi double [ %169, %.critedge702.lr.ph ], [ %285, %173 ]
  %257 = load double, ptr %170, align 8, !tbaa !27
  %258 = call double @sin(double noundef %4) #9
  %259 = fmul double %257, %258
  %260 = fdiv double %259, %.0416756
  %261 = call double @acos(double noundef %260) #9
  %262 = fadd double %261, %4
  %263 = load double, ptr %170, align 8, !tbaa !27
  %264 = call double @sin(double noundef %4) #9
  %265 = fmul double %263, %264
  %266 = fsub double %262, %4
  %267 = call double @sin(double noundef %266) #9
  %268 = fmul double %.0416756, %267
  %269 = fmul double %.0416756, %268
  %270 = fdiv double %265, %269
  %271 = call double @cos(double noundef %262) #9
  %272 = call double @sin(double noundef %4) #9
  %273 = fdiv double %271, %272
  %274 = fadd double %273, 1.000000e+00
  %275 = call double @llvm.fmuladd.f64(double %.0416756, double %274, double %171)
  %276 = call double @cos(double noundef %262) #9
  %277 = call double @sin(double noundef %262) #9
  %278 = fneg double %.0416756
  %279 = fmul double %270, %278
  %280 = call double @llvm.fmuladd.f64(double %279, double %277, double %276)
  %281 = call double @sin(double noundef %4) #9
  %282 = fdiv double %280, %281
  %283 = fadd double %282, 1.000000e+00
  %284 = fdiv double %275, %283
  %285 = fsub double %.0416756, %284
  %286 = fsub double %285, %.0416756
  %287 = fdiv double %286, %285
  %288 = call double @llvm.fabs.f64(double %287)
  %289 = fcmp uge double %288, %172
  br i1 %289, label %173, label %290

290:                                              ; preds = %.critedge702
  %291 = getelementptr inbounds i8, ptr %0, i64 104
  store i32 30, ptr %291, align 8, !tbaa !28
  %292 = fdiv double %5, %285
  %293 = call double @cos(double noundef %262) #9
  %294 = call double @sin(double noundef %4) #9
  %295 = fdiv double %293, %294
  %296 = fadd double %295, 1.000000e+00
  %297 = fneg double %285
  %298 = call double @llvm.fmuladd.f64(double %297, double %296, double %142)
  %299 = call double @llvm.fabs.f64(double %298)
  %300 = fcmp uge double %299, %172
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %60) #9
  br i1 %300, label %301, label %316

301:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %302 unwind label %317

302:                                              ; preds = %301
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.1)
          to label %303 unwind label %319

303:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %304 unwind label %321

304:                                              ; preds = %303
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %305 unwind label %323

305:                                              ; preds = %304
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.2)
          to label %306 unwind label %325

306:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %307 unwind label %327

307:                                              ; preds = %306
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %308 unwind label %329

308:                                              ; preds = %307
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.4)
          to label %309 unwind label %331

309:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #9
  store i32 341, ptr %60, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 4 dereferenceable(4) %60)
          to label %310 unwind label %333

310:                                              ; preds = %309
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %311 unwind label %335

311:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %312 unwind label %337

312:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %313 unwind label %339

313:                                              ; preds = %312
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %314 unwind label %341

314:                                              ; preds = %313
  %315 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %47, ptr noundef nonnull %61, i32 noundef 0)
          to label %.critedge681 unwind label %343

316:                                              ; preds = %290
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #9
  br label %462

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

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

319:                                              ; preds = %302
  %320 = landingpad { ptr, i32 }
          cleanup
  br label %356

321:                                              ; preds = %303
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %355

323:                                              ; preds = %304
  %324 = landingpad { ptr, i32 }
          cleanup
  br label %354

325:                                              ; preds = %305
  %326 = landingpad { ptr, i32 }
          cleanup
  br label %353

327:                                              ; preds = %306
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %352

329:                                              ; preds = %307
  %330 = landingpad { ptr, i32 }
          cleanup
  br label %351

331:                                              ; preds = %308
  %332 = landingpad { ptr, i32 }
          cleanup
  br label %350

333:                                              ; preds = %309
  %334 = landingpad { ptr, i32 }
          cleanup
  br label %349

335:                                              ; preds = %310
  %336 = landingpad { ptr, i32 }
          cleanup
  br label %348

337:                                              ; preds = %311
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %347

339:                                              ; preds = %312
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %346

341:                                              ; preds = %313
  %342 = landingpad { ptr, i32 }
          cleanup
  br label %345

343:                                              ; preds = %314
  %344 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  br label %345

345:                                              ; preds = %341, %343
  %.pn567 = phi { ptr, i32 } [ %344, %343 ], [ %342, %341 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  br label %346

346:                                              ; preds = %339, %345
  %.pn567.pn = phi { ptr, i32 } [ %.pn567, %345 ], [ %340, %339 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %347

347:                                              ; preds = %337, %346
  %.pn567.pn.pn = phi { ptr, i32 } [ %.pn567.pn, %346 ], [ %338, %337 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %348

348:                                              ; preds = %335, %347
  %.pn567.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn, %347 ], [ %336, %335 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %349

349:                                              ; preds = %348, %333
  %.pn567.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn, %348 ], [ %334, %333 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %350

350:                                              ; preds = %331, %349
  %.pn567.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn.pn, %349 ], [ %332, %331 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %351

351:                                              ; preds = %329, %350
  %.pn567.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn.pn.pn, %350 ], [ %330, %329 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %352

352:                                              ; preds = %327, %351
  %.pn567.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn.pn.pn.pn, %351 ], [ %328, %327 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %353

353:                                              ; preds = %325, %352
  %.pn567.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn.pn.pn.pn.pn, %352 ], [ %326, %325 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  br label %354

354:                                              ; preds = %323, %353
  %.pn567.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn.pn.pn.pn.pn.pn, %353 ], [ %324, %323 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %355

355:                                              ; preds = %321, %354
  %.pn567.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn.pn.pn.pn.pn.pn.pn, %354 ], [ %322, %321 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %356

356:                                              ; preds = %319, %355
  %.pn567.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %355 ], [ %320, %319 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %357

357:                                              ; preds = %317, %356
  %.pn567.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn567.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %356 ], [ %318, %317 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #9
  br label %463

._crit_edge:                                      ; preds = %173, %165
  %358 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %359 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull @.str.22)
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %359, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %361 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %360, ptr noundef nonnull @.str.23)
  %362 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %361, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %363 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %362, ptr noundef nonnull @.str.24)
  %364 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %363, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull @.str.22)
  %366 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %365, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #10
  unreachable

367:                                              ; preds = %.critedge666
  %368 = getelementptr inbounds i8, ptr %0, i64 82
  %369 = load i8, ptr %368, align 2, !tbaa !29, !range !21, !noundef !22
  %370 = trunc nuw i8 %369 to i1
  br i1 %370, label %371, label %.thread750

371:                                              ; preds = %367
  %372 = 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.25)
  %373 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout)
  br label %.thread750

.thread750:                                       ; preds = %146, %367, %371
  %374 = getelementptr inbounds i8, ptr %0, i64 104
  store i32 31, ptr %374, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %66) #9
  %375 = getelementptr inbounds i8, ptr %0, i64 136
  %376 = load double, ptr %375, align 8, !tbaa !24
  %377 = fsub double %376, %4
  %378 = call double @cos(double noundef %377) #9
  %379 = fmul double %378, %5
  %380 = load ptr, ptr %116, align 8, !tbaa !19
  %381 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %380)
  %382 = call double @sin(double noundef %4) #9
  %383 = fmul double %381, %382
  %384 = fdiv double %379, %383
  store double %384, ptr %66, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #9
  %385 = load double, ptr %375, align 8, !tbaa !24
  %386 = call double @cos(double noundef %385) #9
  %387 = call double @sin(double noundef %4) #9
  %388 = fadd double %386, %387
  %389 = fmul double %388, %5
  %390 = call double @sin(double noundef %4) #9
  %391 = fmul double %142, %390
  %392 = fdiv double %389, %391
  store double %392, ptr %67, align 8, !tbaa !18
  %393 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %67)
  %394 = load double, ptr %393, align 8, !tbaa !18
  %395 = fcmp uge double %394, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %81) #9
  br i1 %395, label %396, label %411

396:                                              ; preds = %.thread750
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %75) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %397 unwind label %420

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

398:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %77) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCentreEddddd, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %399 unwind label %424

399:                                              ; preds = %398
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %400 unwind label %426

400:                                              ; preds = %399
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str.2)
          to label %401 unwind label %428

401:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %79) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %402 unwind label %430

402:                                              ; preds = %401
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %403 unwind label %432

403:                                              ; preds = %402
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull @.str.4)
          to label %404 unwind label %434

404:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %80) #9
  store i32 366, ptr %81, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 4 dereferenceable(4) %81)
          to label %405 unwind label %436

405:                                              ; preds = %404
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %406 unwind label %438

406:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %407 unwind label %440

407:                                              ; preds = %406
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %408 unwind label %442

408:                                              ; preds = %407
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %409 unwind label %444

409:                                              ; preds = %408
  %410 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %68, ptr noundef nonnull %82, i32 noundef 0)
          to label %.critedge717 unwind label %446

411:                                              ; preds = %.thread750
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #9
  br label %.critedge738

.critedge717:                                     ; preds = %409
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #9
  br label %.critedge738

.critedge738:                                     ; preds = %411, %.critedge717
  %412 = fcmp ogt double %394, 0.000000e+00
  br i1 %412, label %413, label %461

413:                                              ; preds = %.critedge738
  %414 = 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.27)
  %415 = load double, ptr %375, align 8, !tbaa !24
  %416 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %414, double noundef %415)
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef nonnull @.str.28)
  %418 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %417, double noundef %3)
  %419 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef nonnull @.str.28)
  br label %461

420:                                              ; preds = %396
  %421 = landingpad { ptr, i32 }
          cleanup
  br label %460

422:                                              ; preds = %397
  %423 = landingpad { ptr, i32 }
          cleanup
  br label %459

424:                                              ; preds = %398
  %425 = landingpad { ptr, i32 }
          cleanup
  br label %458

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

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

430:                                              ; preds = %401
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %455

432:                                              ; preds = %402
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %454

434:                                              ; preds = %403
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %453

436:                                              ; preds = %404
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %452

438:                                              ; preds = %405
  %439 = landingpad { ptr, i32 }
          cleanup
  br label %451

440:                                              ; preds = %406
  %441 = landingpad { ptr, i32 }
          cleanup
  br label %450

442:                                              ; preds = %407
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %449

444:                                              ; preds = %408
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %448

446:                                              ; preds = %409
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  br label %448

448:                                              ; preds = %444, %446
  %.pn581 = phi { ptr, i32 } [ %447, %446 ], [ %445, %444 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  br label %449

449:                                              ; preds = %442, %448
  %.pn581.pn = phi { ptr, i32 } [ %.pn581, %448 ], [ %443, %442 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  br label %450

450:                                              ; preds = %440, %449
  %.pn581.pn.pn = phi { ptr, i32 } [ %.pn581.pn, %449 ], [ %441, %440 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %84) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %451

451:                                              ; preds = %438, %450
  %.pn581.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn, %450 ], [ %439, %438 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  br label %452

452:                                              ; preds = %451, %436
  %.pn581.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn, %451 ], [ %437, %436 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %81) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %80) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %453

453:                                              ; preds = %434, %452
  %.pn581.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn.pn, %452 ], [ %435, %434 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %454

454:                                              ; preds = %432, %453
  %.pn581.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn.pn.pn, %453 ], [ %433, %432 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %455

455:                                              ; preds = %430, %454
  %.pn581.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn.pn.pn.pn, %454 ], [ %431, %430 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %78) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  br label %456

456:                                              ; preds = %428, %455
  %.pn581.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn.pn.pn.pn.pn, %455 ], [ %429, %428 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %457

457:                                              ; preds = %426, %456
  %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn.pn.pn.pn.pn.pn, %456 ], [ %427, %426 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %458

458:                                              ; preds = %424, %457
  %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn, %457 ], [ %425, %424 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %77) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  br label %459

459:                                              ; preds = %422, %458
  %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %458 ], [ %423, %422 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %460

460:                                              ; preds = %420, %459
  %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %459 ], [ %421, %420 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %73) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #9
  br label %463

461:                                              ; preds = %413, %.critedge738
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %66) #9
  br label %462

462:                                              ; preds = %.critedge681, %316, %461
  %.4 = phi double [ %394, %461 ], [ %292, %316 ], [ %292, %.critedge681 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  ret double %.4

463:                                              ; preds = %357, %460, %256
  %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn553.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %256 ], [ %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %460 ], [ %.pn567.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %357 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  br label %464

464:                                              ; preds = %215, %463
  %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %463 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %215 ]
  resume { ptr, i32 } %.pn581.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #8

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { inlinehint mustprogress 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 = { 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 #4 = { 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 #5 = { 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 #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { noreturn 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, !12, i64 88}
!6 = !{!"_ZTS4Apex", !7, i64 8, !10, i64 16, !10, i64 24, !11, i64 32, !12, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 81, !7, i64 82, !7, i64 83, !13, i64 88}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"double", !8, i64 0}
!11 = !{!"any pointer", !8, i64 0}
!12 = !{!"int", !8, i64 0}
!13 = !{!"_ZTSSt4pairIidE", !12, i64 0, !10, i64 8}
!14 = !{!15, !11, i64 112}
!15 = !{!"_ZTS9LayerApex", !6, i64 0, !12, i64 104, !11, i64 112, !10, i64 120, !11, i64 128, !10, i64 136}
!16 = !{!13, !12, i64 0}
!17 = !{!12, !12, i64 0}
!18 = !{!10, !10, i64 0}
!19 = !{!15, !11, i64 128}
!20 = !{!6, !7, i64 83}
!21 = !{i8 0, i8 2}
!22 = !{}
!23 = !{!6, !10, i64 48}
!24 = !{!15, !10, i64 136}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!15, !10, i64 120}
!28 = !{!15, !12, i64 104}
!29 = !{!6, !7, i64 82}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass