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

; 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
@_ZN4Apex2PIE = 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
@.str.9 = external hidden unnamed_addr constant [3 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
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.22 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [44 x i8], align 1
@__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb = external hidden unnamed_addr constant [31 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [13 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: 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 @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) #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 @_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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb(ptr noundef nonnull align 8 dereferenceable(144) %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, i1 noundef zeroext %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 i8, align 1
  %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 %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca i1, align 1
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca i1, align 1
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca i1, align 1
  %76 = alloca %"class.std::__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::allocator", align 1
  %83 = alloca i1, align 1
  %84 = alloca i1, align 1
  %85 = alloca i1, align 1
  %86 = alloca i1, align 1
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca i1, align 1
  %89 = alloca %"class.std::allocator", align 1
  %90 = alloca i1, align 1
  %91 = alloca i1, align 1
  %92 = alloca i1, align 1
  %93 = alloca i1, align 1
  %94 = alloca i1, align 1
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca i1, align 1
  %97 = alloca %"class.std::allocator", align 1
  %98 = alloca i1, align 1
  %99 = alloca i1, align 1
  %100 = alloca i1, align 1
  %101 = alloca i1, align 1
  %102 = alloca i1, align 1
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca i1, align 1
  %105 = alloca i32, align 4
  %106 = alloca i1, align 1
  %107 = alloca i1, align 1
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca i1, align 1
  %111 = alloca %"class.std::allocator", align 1
  %112 = alloca i1, align 1
  %113 = alloca i1, align 1
  %114 = alloca i1, align 1
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca i1, align 1
  %117 = alloca %"class.std::allocator", align 1
  %118 = alloca i1, align 1
  %119 = alloca i1, align 1
  %120 = alloca i1, align 1
  %121 = alloca i1, align 1
  %122 = alloca double, align 8
  %123 = alloca double, align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca i1, align 1
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca i1, align 1
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca i1, align 1
  %131 = alloca %"class.std::__cxx11::basic_string", align 8
  %132 = alloca i1, align 1
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca i1, align 1
  %135 = alloca %"class.std::__cxx11::basic_string", align 8
  %136 = alloca i1, align 1
  %137 = alloca %"class.std::allocator", align 1
  %138 = alloca i1, align 1
  %139 = alloca i1, align 1
  %140 = alloca i1, align 1
  %141 = alloca i1, align 1
  %142 = alloca %"class.std::__cxx11::basic_string", align 8
  %143 = alloca i1, align 1
  %144 = alloca %"class.std::allocator", align 1
  %145 = alloca i1, align 1
  %146 = alloca i1, align 1
  %147 = alloca i1, align 1
  %148 = alloca i1, align 1
  %149 = alloca i1, align 1
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca i1, align 1
  %152 = alloca %"class.std::allocator", align 1
  %153 = alloca i1, align 1
  %154 = alloca i1, align 1
  %155 = alloca i1, align 1
  %156 = alloca i1, align 1
  %157 = alloca i1, align 1
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca i1, align 1
  %160 = alloca i32, align 4
  %161 = alloca i1, align 1
  %162 = alloca i1, align 1
  %163 = alloca %"class.std::__cxx11::basic_string", align 8
  %164 = alloca %"class.std::__cxx11::basic_string", align 8
  %165 = alloca i1, align 1
  %166 = alloca %"class.std::allocator", 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 %"class.std::allocator", align 1
  %173 = alloca i1, align 1
  %174 = alloca i1, align 1
  %175 = alloca i1, align 1
  %176 = alloca i1, align 1
  %177 = alloca double, align 8
  %178 = alloca double, align 8
  %179 = alloca double, align 8
  %180 = alloca double, align 8
  %181 = alloca %"class.std::__cxx11::basic_string", align 8
  %182 = alloca %"class.std::__cxx11::basic_string", align 8
  %183 = alloca i1, align 1
  %184 = alloca %"class.std::__cxx11::basic_string", align 8
  %185 = alloca i1, align 1
  %186 = alloca %"class.std::__cxx11::basic_string", align 8
  %187 = alloca i1, align 1
  %188 = alloca %"class.std::__cxx11::basic_string", align 8
  %189 = alloca i1, align 1
  %190 = alloca %"class.std::__cxx11::basic_string", align 8
  %191 = alloca i1, align 1
  %192 = alloca %"class.std::__cxx11::basic_string", align 8
  %193 = alloca i1, align 1
  %194 = alloca %"class.std::allocator", align 1
  %195 = alloca i1, align 1
  %196 = alloca i1, align 1
  %197 = alloca i1, align 1
  %198 = alloca i1, align 1
  %199 = alloca %"class.std::__cxx11::basic_string", align 8
  %200 = alloca i1, align 1
  %201 = alloca %"class.std::allocator", align 1
  %202 = alloca i1, align 1
  %203 = alloca i1, align 1
  %204 = alloca i1, align 1
  %205 = alloca i1, align 1
  %206 = alloca i1, align 1
  %207 = alloca %"class.std::__cxx11::basic_string", align 8
  %208 = alloca i1, align 1
  %209 = alloca %"class.std::allocator", align 1
  %210 = alloca i1, align 1
  %211 = alloca i1, align 1
  %212 = alloca i1, align 1
  %213 = alloca i1, align 1
  %214 = alloca i1, align 1
  %215 = alloca %"class.std::__cxx11::basic_string", align 8
  %216 = alloca i1, align 1
  %217 = alloca i32, align 4
  %218 = alloca i1, align 1
  %219 = alloca i1, align 1
  %220 = alloca %"class.std::__cxx11::basic_string", align 8
  %221 = alloca %"class.std::__cxx11::basic_string", align 8
  %222 = alloca i1, align 1
  %223 = alloca %"class.std::allocator", align 1
  %224 = alloca i1, align 1
  %225 = alloca i1, align 1
  %226 = alloca i1, align 1
  %227 = alloca %"class.std::__cxx11::basic_string", align 8
  %228 = alloca i1, align 1
  %229 = alloca %"class.std::allocator", align 1
  %230 = alloca i1, align 1
  %231 = alloca i1, align 1
  %232 = alloca i1, align 1
  %233 = alloca i1, align 1
  %234 = alloca double, align 8
  %235 = alloca double, align 8
  %236 = alloca i32, align 4
  %237 = alloca i32, align 4
  %238 = alloca double, align 8
  %239 = alloca double, align 8
  %240 = alloca double, align 8
  %241 = alloca double, align 8
  %242 = alloca double, align 8
  %243 = alloca double, align 8
  %244 = alloca double, align 8
  %245 = alloca %"class.std::__cxx11::basic_string", align 8
  %246 = alloca %"class.std::__cxx11::basic_string", align 8
  %247 = alloca i1, align 1
  %248 = alloca %"class.std::__cxx11::basic_string", align 8
  %249 = alloca i1, align 1
  %250 = alloca %"class.std::__cxx11::basic_string", align 8
  %251 = alloca i1, align 1
  %252 = alloca %"class.std::__cxx11::basic_string", align 8
  %253 = alloca i1, align 1
  %254 = alloca %"class.std::__cxx11::basic_string", align 8
  %255 = alloca i1, align 1
  %256 = alloca %"class.std::__cxx11::basic_string", align 8
  %257 = alloca i1, align 1
  %258 = alloca %"class.std::allocator", align 1
  %259 = alloca i1, align 1
  %260 = alloca i1, align 1
  %261 = alloca i1, align 1
  %262 = alloca i1, align 1
  %263 = alloca %"class.std::__cxx11::basic_string", align 8
  %264 = alloca i1, align 1
  %265 = alloca %"class.std::allocator", align 1
  %266 = alloca i1, align 1
  %267 = alloca i1, align 1
  %268 = alloca i1, align 1
  %269 = alloca i1, align 1
  %270 = alloca i1, align 1
  %271 = alloca %"class.std::__cxx11::basic_string", align 8
  %272 = alloca i1, align 1
  %273 = alloca %"class.std::allocator", align 1
  %274 = alloca i1, align 1
  %275 = alloca i1, align 1
  %276 = alloca i1, align 1
  %277 = alloca i1, align 1
  %278 = alloca i1, align 1
  %279 = alloca %"class.std::__cxx11::basic_string", align 8
  %280 = alloca i1, align 1
  %281 = alloca i32, align 4
  %282 = alloca i1, align 1
  %283 = alloca i1, align 1
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.std::__cxx11::basic_string", align 8
  %286 = alloca i1, align 1
  %287 = alloca %"class.std::allocator", align 1
  %288 = alloca i1, align 1
  %289 = alloca i1, align 1
  %290 = alloca i1, align 1
  %291 = alloca %"class.std::__cxx11::basic_string", align 8
  %292 = alloca i1, align 1
  %293 = alloca %"class.std::allocator", align 1
  %294 = alloca i1, align 1
  %295 = alloca i1, align 1
  %296 = alloca i1, align 1
  %297 = alloca i1, align 1
  %298 = alloca %"class.std::__cxx11::basic_string", align 8
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca i1, align 1
  %301 = alloca %"class.std::__cxx11::basic_string", align 8
  %302 = alloca i1, align 1
  %303 = alloca %"class.std::__cxx11::basic_string", align 8
  %304 = alloca i1, align 1
  %305 = alloca %"class.std::__cxx11::basic_string", align 8
  %306 = alloca i1, align 1
  %307 = alloca %"class.std::__cxx11::basic_string", align 8
  %308 = alloca i1, align 1
  %309 = alloca %"class.std::__cxx11::basic_string", align 8
  %310 = alloca i1, align 1
  %311 = alloca %"class.std::allocator", align 1
  %312 = alloca i1, align 1
  %313 = alloca i1, align 1
  %314 = alloca i1, align 1
  %315 = alloca i1, align 1
  %316 = alloca %"class.std::__cxx11::basic_string", align 8
  %317 = alloca i1, align 1
  %318 = alloca %"class.std::allocator", align 1
  %319 = alloca i1, align 1
  %320 = alloca i1, align 1
  %321 = alloca i1, align 1
  %322 = alloca i1, align 1
  %323 = alloca i1, align 1
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca i1, align 1
  %326 = alloca %"class.std::allocator", align 1
  %327 = alloca i1, align 1
  %328 = alloca i1, align 1
  %329 = alloca i1, align 1
  %330 = alloca i1, align 1
  %331 = alloca i1, align 1
  %332 = alloca %"class.std::__cxx11::basic_string", align 8
  %333 = alloca i1, align 1
  %334 = alloca i32, align 4
  %335 = alloca i1, align 1
  %336 = alloca i1, align 1
  %337 = alloca %"class.std::__cxx11::basic_string", align 8
  %338 = alloca %"class.std::__cxx11::basic_string", align 8
  %339 = alloca i1, align 1
  %340 = alloca %"class.std::allocator", align 1
  %341 = alloca i1, align 1
  %342 = alloca i1, align 1
  %343 = alloca i1, align 1
  %344 = alloca %"class.std::__cxx11::basic_string", align 8
  %345 = alloca i1, align 1
  %346 = alloca %"class.std::allocator", align 1
  %347 = alloca i1, align 1
  %348 = alloca i1, align 1
  %349 = alloca i1, align 1
  %350 = alloca i1, align 1
  %351 = alloca double, align 8
  %352 = alloca double, align 8
  %353 = alloca double, align 8
  %354 = alloca %"class.std::__cxx11::basic_string", align 8
  %355 = alloca %"class.std::__cxx11::basic_string", align 8
  %356 = alloca i1, align 1
  %357 = alloca %"class.std::__cxx11::basic_string", align 8
  %358 = alloca i1, align 1
  %359 = alloca %"class.std::__cxx11::basic_string", align 8
  %360 = alloca i1, align 1
  %361 = alloca %"class.std::__cxx11::basic_string", align 8
  %362 = alloca i1, align 1
  %363 = alloca %"class.std::__cxx11::basic_string", align 8
  %364 = alloca i1, align 1
  %365 = alloca %"class.std::__cxx11::basic_string", align 8
  %366 = alloca i1, align 1
  %367 = alloca %"class.std::allocator", align 1
  %368 = alloca i1, align 1
  %369 = alloca i1, align 1
  %370 = alloca i1, align 1
  %371 = alloca i1, align 1
  %372 = alloca %"class.std::__cxx11::basic_string", align 8
  %373 = alloca i1, align 1
  %374 = alloca %"class.std::allocator", align 1
  %375 = alloca i1, align 1
  %376 = alloca i1, align 1
  %377 = alloca i1, align 1
  %378 = alloca i1, align 1
  %379 = alloca i1, align 1
  %380 = alloca %"class.std::__cxx11::basic_string", align 8
  %381 = alloca i1, align 1
  %382 = alloca %"class.std::allocator", align 1
  %383 = alloca i1, align 1
  %384 = alloca i1, align 1
  %385 = alloca i1, align 1
  %386 = alloca i1, align 1
  %387 = alloca i1, align 1
  %388 = alloca %"class.std::__cxx11::basic_string", align 8
  %389 = alloca i1, align 1
  %390 = alloca i32, align 4
  %391 = alloca i1, align 1
  %392 = alloca i1, align 1
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::__cxx11::basic_string", align 8
  %395 = alloca i1, align 1
  %396 = alloca %"class.std::allocator", align 1
  %397 = alloca i1, align 1
  %398 = alloca i1, align 1
  %399 = alloca i1, align 1
  %400 = alloca %"class.std::__cxx11::basic_string", align 8
  %401 = alloca i1, align 1
  %402 = alloca %"class.std::allocator", align 1
  %403 = alloca i1, align 1
  %404 = alloca i1, align 1
  %405 = alloca i1, align 1
  %406 = alloca i1, align 1
  %407 = alloca double, align 8
  %408 = alloca double, align 8
  %409 = alloca double, align 8
  %410 = alloca %"class.std::__cxx11::basic_string", align 8
  %411 = alloca %"class.std::__cxx11::basic_string", align 8
  %412 = alloca i1, align 1
  %413 = alloca %"class.std::__cxx11::basic_string", align 8
  %414 = alloca i1, align 1
  %415 = alloca %"class.std::__cxx11::basic_string", align 8
  %416 = alloca i1, align 1
  %417 = alloca %"class.std::__cxx11::basic_string", align 8
  %418 = alloca i1, align 1
  %419 = alloca %"class.std::__cxx11::basic_string", align 8
  %420 = alloca i1, align 1
  %421 = alloca %"class.std::__cxx11::basic_string", align 8
  %422 = alloca i1, align 1
  %423 = alloca %"class.std::allocator", align 1
  %424 = alloca i1, align 1
  %425 = alloca i1, align 1
  %426 = alloca i1, align 1
  %427 = alloca i1, align 1
  %428 = alloca %"class.std::__cxx11::basic_string", align 8
  %429 = alloca i1, align 1
  %430 = alloca %"class.std::allocator", align 1
  %431 = alloca i1, align 1
  %432 = alloca i1, align 1
  %433 = alloca i1, align 1
  %434 = alloca i1, align 1
  %435 = alloca i1, align 1
  %436 = alloca %"class.std::__cxx11::basic_string", align 8
  %437 = alloca i1, align 1
  %438 = alloca %"class.std::allocator", align 1
  %439 = alloca i1, align 1
  %440 = alloca i1, align 1
  %441 = alloca i1, align 1
  %442 = alloca i1, align 1
  %443 = alloca i1, align 1
  %444 = alloca %"class.std::__cxx11::basic_string", align 8
  %445 = alloca i1, align 1
  %446 = alloca i32, align 4
  %447 = alloca i1, align 1
  %448 = alloca i1, align 1
  %449 = alloca %"class.std::__cxx11::basic_string", align 8
  %450 = alloca %"class.std::__cxx11::basic_string", align 8
  %451 = alloca i1, align 1
  %452 = alloca %"class.std::allocator", align 1
  %453 = alloca i1, align 1
  %454 = alloca i1, align 1
  %455 = alloca i1, align 1
  %456 = alloca %"class.std::__cxx11::basic_string", align 8
  %457 = alloca i1, align 1
  %458 = alloca %"class.std::allocator", align 1
  %459 = alloca i1, align 1
  %460 = alloca i1, align 1
  %461 = alloca i1, align 1
  %462 = 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
  %463 = zext i1 %5 to i8
  store i8 %463, ptr %13, align 1, !tbaa !11
  %464 = load ptr, ptr %8, align 8
  %465 = getelementptr inbounds %class.Apex, ptr %464, i32 0, i32 14
  %466 = getelementptr inbounds %"struct.std::pair", ptr %465, i32 0, i32 0
  %467 = load i32, ptr %466, align 8, !tbaa !13
  %468 = icmp slt i32 %467, 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 %468, label %485, label %469

469:                                              ; preds = %6
  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 %470 unwind label %730

470:                                              ; preds = %469
  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 %471 unwind label %734

471:                                              ; preds = %470
  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__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %472 unwind label %738

472:                                              ; preds = %471
  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 %473 unwind label %742

473:                                              ; preds = %472
  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 %474 unwind label %746

474:                                              ; preds = %473
  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 %475 unwind label %750

475:                                              ; preds = %474
  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 %476 unwind label %754

476:                                              ; preds = %475
  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 %477 unwind label %758

477:                                              ; preds = %476
  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 450, ptr %52, align 4, !tbaa !17
  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 %478 unwind label %762

478:                                              ; preds = %477
  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 %479 unwind label %766

479:                                              ; preds = %478
  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 %480 unwind label %770

480:                                              ; preds = %479
  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.29, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %481 unwind label %774

481:                                              ; preds = %480
  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 %482 unwind label %778

482:                                              ; preds = %481
  store i1 true, ptr %68, align 1
  %483 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %14, ptr noundef %55, i32 noundef 0)
          to label %484 unwind label %782

484:                                              ; preds = %482
  br label %485

485:                                              ; preds = %484, %6
  %486 = phi i1 [ true, %6 ], [ %483, %484 ]
  %487 = xor i1 %486, true
  %488 = load i1, ptr %68, align 1
  br i1 %488, label %489, label %490

489:                                              ; preds = %485
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %490

490:                                              ; preds = %489, %485
  %491 = load i1, ptr %67, align 1
  br i1 %491, label %492, label %493

492:                                              ; preds = %490
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %493

493:                                              ; preds = %492, %490
  %494 = load i1, ptr %66, align 1
  br i1 %494, label %495, label %496

495:                                              ; preds = %493
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  br label %496

496:                                              ; preds = %495, %493
  %497 = load i1, ptr %65, align 1
  br i1 %497, label %498, label %499

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

499:                                              ; preds = %498, %496
  %500 = load i1, ptr %63, align 1
  br i1 %500, label %501, label %502

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

502:                                              ; preds = %501, %499
  %503 = load i1, ptr %61, align 1
  br i1 %503, label %504, label %505

504:                                              ; preds = %502
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  br label %505

505:                                              ; preds = %504, %502
  %506 = load i1, ptr %60, align 1
  br i1 %506, label %507, label %508

507:                                              ; preds = %505
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  br label %508

508:                                              ; preds = %507, %505
  %509 = load i1, ptr %59, align 1
  br i1 %509, label %510, label %511

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

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

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

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

516:                                              ; preds = %514
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %517

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

519:                                              ; preds = %517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %520

520:                                              ; preds = %519, %517
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  %521 = load i1, ptr %51, align 1
  br i1 %521, label %522, label %523

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

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

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

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

528:                                              ; preds = %526
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %529

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

531:                                              ; preds = %529
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %532

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

534:                                              ; preds = %532
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  br label %535

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

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

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

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

541:                                              ; preds = %540, %538
  %542 = load i1, ptr %41, align 1
  br i1 %542, label %543, label %544

543:                                              ; preds = %541
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %544

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

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

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

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

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

552:                                              ; preds = %550
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  br label %553

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

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

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

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

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

561:                                              ; preds = %559
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %562

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

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

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

567:                                              ; preds = %565
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #9
  br label %568

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

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

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

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

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

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

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

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

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

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

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

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

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

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

589:                                              ; preds = %588, %586
  %590 = getelementptr inbounds %class.Apex, ptr %464, i32 0, i32 12
  %591 = load i8, ptr %590, align 2, !tbaa !18, !range !19, !noundef !20
  %592 = trunc i8 %591 to i1
  br i1 %592, label %593, label %597

593:                                              ; preds = %589
  %594 = getelementptr inbounds %class.Apex, ptr %464, i32 0, i32 13
  %595 = load i8, ptr %594, align 1, !tbaa !21, !range !19, !noundef !20
  %596 = trunc i8 %595 to i1
  br i1 %596, label %597, label %605

597:                                              ; preds = %593, %589
  %598 = getelementptr inbounds %class.Apex, ptr %464, i32 0, i32 12
  %599 = load i8, ptr %598, align 2, !tbaa !18, !range !19, !noundef !20
  %600 = trunc i8 %599 to i1
  br i1 %600, label %1072, label %601

601:                                              ; preds = %597
  %602 = getelementptr inbounds %class.Apex, ptr %464, i32 0, i32 13
  %603 = load i8, ptr %602, align 1, !tbaa !21, !range !19, !noundef !20
  %604 = trunc i8 %603 to i1
  br i1 %604, label %605, label %1072

605:                                              ; preds = %601, %593
  %606 = getelementptr inbounds %class.Apex, ptr %464, i32 0, i32 13
  %607 = load i8, ptr %606, align 1, !tbaa !21, !range !19, !noundef !20
  %608 = trunc i8 %607 to i1
  store i1 false, ptr %71, align 1
  store i1 false, ptr %73, align 1
  store i1 false, ptr %75, align 1
  store i1 false, ptr %77, align 1
  store i1 false, ptr %79, align 1
  store i1 false, ptr %81, align 1
  store i1 false, ptr %83, align 1
  store i1 false, ptr %84, align 1
  store i1 false, ptr %85, align 1
  store i1 false, ptr %86, align 1
  store i1 false, ptr %88, align 1
  store i1 false, ptr %90, align 1
  store i1 false, ptr %91, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %93, align 1
  store i1 false, ptr %94, align 1
  store i1 false, ptr %96, align 1
  store i1 false, ptr %98, align 1
  store i1 false, ptr %99, 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 %104, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #9
  store i1 false, ptr %106, align 1
  store i1 false, ptr %107, align 1
  store i1 false, ptr %110, align 1
  store i1 false, ptr %112, align 1
  store i1 false, ptr %113, align 1
  store i1 false, ptr %114, align 1
  store i1 false, ptr %116, align 1
  store i1 false, ptr %118, align 1
  store i1 false, ptr %119, align 1
  store i1 false, ptr %120, align 1
  store i1 false, ptr %121, align 1
  br i1 %608, label %625, label %609

609:                                              ; preds = %605
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #9
  store i1 true, ptr %71, align 1
  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 1, ptr %82) #9
  store i1 true, ptr %83, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  store i1 true, ptr %84, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %610 unwind label %901

610:                                              ; preds = %609
  store i1 true, ptr %85, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str.1)
          to label %611 unwind label %905

611:                                              ; preds = %610
  store i1 true, ptr %86, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #9
  store i1 true, ptr %88, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #9
  store i1 true, ptr %90, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #9
  store i1 true, ptr %91, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %612 unwind label %909

612:                                              ; preds = %611
  store i1 true, ptr %92, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(32) %87)
          to label %613 unwind label %913

613:                                              ; preds = %612
  store i1 true, ptr %93, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef @.str.2)
          to label %614 unwind label %917

614:                                              ; preds = %613
  store i1 true, ptr %94, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #9
  store i1 true, ptr %96, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #9
  store i1 true, ptr %98, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #9
  store i1 true, ptr %99, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %615 unwind label %921

615:                                              ; preds = %614
  store i1 true, ptr %100, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %616 unwind label %925

616:                                              ; preds = %615
  store i1 true, ptr %101, 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 %70, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str.4)
          to label %617 unwind label %929

617:                                              ; preds = %616
  store i1 true, ptr %102, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #9
  store i1 true, ptr %104, align 1
  store i32 455, ptr %105, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 4 dereferenceable(4) %105)
          to label %618 unwind label %933

618:                                              ; preds = %617
  store i1 true, ptr %106, 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 %69, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(32) %103)
          to label %619 unwind label %937

619:                                              ; preds = %618
  store i1 true, ptr %107, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #9
  store i1 true, ptr %110, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %111) #9
  store i1 true, ptr %112, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #9
  store i1 true, ptr %113, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %620 unwind label %941

620:                                              ; preds = %619
  store i1 true, ptr %114, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #9
  store i1 true, ptr %116, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %117) #9
  store i1 true, ptr %118, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  store i1 true, ptr %119, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %621 unwind label %945

621:                                              ; preds = %620
  store i1 true, ptr %120, 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 %108, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %115)
          to label %622 unwind label %949

622:                                              ; preds = %621
  store i1 true, ptr %121, align 1
  %623 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %69, ptr noundef %108, i32 noundef 0)
          to label %624 unwind label %953

624:                                              ; preds = %622
  br label %625

625:                                              ; preds = %624, %605
  %626 = phi i1 [ true, %605 ], [ %623, %624 ]
  %627 = xor i1 %626, true
  %628 = load i1, ptr %121, align 1
  br i1 %628, label %629, label %630

629:                                              ; preds = %625
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #9
  br label %630

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

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

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

635:                                              ; preds = %633
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  br label %636

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

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

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

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

642:                                              ; preds = %641, %639
  %643 = load i1, ptr %114, align 1
  br i1 %643, label %644, label %645

644:                                              ; preds = %642
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  br label %645

645:                                              ; preds = %644, %642
  %646 = load i1, ptr %113, align 1
  br i1 %646, label %647, label %648

647:                                              ; preds = %645
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #9
  br label %648

648:                                              ; preds = %647, %645
  %649 = load i1, ptr %112, align 1
  br i1 %649, label %650, label %651

650:                                              ; preds = %648
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #9
  br label %651

651:                                              ; preds = %650, %648
  %652 = load i1, ptr %110, align 1
  br i1 %652, label %653, label %654

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

654:                                              ; preds = %653, %651
  %655 = load i1, ptr %107, 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) %69) #9
  br label %657

657:                                              ; preds = %656, %654
  %658 = load i1, ptr %106, align 1
  br i1 %658, label %659, label %660

659:                                              ; preds = %657
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #9
  br label %660

660:                                              ; preds = %659, %657
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  %661 = load i1, ptr %104, align 1
  br i1 %661, label %662, label %663

662:                                              ; preds = %660
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #9
  br label %663

663:                                              ; preds = %662, %660
  %664 = load i1, ptr %102, align 1
  br i1 %664, label %665, label %666

665:                                              ; preds = %663
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %666

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

668:                                              ; preds = %666
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %669

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

671:                                              ; preds = %669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  br label %672

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

674:                                              ; preds = %672
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #9
  br label %675

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

677:                                              ; preds = %675
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #9
  br label %678

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

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

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

683:                                              ; preds = %681
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %684

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

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

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

689:                                              ; preds = %687
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  br label %690

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

692:                                              ; preds = %690
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #9
  br label %693

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

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

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

698:                                              ; preds = %696
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #9
  br label %699

699:                                              ; preds = %698, %696
  %700 = load i1, ptr %86, align 1
  br i1 %700, label %701, label %702

701:                                              ; preds = %699
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %702

702:                                              ; preds = %701, %699
  %703 = load i1, ptr %85, align 1
  br i1 %703, label %704, label %705

704:                                              ; preds = %702
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  br label %705

705:                                              ; preds = %704, %702
  %706 = load i1, ptr %84, align 1
  br i1 %706, label %707, label %708

707:                                              ; preds = %705
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  br label %708

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

710:                                              ; preds = %708
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #9
  br label %711

711:                                              ; preds = %710, %708
  %712 = load i1, ptr %81, align 1
  br i1 %712, label %713, label %714

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

714:                                              ; preds = %713, %711
  %715 = load i1, ptr %79, align 1
  br i1 %715, label %716, label %717

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

717:                                              ; preds = %716, %714
  %718 = load i1, ptr %77, align 1
  br i1 %718, label %719, label %720

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

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

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

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

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

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

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

729:                                              ; preds = %728, %726
  br label %1072

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

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

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

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

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

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

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

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

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

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

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

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

778:                                              ; preds = %481
  %779 = landingpad { ptr, i32 }
          cleanup
  %780 = extractvalue { ptr, i32 } %779, 0
  store ptr %780, ptr %30, align 8
  %781 = extractvalue { ptr, i32 } %779, 1
  store i32 %781, ptr %31, align 4
  br label %789

782:                                              ; preds = %482
  %783 = landingpad { ptr, i32 }
          cleanup
  %784 = extractvalue { ptr, i32 } %783, 0
  store ptr %784, ptr %30, align 8
  %785 = extractvalue { ptr, i32 } %783, 1
  store i32 %785, ptr %31, align 4
  %786 = load i1, ptr %68, align 1
  br i1 %786, label %787, label %788

787:                                              ; preds = %782
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %788

788:                                              ; preds = %787, %782
  br label %789

789:                                              ; preds = %788, %778
  %790 = load i1, ptr %67, align 1
  br i1 %790, label %791, label %792

791:                                              ; preds = %789
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %792

792:                                              ; preds = %791, %789
  br label %793

793:                                              ; preds = %792, %774
  %794 = load i1, ptr %66, align 1
  br i1 %794, label %795, label %796

795:                                              ; preds = %793
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  br label %796

796:                                              ; preds = %795, %793
  %797 = load i1, ptr %65, align 1
  br i1 %797, label %798, label %799

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

799:                                              ; preds = %798, %796
  %800 = load i1, ptr %63, align 1
  br i1 %800, label %801, label %802

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

802:                                              ; preds = %801, %799
  %803 = load i1, ptr %61, align 1
  br i1 %803, label %804, label %805

804:                                              ; preds = %802
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #9
  br label %805

805:                                              ; preds = %804, %802
  br label %806

806:                                              ; preds = %805, %770
  %807 = load i1, ptr %60, align 1
  br i1 %807, label %808, label %809

808:                                              ; preds = %806
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  br label %809

809:                                              ; preds = %808, %806
  %810 = load i1, ptr %59, align 1
  br i1 %810, label %811, label %812

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

812:                                              ; preds = %811, %809
  %813 = load i1, ptr %57, align 1
  br i1 %813, label %814, label %815

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

815:                                              ; preds = %814, %812
  %816 = load i1, ptr %54, align 1
  br i1 %816, label %817, label %818

817:                                              ; preds = %815
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %818

818:                                              ; preds = %817, %815
  br label %819

819:                                              ; preds = %818, %766
  %820 = load i1, ptr %53, align 1
  br i1 %820, label %821, label %822

821:                                              ; preds = %819
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %822

822:                                              ; preds = %821, %819
  br label %823

823:                                              ; preds = %822, %762
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  %824 = load i1, ptr %51, align 1
  br i1 %824, label %825, label %826

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

826:                                              ; preds = %825, %823
  %827 = load i1, ptr %49, align 1
  br i1 %827, label %828, label %829

828:                                              ; preds = %826
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %829

829:                                              ; preds = %828, %826
  br label %830

830:                                              ; preds = %829, %758
  %831 = load i1, ptr %48, align 1
  br i1 %831, label %832, label %833

832:                                              ; preds = %830
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %833

833:                                              ; preds = %832, %830
  br label %834

834:                                              ; preds = %833, %754
  %835 = load i1, ptr %47, align 1
  br i1 %835, label %836, label %837

836:                                              ; preds = %834
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  br label %837

837:                                              ; preds = %836, %834
  br label %838

838:                                              ; preds = %837, %750
  %839 = load i1, ptr %46, align 1
  br i1 %839, label %840, label %841

840:                                              ; preds = %838
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #9
  br label %841

841:                                              ; preds = %840, %838
  %842 = load i1, ptr %45, align 1
  br i1 %842, label %843, label %844

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

844:                                              ; preds = %843, %841
  %845 = load i1, ptr %43, align 1
  br i1 %845, label %846, label %847

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

847:                                              ; preds = %846, %844
  %848 = load i1, ptr %41, align 1
  br i1 %848, label %849, label %850

849:                                              ; preds = %847
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %850

850:                                              ; preds = %849, %847
  br label %851

851:                                              ; preds = %850, %746
  %852 = load i1, ptr %40, align 1
  br i1 %852, label %853, label %854

853:                                              ; preds = %851
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %854

854:                                              ; preds = %853, %851
  br label %855

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

876:                                              ; preds = %875, %730
  %877 = load i1, ptr %29, align 1
  br i1 %877, label %878, label %879

878:                                              ; preds = %876
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #9
  br label %879

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

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

882:                                              ; preds = %881, %879
  %883 = load i1, ptr %26, align 1
  br i1 %883, label %884, label %885

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

885:                                              ; preds = %884, %882
  %886 = load i1, ptr %24, align 1
  br i1 %886, label %887, label %888

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

888:                                              ; preds = %887, %885
  %889 = load i1, ptr %22, align 1
  br i1 %889, label %890, label %891

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

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

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

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

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

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

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

900:                                              ; preds = %899, %897
  br label %3307

901:                                              ; preds = %609
  %902 = landingpad { ptr, i32 }
          cleanup
  %903 = extractvalue { ptr, i32 } %902, 0
  store ptr %903, ptr %30, align 8
  %904 = extractvalue { ptr, i32 } %902, 1
  store i32 %904, ptr %31, align 4
  br label %1047

905:                                              ; preds = %610
  %906 = landingpad { ptr, i32 }
          cleanup
  %907 = extractvalue { ptr, i32 } %906, 0
  store ptr %907, ptr %30, align 8
  %908 = extractvalue { ptr, i32 } %906, 1
  store i32 %908, ptr %31, align 4
  br label %1043

909:                                              ; preds = %611
  %910 = landingpad { ptr, i32 }
          cleanup
  %911 = extractvalue { ptr, i32 } %910, 0
  store ptr %911, ptr %30, align 8
  %912 = extractvalue { ptr, i32 } %910, 1
  store i32 %912, ptr %31, align 4
  br label %1030

913:                                              ; preds = %612
  %914 = landingpad { ptr, i32 }
          cleanup
  %915 = extractvalue { ptr, i32 } %914, 0
  store ptr %915, ptr %30, align 8
  %916 = extractvalue { ptr, i32 } %914, 1
  store i32 %916, ptr %31, align 4
  br label %1026

917:                                              ; preds = %613
  %918 = landingpad { ptr, i32 }
          cleanup
  %919 = extractvalue { ptr, i32 } %918, 0
  store ptr %919, ptr %30, align 8
  %920 = extractvalue { ptr, i32 } %918, 1
  store i32 %920, ptr %31, align 4
  br label %1022

921:                                              ; preds = %614
  %922 = landingpad { ptr, i32 }
          cleanup
  %923 = extractvalue { ptr, i32 } %922, 0
  store ptr %923, ptr %30, align 8
  %924 = extractvalue { ptr, i32 } %922, 1
  store i32 %924, ptr %31, align 4
  br label %1009

925:                                              ; preds = %615
  %926 = landingpad { ptr, i32 }
          cleanup
  %927 = extractvalue { ptr, i32 } %926, 0
  store ptr %927, ptr %30, align 8
  %928 = extractvalue { ptr, i32 } %926, 1
  store i32 %928, ptr %31, align 4
  br label %1005

929:                                              ; preds = %616
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %30, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %31, align 4
  br label %1001

933:                                              ; preds = %617
  %934 = landingpad { ptr, i32 }
          cleanup
  %935 = extractvalue { ptr, i32 } %934, 0
  store ptr %935, ptr %30, align 8
  %936 = extractvalue { ptr, i32 } %934, 1
  store i32 %936, ptr %31, align 4
  br label %994

937:                                              ; preds = %618
  %938 = landingpad { ptr, i32 }
          cleanup
  %939 = extractvalue { ptr, i32 } %938, 0
  store ptr %939, ptr %30, align 8
  %940 = extractvalue { ptr, i32 } %938, 1
  store i32 %940, ptr %31, align 4
  br label %990

941:                                              ; preds = %619
  %942 = landingpad { ptr, i32 }
          cleanup
  %943 = extractvalue { ptr, i32 } %942, 0
  store ptr %943, ptr %30, align 8
  %944 = extractvalue { ptr, i32 } %942, 1
  store i32 %944, ptr %31, align 4
  br label %977

945:                                              ; preds = %620
  %946 = landingpad { ptr, i32 }
          cleanup
  %947 = extractvalue { ptr, i32 } %946, 0
  store ptr %947, ptr %30, align 8
  %948 = extractvalue { ptr, i32 } %946, 1
  store i32 %948, ptr %31, align 4
  br label %964

949:                                              ; preds = %621
  %950 = landingpad { ptr, i32 }
          cleanup
  %951 = extractvalue { ptr, i32 } %950, 0
  store ptr %951, ptr %30, align 8
  %952 = extractvalue { ptr, i32 } %950, 1
  store i32 %952, ptr %31, align 4
  br label %960

953:                                              ; preds = %622
  %954 = landingpad { ptr, i32 }
          cleanup
  %955 = extractvalue { ptr, i32 } %954, 0
  store ptr %955, ptr %30, align 8
  %956 = extractvalue { ptr, i32 } %954, 1
  store i32 %956, ptr %31, align 4
  %957 = load i1, ptr %121, align 1
  br i1 %957, label %958, label %959

958:                                              ; preds = %953
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #9
  br label %959

959:                                              ; preds = %958, %953
  br label %960

960:                                              ; preds = %959, %949
  %961 = load i1, ptr %120, align 1
  br i1 %961, label %962, label %963

962:                                              ; preds = %960
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #9
  br label %963

963:                                              ; preds = %962, %960
  br label %964

964:                                              ; preds = %963, %945
  %965 = load i1, ptr %119, align 1
  br i1 %965, label %966, label %967

966:                                              ; preds = %964
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #9
  br label %967

967:                                              ; preds = %966, %964
  %968 = load i1, ptr %118, align 1
  br i1 %968, label %969, label %970

969:                                              ; preds = %967
  call void @llvm.lifetime.end.p0(i64 1, ptr %117) #9
  br label %970

970:                                              ; preds = %969, %967
  %971 = load i1, ptr %116, align 1
  br i1 %971, label %972, label %973

972:                                              ; preds = %970
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #9
  br label %973

973:                                              ; preds = %972, %970
  %974 = load i1, ptr %114, align 1
  br i1 %974, label %975, label %976

975:                                              ; preds = %973
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  br label %976

976:                                              ; preds = %975, %973
  br label %977

977:                                              ; preds = %976, %941
  %978 = load i1, ptr %113, align 1
  br i1 %978, label %979, label %980

979:                                              ; preds = %977
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #9
  br label %980

980:                                              ; preds = %979, %977
  %981 = load i1, ptr %112, align 1
  br i1 %981, label %982, label %983

982:                                              ; preds = %980
  call void @llvm.lifetime.end.p0(i64 1, ptr %111) #9
  br label %983

983:                                              ; preds = %982, %980
  %984 = load i1, ptr %110, align 1
  br i1 %984, label %985, label %986

985:                                              ; preds = %983
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #9
  br label %986

986:                                              ; preds = %985, %983
  %987 = load i1, ptr %107, align 1
  br i1 %987, label %988, label %989

988:                                              ; preds = %986
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %989

989:                                              ; preds = %988, %986
  br label %990

990:                                              ; preds = %989, %937
  %991 = load i1, ptr %106, align 1
  br i1 %991, label %992, label %993

992:                                              ; preds = %990
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #9
  br label %993

993:                                              ; preds = %992, %990
  br label %994

994:                                              ; preds = %993, %933
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  %995 = load i1, ptr %104, align 1
  br i1 %995, label %996, label %997

996:                                              ; preds = %994
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #9
  br label %997

997:                                              ; preds = %996, %994
  %998 = load i1, ptr %102, align 1
  br i1 %998, label %999, label %1000

999:                                              ; preds = %997
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %1000

1000:                                             ; preds = %999, %997
  br label %1001

1001:                                             ; preds = %1000, %929
  %1002 = load i1, ptr %101, align 1
  br i1 %1002, label %1003, label %1004

1003:                                             ; preds = %1001
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %1004

1004:                                             ; preds = %1003, %1001
  br label %1005

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

1007:                                             ; preds = %1005
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  br label %1008

1008:                                             ; preds = %1007, %1005
  br label %1009

1009:                                             ; preds = %1008, %921
  %1010 = load i1, ptr %99, align 1
  br i1 %1010, label %1011, label %1012

1011:                                             ; preds = %1009
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #9
  br label %1012

1012:                                             ; preds = %1011, %1009
  %1013 = load i1, ptr %98, align 1
  br i1 %1013, label %1014, label %1015

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

1015:                                             ; preds = %1014, %1012
  %1016 = load i1, ptr %96, align 1
  br i1 %1016, label %1017, label %1018

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

1018:                                             ; preds = %1017, %1015
  %1019 = load i1, ptr %94, align 1
  br i1 %1019, label %1020, label %1021

1020:                                             ; preds = %1018
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %1021

1021:                                             ; preds = %1020, %1018
  br label %1022

1022:                                             ; preds = %1021, %917
  %1023 = load i1, ptr %93, align 1
  br i1 %1023, label %1024, label %1025

1024:                                             ; preds = %1022
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %1025

1025:                                             ; preds = %1024, %1022
  br label %1026

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1049:                                             ; preds = %1047
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  br label %1050

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

1052:                                             ; preds = %1050
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #9
  br label %1053

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

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

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

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

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

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

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

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

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

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

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

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

1071:                                             ; preds = %1070, %1068
  br label %3307

1072:                                             ; preds = %729, %601, %597
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #9
  %1073 = getelementptr inbounds %class.Apex, ptr %464, i32 0, i32 13
  %1074 = load i8, ptr %1073, align 1, !tbaa !21, !range !19, !noundef !20
  %1075 = trunc i8 %1074 to i1
  br i1 %1075, label %1076, label %1079

1076:                                             ; preds = %1072
  %1077 = getelementptr inbounds %class.Apex, ptr %464, i32 0, i32 6
  %1078 = load double, ptr %1077, align 8, !tbaa !22
  br label %1081

1079:                                             ; preds = %1072
  %1080 = load double, ptr %9, align 8, !tbaa !9
  br label %1081

1081:                                             ; preds = %1079, %1076
  %1082 = phi double [ %1078, %1076 ], [ %1080, %1079 ]
  store double %1082, ptr %122, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #9
  %1083 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %1084 = load ptr, ptr %1083, align 8, !tbaa !23
  %1085 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %1084)
  br i1 %1085, label %1086, label %1090

1086:                                             ; preds = %1081
  %1087 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %1088 = load ptr, ptr %1087, align 8, !tbaa !23
  %1089 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %1088)
  br label %1092

1090:                                             ; preds = %1081
  %1091 = load double, ptr %9, align 8, !tbaa !9
  br label %1092

1092:                                             ; preds = %1090, %1086
  %1093 = phi double [ %1089, %1086 ], [ %1091, %1090 ]
  store double %1093, ptr %123, align 8, !tbaa !9
  %1094 = load double, ptr %122, align 8, !tbaa !9
  %1095 = fcmp olt double %1094, 0.000000e+00
  store i1 false, ptr %126, align 1
  store i1 false, ptr %128, align 1
  store i1 false, ptr %130, align 1
  store i1 false, ptr %132, align 1
  store i1 false, ptr %134, align 1
  store i1 false, ptr %136, align 1
  store i1 false, ptr %138, align 1
  store i1 false, ptr %139, align 1
  store i1 false, ptr %140, align 1
  store i1 false, ptr %141, align 1
  store i1 false, ptr %143, align 1
  store i1 false, ptr %145, align 1
  store i1 false, ptr %146, align 1
  store i1 false, ptr %147, align 1
  store i1 false, ptr %148, align 1
  store i1 false, ptr %149, align 1
  store i1 false, ptr %151, align 1
  store i1 false, ptr %153, align 1
  store i1 false, ptr %154, align 1
  store i1 false, ptr %155, align 1
  store i1 false, ptr %156, align 1
  store i1 false, ptr %157, align 1
  store i1 false, ptr %159, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #9
  store i1 false, ptr %161, align 1
  store i1 false, ptr %162, align 1
  store i1 false, ptr %165, 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
  store i1 false, ptr %173, align 1
  store i1 false, ptr %174, align 1
  store i1 false, ptr %175, align 1
  store i1 false, ptr %176, align 1
  br i1 %1095, label %1112, label %1096

1096:                                             ; preds = %1092
  call void @llvm.lifetime.start.p0(i64 32, ptr %125) #9
  store i1 true, ptr %126, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #9
  store i1 true, ptr %128, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %129) #9
  store i1 true, ptr %130, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %131) #9
  store i1 true, ptr %132, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %133) #9
  store i1 true, ptr %134, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %135) #9
  store i1 true, ptr %136, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %137) #9
  store i1 true, ptr %138, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #9
  store i1 true, ptr %139, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %137)
          to label %1097 unwind label %1229

1097:                                             ; preds = %1096
  store i1 true, ptr %140, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %133, ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef @.str.1)
          to label %1098 unwind label %1233

1098:                                             ; preds = %1097
  store i1 true, ptr %141, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %142) #9
  store i1 true, ptr %143, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %144) #9
  store i1 true, ptr %145, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #9
  store i1 true, ptr %146, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %144)
          to label %1099 unwind label %1237

1099:                                             ; preds = %1098
  store i1 true, ptr %147, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %131, ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull align 8 dereferenceable(32) %142)
          to label %1100 unwind label %1241

1100:                                             ; preds = %1099
  store i1 true, ptr %148, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 8 dereferenceable(32) %131, ptr noundef @.str.2)
          to label %1101 unwind label %1245

1101:                                             ; preds = %1100
  store i1 true, ptr %149, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %150) #9
  store i1 true, ptr %151, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %152) #9
  store i1 true, ptr %153, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  store i1 true, ptr %154, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %152)
          to label %1102 unwind label %1249

1102:                                             ; preds = %1101
  store i1 true, ptr %155, 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 %127, ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull align 8 dereferenceable(32) %150)
          to label %1103 unwind label %1253

1103:                                             ; preds = %1102
  store i1 true, ptr %156, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %125, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef @.str.4)
          to label %1104 unwind label %1257

1104:                                             ; preds = %1103
  store i1 true, ptr %157, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %158) #9
  store i1 true, ptr %159, align 1
  store i32 464, ptr %160, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %158, ptr noundef nonnull align 4 dereferenceable(4) %160)
          to label %1105 unwind label %1261

1105:                                             ; preds = %1104
  store i1 true, ptr %161, 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 %124, ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %158)
          to label %1106 unwind label %1265

1106:                                             ; preds = %1105
  store i1 true, ptr %162, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %164) #9
  store i1 true, ptr %165, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %166) #9
  store i1 true, ptr %167, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #9
  store i1 true, ptr %168, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %166)
          to label %1107 unwind label %1269

1107:                                             ; preds = %1106
  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
  call void @llvm.lifetime.start.p0(i64 1, ptr %172) #9
  store i1 true, ptr %173, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #9
  store i1 true, ptr %174, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef @.str.35, ptr noundef nonnull align 1 dereferenceable(1) %172)
          to label %1108 unwind label %1273

1108:                                             ; preds = %1107
  store i1 true, ptr %175, 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 %163, ptr noundef nonnull align 8 dereferenceable(32) %164, ptr noundef nonnull align 8 dereferenceable(32) %170)
          to label %1109 unwind label %1277

1109:                                             ; preds = %1108
  store i1 true, ptr %176, align 1
  %1110 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %124, ptr noundef %163, i32 noundef 0)
          to label %1111 unwind label %1281

1111:                                             ; preds = %1109
  br label %1112

1112:                                             ; preds = %1111, %1092
  %1113 = phi i1 [ true, %1092 ], [ %1110, %1111 ]
  %1114 = xor i1 %1113, true
  %1115 = load i1, ptr %176, align 1
  br i1 %1115, label %1116, label %1117

1116:                                             ; preds = %1112
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #9
  br label %1117

1117:                                             ; preds = %1116, %1112
  %1118 = load i1, ptr %175, align 1
  br i1 %1118, label %1119, label %1120

1119:                                             ; preds = %1117
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #9
  br label %1120

1120:                                             ; preds = %1119, %1117
  %1121 = load i1, ptr %174, align 1
  br i1 %1121, label %1122, label %1123

1122:                                             ; preds = %1120
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #9
  br label %1123

1123:                                             ; preds = %1122, %1120
  %1124 = load i1, ptr %173, align 1
  br i1 %1124, label %1125, label %1126

1125:                                             ; preds = %1123
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #9
  br label %1126

1126:                                             ; preds = %1125, %1123
  %1127 = load i1, ptr %171, align 1
  br i1 %1127, label %1128, label %1129

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

1129:                                             ; preds = %1128, %1126
  %1130 = load i1, ptr %169, align 1
  br i1 %1130, label %1131, label %1132

1131:                                             ; preds = %1129
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #9
  br label %1132

1132:                                             ; preds = %1131, %1129
  %1133 = load i1, ptr %168, align 1
  br i1 %1133, label %1134, label %1135

1134:                                             ; preds = %1132
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #9
  br label %1135

1135:                                             ; preds = %1134, %1132
  %1136 = load i1, ptr %167, align 1
  br i1 %1136, label %1137, label %1138

1137:                                             ; preds = %1135
  call void @llvm.lifetime.end.p0(i64 1, ptr %166) #9
  br label %1138

1138:                                             ; preds = %1137, %1135
  %1139 = load i1, ptr %165, align 1
  br i1 %1139, label %1140, label %1141

1140:                                             ; preds = %1138
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #9
  br label %1141

1141:                                             ; preds = %1140, %1138
  %1142 = load i1, ptr %162, align 1
  br i1 %1142, label %1143, label %1144

1143:                                             ; preds = %1141
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #9
  br label %1144

1144:                                             ; preds = %1143, %1141
  %1145 = load i1, ptr %161, align 1
  br i1 %1145, label %1146, label %1147

1146:                                             ; preds = %1144
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #9
  br label %1147

1147:                                             ; preds = %1146, %1144
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #9
  %1148 = load i1, ptr %159, align 1
  br i1 %1148, label %1149, label %1150

1149:                                             ; preds = %1147
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #9
  br label %1150

1150:                                             ; preds = %1149, %1147
  %1151 = load i1, ptr %157, align 1
  br i1 %1151, label %1152, label %1153

1152:                                             ; preds = %1150
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #9
  br label %1153

1153:                                             ; preds = %1152, %1150
  %1154 = load i1, ptr %156, align 1
  br i1 %1154, label %1155, label %1156

1155:                                             ; preds = %1153
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #9
  br label %1156

1156:                                             ; preds = %1155, %1153
  %1157 = load i1, ptr %155, 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) %150) #9
  br label %1159

1159:                                             ; preds = %1158, %1156
  %1160 = load i1, ptr %154, align 1
  br i1 %1160, label %1161, label %1162

1161:                                             ; preds = %1159
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  br label %1162

1162:                                             ; preds = %1161, %1159
  %1163 = load i1, ptr %153, align 1
  br i1 %1163, label %1164, label %1165

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

1165:                                             ; preds = %1164, %1162
  %1166 = load i1, ptr %151, align 1
  br i1 %1166, label %1167, label %1168

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

1168:                                             ; preds = %1167, %1165
  %1169 = load i1, ptr %149, align 1
  br i1 %1169, label %1170, label %1171

1170:                                             ; preds = %1168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #9
  br label %1171

1171:                                             ; preds = %1170, %1168
  %1172 = load i1, ptr %148, align 1
  br i1 %1172, label %1173, label %1174

1173:                                             ; preds = %1171
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #9
  br label %1174

1174:                                             ; preds = %1173, %1171
  %1175 = load i1, ptr %147, align 1
  br i1 %1175, label %1176, label %1177

1176:                                             ; preds = %1174
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #9
  br label %1177

1177:                                             ; preds = %1176, %1174
  %1178 = load i1, ptr %146, align 1
  br i1 %1178, label %1179, label %1180

1179:                                             ; preds = %1177
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %144) #9
  br label %1180

1180:                                             ; preds = %1179, %1177
  %1181 = load i1, ptr %145, align 1
  br i1 %1181, label %1182, label %1183

1182:                                             ; preds = %1180
  call void @llvm.lifetime.end.p0(i64 1, ptr %144) #9
  br label %1183

1183:                                             ; preds = %1182, %1180
  %1184 = load i1, ptr %143, align 1
  br i1 %1184, label %1185, label %1186

1185:                                             ; preds = %1183
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #9
  br label %1186

1186:                                             ; preds = %1185, %1183
  %1187 = load i1, ptr %141, 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) %133) #9
  br label %1189

1189:                                             ; preds = %1188, %1186
  %1190 = load i1, ptr %140, align 1
  br i1 %1190, label %1191, label %1192

1191:                                             ; preds = %1189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #9
  br label %1192

1192:                                             ; preds = %1191, %1189
  %1193 = load i1, ptr %139, align 1
  br i1 %1193, label %1194, label %1195

1194:                                             ; preds = %1192
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #9
  br label %1195

1195:                                             ; preds = %1194, %1192
  %1196 = load i1, ptr %138, align 1
  br i1 %1196, label %1197, label %1198

1197:                                             ; preds = %1195
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #9
  br label %1198

1198:                                             ; preds = %1197, %1195
  %1199 = load i1, ptr %136, align 1
  br i1 %1199, label %1200, label %1201

1200:                                             ; preds = %1198
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #9
  br label %1201

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

1203:                                             ; preds = %1201
  call void @llvm.lifetime.end.p0(i64 32, ptr %133) #9
  br label %1204

1204:                                             ; preds = %1203, %1201
  %1205 = load i1, ptr %132, align 1
  br i1 %1205, label %1206, label %1207

1206:                                             ; preds = %1204
  call void @llvm.lifetime.end.p0(i64 32, ptr %131) #9
  br label %1207

1207:                                             ; preds = %1206, %1204
  %1208 = load i1, ptr %130, align 1
  br i1 %1208, label %1209, label %1210

1209:                                             ; preds = %1207
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #9
  br label %1210

1210:                                             ; preds = %1209, %1207
  %1211 = load i1, ptr %128, align 1
  br i1 %1211, label %1212, label %1213

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

1213:                                             ; preds = %1212, %1210
  %1214 = load i1, ptr %126, align 1
  br i1 %1214, label %1215, label %1216

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

1216:                                             ; preds = %1215, %1213
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #9
  %1217 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 2
  %1218 = load ptr, ptr %1217, align 8, !tbaa !25
  %1219 = call noundef double @_ZNK8VoidElem16minInitRecCntAngEv(ptr noundef nonnull align 8 dereferenceable(184) %1218)
  store double %1219, ptr %178, align 8, !tbaa !9
  %1220 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %1221 = load ptr, ptr %1220, align 8, !tbaa !23
  %1222 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %1221)
  br i1 %1222, label %1223, label %1400

1223:                                             ; preds = %1216
  %1224 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %1225 = load ptr, ptr %1224, align 8, !tbaa !23
  %1226 = load double, ptr %123, align 8, !tbaa !9
  %1227 = load double, ptr %11, align 8, !tbaa !9
  %1228 = load double, ptr %12, align 8, !tbaa !9
  call void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144) %1225, ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef nonnull align 8 dereferenceable(8) %178, double noundef %1226, double noundef %1227, double noundef %1228, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false)
  br label %1400

1229:                                             ; preds = %1096
  %1230 = landingpad { ptr, i32 }
          cleanup
  %1231 = extractvalue { ptr, i32 } %1230, 0
  store ptr %1231, ptr %30, align 8
  %1232 = extractvalue { ptr, i32 } %1230, 1
  store i32 %1232, ptr %31, align 4
  br label %1375

1233:                                             ; preds = %1097
  %1234 = landingpad { ptr, i32 }
          cleanup
  %1235 = extractvalue { ptr, i32 } %1234, 0
  store ptr %1235, ptr %30, align 8
  %1236 = extractvalue { ptr, i32 } %1234, 1
  store i32 %1236, ptr %31, align 4
  br label %1371

1237:                                             ; preds = %1098
  %1238 = landingpad { ptr, i32 }
          cleanup
  %1239 = extractvalue { ptr, i32 } %1238, 0
  store ptr %1239, ptr %30, align 8
  %1240 = extractvalue { ptr, i32 } %1238, 1
  store i32 %1240, ptr %31, align 4
  br label %1358

1241:                                             ; preds = %1099
  %1242 = landingpad { ptr, i32 }
          cleanup
  %1243 = extractvalue { ptr, i32 } %1242, 0
  store ptr %1243, ptr %30, align 8
  %1244 = extractvalue { ptr, i32 } %1242, 1
  store i32 %1244, ptr %31, align 4
  br label %1354

1245:                                             ; preds = %1100
  %1246 = landingpad { ptr, i32 }
          cleanup
  %1247 = extractvalue { ptr, i32 } %1246, 0
  store ptr %1247, ptr %30, align 8
  %1248 = extractvalue { ptr, i32 } %1246, 1
  store i32 %1248, ptr %31, align 4
  br label %1350

1249:                                             ; preds = %1101
  %1250 = landingpad { ptr, i32 }
          cleanup
  %1251 = extractvalue { ptr, i32 } %1250, 0
  store ptr %1251, ptr %30, align 8
  %1252 = extractvalue { ptr, i32 } %1250, 1
  store i32 %1252, ptr %31, align 4
  br label %1337

1253:                                             ; preds = %1102
  %1254 = landingpad { ptr, i32 }
          cleanup
  %1255 = extractvalue { ptr, i32 } %1254, 0
  store ptr %1255, ptr %30, align 8
  %1256 = extractvalue { ptr, i32 } %1254, 1
  store i32 %1256, ptr %31, align 4
  br label %1333

1257:                                             ; preds = %1103
  %1258 = landingpad { ptr, i32 }
          cleanup
  %1259 = extractvalue { ptr, i32 } %1258, 0
  store ptr %1259, ptr %30, align 8
  %1260 = extractvalue { ptr, i32 } %1258, 1
  store i32 %1260, ptr %31, align 4
  br label %1329

1261:                                             ; preds = %1104
  %1262 = landingpad { ptr, i32 }
          cleanup
  %1263 = extractvalue { ptr, i32 } %1262, 0
  store ptr %1263, ptr %30, align 8
  %1264 = extractvalue { ptr, i32 } %1262, 1
  store i32 %1264, ptr %31, align 4
  br label %1322

1265:                                             ; preds = %1105
  %1266 = landingpad { ptr, i32 }
          cleanup
  %1267 = extractvalue { ptr, i32 } %1266, 0
  store ptr %1267, ptr %30, align 8
  %1268 = extractvalue { ptr, i32 } %1266, 1
  store i32 %1268, ptr %31, align 4
  br label %1318

1269:                                             ; preds = %1106
  %1270 = landingpad { ptr, i32 }
          cleanup
  %1271 = extractvalue { ptr, i32 } %1270, 0
  store ptr %1271, ptr %30, align 8
  %1272 = extractvalue { ptr, i32 } %1270, 1
  store i32 %1272, ptr %31, align 4
  br label %1305

1273:                                             ; preds = %1107
  %1274 = landingpad { ptr, i32 }
          cleanup
  %1275 = extractvalue { ptr, i32 } %1274, 0
  store ptr %1275, ptr %30, align 8
  %1276 = extractvalue { ptr, i32 } %1274, 1
  store i32 %1276, ptr %31, align 4
  br label %1292

1277:                                             ; preds = %1108
  %1278 = landingpad { ptr, i32 }
          cleanup
  %1279 = extractvalue { ptr, i32 } %1278, 0
  store ptr %1279, ptr %30, align 8
  %1280 = extractvalue { ptr, i32 } %1278, 1
  store i32 %1280, ptr %31, align 4
  br label %1288

1281:                                             ; preds = %1109
  %1282 = landingpad { ptr, i32 }
          cleanup
  %1283 = extractvalue { ptr, i32 } %1282, 0
  store ptr %1283, ptr %30, align 8
  %1284 = extractvalue { ptr, i32 } %1282, 1
  store i32 %1284, ptr %31, align 4
  %1285 = load i1, ptr %176, align 1
  br i1 %1285, label %1286, label %1287

1286:                                             ; preds = %1281
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #9
  br label %1287

1287:                                             ; preds = %1286, %1281
  br label %1288

1288:                                             ; preds = %1287, %1277
  %1289 = load i1, ptr %175, align 1
  br i1 %1289, label %1290, label %1291

1290:                                             ; preds = %1288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #9
  br label %1291

1291:                                             ; preds = %1290, %1288
  br label %1292

1292:                                             ; preds = %1291, %1273
  %1293 = load i1, ptr %174, align 1
  br i1 %1293, label %1294, label %1295

1294:                                             ; preds = %1292
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %172) #9
  br label %1295

1295:                                             ; preds = %1294, %1292
  %1296 = load i1, ptr %173, align 1
  br i1 %1296, label %1297, label %1298

1297:                                             ; preds = %1295
  call void @llvm.lifetime.end.p0(i64 1, ptr %172) #9
  br label %1298

1298:                                             ; preds = %1297, %1295
  %1299 = load i1, ptr %171, align 1
  br i1 %1299, label %1300, label %1301

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

1301:                                             ; preds = %1300, %1298
  %1302 = load i1, ptr %169, align 1
  br i1 %1302, label %1303, label %1304

1303:                                             ; preds = %1301
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %164) #9
  br label %1304

1304:                                             ; preds = %1303, %1301
  br label %1305

1305:                                             ; preds = %1304, %1269
  %1306 = load i1, ptr %168, align 1
  br i1 %1306, label %1307, label %1308

1307:                                             ; preds = %1305
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %166) #9
  br label %1308

1308:                                             ; preds = %1307, %1305
  %1309 = load i1, ptr %167, align 1
  br i1 %1309, label %1310, label %1311

1310:                                             ; preds = %1308
  call void @llvm.lifetime.end.p0(i64 1, ptr %166) #9
  br label %1311

1311:                                             ; preds = %1310, %1308
  %1312 = load i1, ptr %165, align 1
  br i1 %1312, label %1313, label %1314

1313:                                             ; preds = %1311
  call void @llvm.lifetime.end.p0(i64 32, ptr %164) #9
  br label %1314

1314:                                             ; preds = %1313, %1311
  %1315 = load i1, ptr %162, align 1
  br i1 %1315, label %1316, label %1317

1316:                                             ; preds = %1314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #9
  br label %1317

1317:                                             ; preds = %1316, %1314
  br label %1318

1318:                                             ; preds = %1317, %1265
  %1319 = load i1, ptr %161, align 1
  br i1 %1319, label %1320, label %1321

1320:                                             ; preds = %1318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #9
  br label %1321

1321:                                             ; preds = %1320, %1318
  br label %1322

1322:                                             ; preds = %1321, %1261
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #9
  %1323 = load i1, ptr %159, align 1
  br i1 %1323, label %1324, label %1325

1324:                                             ; preds = %1322
  call void @llvm.lifetime.end.p0(i64 32, ptr %158) #9
  br label %1325

1325:                                             ; preds = %1324, %1322
  %1326 = load i1, ptr %157, align 1
  br i1 %1326, label %1327, label %1328

1327:                                             ; preds = %1325
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #9
  br label %1328

1328:                                             ; preds = %1327, %1325
  br label %1329

1329:                                             ; preds = %1328, %1257
  %1330 = load i1, ptr %156, align 1
  br i1 %1330, label %1331, label %1332

1331:                                             ; preds = %1329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #9
  br label %1332

1332:                                             ; preds = %1331, %1329
  br label %1333

1333:                                             ; preds = %1332, %1253
  %1334 = load i1, ptr %155, align 1
  br i1 %1334, label %1335, label %1336

1335:                                             ; preds = %1333
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  br label %1336

1336:                                             ; preds = %1335, %1333
  br label %1337

1337:                                             ; preds = %1336, %1249
  %1338 = load i1, ptr %154, align 1
  br i1 %1338, label %1339, label %1340

1339:                                             ; preds = %1337
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  br label %1340

1340:                                             ; preds = %1339, %1337
  %1341 = load i1, ptr %153, align 1
  br i1 %1341, label %1342, label %1343

1342:                                             ; preds = %1340
  call void @llvm.lifetime.end.p0(i64 1, ptr %152) #9
  br label %1343

1343:                                             ; preds = %1342, %1340
  %1344 = load i1, ptr %151, align 1
  br i1 %1344, label %1345, label %1346

1345:                                             ; preds = %1343
  call void @llvm.lifetime.end.p0(i64 32, ptr %150) #9
  br label %1346

1346:                                             ; preds = %1345, %1343
  %1347 = load i1, ptr %149, align 1
  br i1 %1347, label %1348, label %1349

1348:                                             ; preds = %1346
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #9
  br label %1349

1349:                                             ; preds = %1348, %1346
  br label %1350

1350:                                             ; preds = %1349, %1245
  %1351 = load i1, ptr %148, align 1
  br i1 %1351, label %1352, label %1353

1352:                                             ; preds = %1350
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %131) #9
  br label %1353

1353:                                             ; preds = %1352, %1350
  br label %1354

1354:                                             ; preds = %1353, %1241
  %1355 = load i1, ptr %147, align 1
  br i1 %1355, label %1356, label %1357

1356:                                             ; preds = %1354
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %142) #9
  br label %1357

1357:                                             ; preds = %1356, %1354
  br label %1358

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

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

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

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

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

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

1367:                                             ; preds = %1366, %1364
  %1368 = load i1, ptr %141, 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) %133) #9
  br label %1370

1370:                                             ; preds = %1369, %1367
  br label %1371

1371:                                             ; preds = %1370, %1233
  %1372 = load i1, ptr %140, align 1
  br i1 %1372, label %1373, label %1374

1373:                                             ; preds = %1371
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %135) #9
  br label %1374

1374:                                             ; preds = %1373, %1371
  br label %1375

1375:                                             ; preds = %1374, %1229
  %1376 = load i1, ptr %139, align 1
  br i1 %1376, label %1377, label %1378

1377:                                             ; preds = %1375
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %137) #9
  br label %1378

1378:                                             ; preds = %1377, %1375
  %1379 = load i1, ptr %138, align 1
  br i1 %1379, label %1380, label %1381

1380:                                             ; preds = %1378
  call void @llvm.lifetime.end.p0(i64 1, ptr %137) #9
  br label %1381

1381:                                             ; preds = %1380, %1378
  %1382 = load i1, ptr %136, align 1
  br i1 %1382, label %1383, label %1384

1383:                                             ; preds = %1381
  call void @llvm.lifetime.end.p0(i64 32, ptr %135) #9
  br label %1384

1384:                                             ; preds = %1383, %1381
  %1385 = load i1, ptr %134, align 1
  br i1 %1385, label %1386, label %1387

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

1387:                                             ; preds = %1386, %1384
  %1388 = load i1, ptr %132, align 1
  br i1 %1388, label %1389, label %1390

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

1390:                                             ; preds = %1389, %1387
  %1391 = load i1, ptr %130, align 1
  br i1 %1391, label %1392, label %1393

1392:                                             ; preds = %1390
  call void @llvm.lifetime.end.p0(i64 32, ptr %129) #9
  br label %1393

1393:                                             ; preds = %1392, %1390
  %1394 = load i1, ptr %128, align 1
  br i1 %1394, label %1395, label %1396

1395:                                             ; preds = %1393
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #9
  br label %1396

1396:                                             ; preds = %1395, %1393
  %1397 = load i1, ptr %126, align 1
  br i1 %1397, label %1398, label %1399

1398:                                             ; preds = %1396
  call void @llvm.lifetime.end.p0(i64 32, ptr %125) #9
  br label %1399

1399:                                             ; preds = %1398, %1396
  br label %3306

1400:                                             ; preds = %1223, %1216
  call void @llvm.lifetime.start.p0(i64 8, ptr %179) #9
  %1401 = load double, ptr %12, align 8, !tbaa !9
  %1402 = load double, ptr %123, align 8, !tbaa !9
  %1403 = fdiv double %1401, %1402
  %1404 = load double, ptr %178, align 8, !tbaa !9
  %1405 = call double @cos(double noundef %1404) #9
  %1406 = load double, ptr %11, align 8, !tbaa !9
  %1407 = call double @sin(double noundef %1406) #9
  %1408 = fdiv double %1405, %1407
  %1409 = fsub double %1408, 1.000000e+00
  %1410 = fmul double %1403, %1409
  store double %1410, ptr %179, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #9
  %1411 = load double, ptr %12, align 8, !tbaa !9
  %1412 = load double, ptr %122, align 8, !tbaa !9
  %1413 = fdiv double %1411, %1412
  %1414 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %1415 = load double, ptr %1414, align 8, !tbaa !26
  %1416 = call double @cos(double noundef %1415) #9
  %1417 = load double, ptr %11, align 8, !tbaa !9
  %1418 = call double @sin(double noundef %1417) #9
  %1419 = fdiv double %1416, %1418
  %1420 = fadd double %1419, 1.000000e+00
  %1421 = fmul double %1413, %1420
  store double %1421, ptr %180, align 8, !tbaa !9
  %1422 = load double, ptr %180, align 8, !tbaa !9
  %1423 = fcmp ogt double %1422, 0.000000e+00
  store i1 false, ptr %183, align 1
  store i1 false, ptr %185, align 1
  store i1 false, ptr %187, align 1
  store i1 false, ptr %189, align 1
  store i1 false, ptr %191, align 1
  store i1 false, ptr %193, align 1
  store i1 false, ptr %195, align 1
  store i1 false, ptr %196, align 1
  store i1 false, ptr %197, 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 %203, align 1
  store i1 false, ptr %204, align 1
  store i1 false, ptr %205, align 1
  store i1 false, ptr %206, align 1
  store i1 false, ptr %208, align 1
  store i1 false, ptr %210, align 1
  store i1 false, ptr %211, align 1
  store i1 false, ptr %212, align 1
  store i1 false, ptr %213, align 1
  store i1 false, ptr %214, align 1
  store i1 false, ptr %216, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #9
  store i1 false, ptr %218, align 1
  store i1 false, ptr %219, align 1
  store i1 false, ptr %222, align 1
  store i1 false, ptr %224, align 1
  store i1 false, ptr %225, align 1
  store i1 false, ptr %226, align 1
  store i1 false, ptr %228, align 1
  store i1 false, ptr %230, align 1
  store i1 false, ptr %231, align 1
  store i1 false, ptr %232, align 1
  store i1 false, ptr %233, align 1
  br i1 %1423, label %1440, label %1424

1424:                                             ; preds = %1400
  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 32, ptr %184) #9
  store i1 true, ptr %185, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %186) #9
  store i1 true, ptr %187, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %188) #9
  store i1 true, ptr %189, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %190) #9
  store i1 true, ptr %191, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %192) #9
  store i1 true, ptr %193, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %194) #9
  store i1 true, ptr %195, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #9
  store i1 true, ptr %196, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %194)
          to label %1425 unwind label %1568

1425:                                             ; preds = %1424
  store i1 true, ptr %197, 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 %190, ptr noundef nonnull align 8 dereferenceable(32) %192, ptr noundef @.str.1)
          to label %1426 unwind label %1572

1426:                                             ; preds = %1425
  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 1, ptr %201) #9
  store i1 true, ptr %202, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #9
  store i1 true, ptr %203, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %199, ptr noundef @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %1427 unwind label %1576

1427:                                             ; preds = %1426
  store i1 true, ptr %204, 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 %188, ptr noundef nonnull align 8 dereferenceable(32) %190, ptr noundef nonnull align 8 dereferenceable(32) %199)
          to label %1428 unwind label %1580

1428:                                             ; preds = %1427
  store i1 true, ptr %205, 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 %186, ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef @.str.2)
          to label %1429 unwind label %1584

1429:                                             ; preds = %1428
  store i1 true, ptr %206, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %207) #9
  store i1 true, ptr %208, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %209) #9
  store i1 true, ptr %210, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #9
  store i1 true, ptr %211, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %207, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %209)
          to label %1430 unwind label %1588

1430:                                             ; preds = %1429
  store i1 true, ptr %212, 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 %184, ptr noundef nonnull align 8 dereferenceable(32) %186, ptr noundef nonnull align 8 dereferenceable(32) %207)
          to label %1431 unwind label %1592

1431:                                             ; preds = %1430
  store i1 true, ptr %213, 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 %182, ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef @.str.4)
          to label %1432 unwind label %1596

1432:                                             ; preds = %1431
  store i1 true, ptr %214, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %215) #9
  store i1 true, ptr %216, align 1
  store i32 472, ptr %217, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %215, ptr noundef nonnull align 4 dereferenceable(4) %217)
          to label %1433 unwind label %1600

1433:                                             ; preds = %1432
  store i1 true, ptr %218, 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 %181, ptr noundef nonnull align 8 dereferenceable(32) %182, ptr noundef nonnull align 8 dereferenceable(32) %215)
          to label %1434 unwind label %1604

1434:                                             ; preds = %1433
  store i1 true, ptr %219, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %221) #9
  store i1 true, ptr %222, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %223) #9
  store i1 true, ptr %224, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #9
  store i1 true, ptr %225, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %223)
          to label %1435 unwind label %1608

1435:                                             ; preds = %1434
  store i1 true, ptr %226, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %227) #9
  store i1 true, ptr %228, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %229) #9
  store i1 true, ptr %230, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #9
  store i1 true, ptr %231, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %227, ptr noundef @.str.36, ptr noundef nonnull align 1 dereferenceable(1) %229)
          to label %1436 unwind label %1612

1436:                                             ; preds = %1435
  store i1 true, ptr %232, 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 %220, ptr noundef nonnull align 8 dereferenceable(32) %221, ptr noundef nonnull align 8 dereferenceable(32) %227)
          to label %1437 unwind label %1616

1437:                                             ; preds = %1436
  store i1 true, ptr %233, align 1
  %1438 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %181, ptr noundef %220, i32 noundef 0)
          to label %1439 unwind label %1620

1439:                                             ; preds = %1437
  br label %1440

1440:                                             ; preds = %1439, %1400
  %1441 = phi i1 [ true, %1400 ], [ %1438, %1439 ]
  %1442 = xor i1 %1441, true
  %1443 = load i1, ptr %233, align 1
  br i1 %1443, label %1444, label %1445

1444:                                             ; preds = %1440
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #9
  br label %1445

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

1447:                                             ; preds = %1445
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #9
  br label %1448

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

1450:                                             ; preds = %1448
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #9
  br label %1451

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

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

1454:                                             ; preds = %1453, %1451
  %1455 = load i1, ptr %228, align 1
  br i1 %1455, label %1456, label %1457

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

1457:                                             ; preds = %1456, %1454
  %1458 = load i1, ptr %226, align 1
  br i1 %1458, label %1459, label %1460

1459:                                             ; preds = %1457
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #9
  br label %1460

1460:                                             ; preds = %1459, %1457
  %1461 = load i1, ptr %225, align 1
  br i1 %1461, label %1462, label %1463

1462:                                             ; preds = %1460
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #9
  br label %1463

1463:                                             ; preds = %1462, %1460
  %1464 = load i1, ptr %224, align 1
  br i1 %1464, label %1465, label %1466

1465:                                             ; preds = %1463
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #9
  br label %1466

1466:                                             ; preds = %1465, %1463
  %1467 = load i1, ptr %222, align 1
  br i1 %1467, label %1468, label %1469

1468:                                             ; preds = %1466
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #9
  br label %1469

1469:                                             ; preds = %1468, %1466
  %1470 = load i1, ptr %219, align 1
  br i1 %1470, label %1471, label %1472

1471:                                             ; preds = %1469
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #9
  br label %1472

1472:                                             ; preds = %1471, %1469
  %1473 = load i1, ptr %218, align 1
  br i1 %1473, label %1474, label %1475

1474:                                             ; preds = %1472
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #9
  br label %1475

1475:                                             ; preds = %1474, %1472
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #9
  %1476 = load i1, ptr %216, align 1
  br i1 %1476, label %1477, label %1478

1477:                                             ; preds = %1475
  call void @llvm.lifetime.end.p0(i64 32, ptr %215) #9
  br label %1478

1478:                                             ; preds = %1477, %1475
  %1479 = load i1, ptr %214, align 1
  br i1 %1479, label %1480, label %1481

1480:                                             ; preds = %1478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #9
  br label %1481

1481:                                             ; preds = %1480, %1478
  %1482 = load i1, ptr %213, align 1
  br i1 %1482, label %1483, label %1484

1483:                                             ; preds = %1481
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #9
  br label %1484

1484:                                             ; preds = %1483, %1481
  %1485 = load i1, ptr %212, align 1
  br i1 %1485, label %1486, label %1487

1486:                                             ; preds = %1484
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  br label %1487

1487:                                             ; preds = %1486, %1484
  %1488 = load i1, ptr %211, align 1
  br i1 %1488, label %1489, label %1490

1489:                                             ; preds = %1487
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #9
  br label %1490

1490:                                             ; preds = %1489, %1487
  %1491 = load i1, ptr %210, align 1
  br i1 %1491, label %1492, label %1493

1492:                                             ; preds = %1490
  call void @llvm.lifetime.end.p0(i64 1, ptr %209) #9
  br label %1493

1493:                                             ; preds = %1492, %1490
  %1494 = load i1, ptr %208, align 1
  br i1 %1494, label %1495, label %1496

1495:                                             ; preds = %1493
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #9
  br label %1496

1496:                                             ; preds = %1495, %1493
  %1497 = load i1, ptr %206, align 1
  br i1 %1497, label %1498, label %1499

1498:                                             ; preds = %1496
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #9
  br label %1499

1499:                                             ; preds = %1498, %1496
  %1500 = load i1, ptr %205, align 1
  br i1 %1500, label %1501, label %1502

1501:                                             ; preds = %1499
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #9
  br label %1502

1502:                                             ; preds = %1501, %1499
  %1503 = load i1, ptr %204, align 1
  br i1 %1503, label %1504, label %1505

1504:                                             ; preds = %1502
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #9
  br label %1505

1505:                                             ; preds = %1504, %1502
  %1506 = load i1, ptr %203, align 1
  br i1 %1506, label %1507, label %1508

1507:                                             ; preds = %1505
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #9
  br label %1508

1508:                                             ; preds = %1507, %1505
  %1509 = load i1, ptr %202, align 1
  br i1 %1509, label %1510, label %1511

1510:                                             ; preds = %1508
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #9
  br label %1511

1511:                                             ; preds = %1510, %1508
  %1512 = load i1, ptr %200, align 1
  br i1 %1512, label %1513, label %1514

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

1514:                                             ; preds = %1513, %1511
  %1515 = load i1, ptr %198, align 1
  br i1 %1515, label %1516, label %1517

1516:                                             ; preds = %1514
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  br label %1517

1517:                                             ; preds = %1516, %1514
  %1518 = load i1, ptr %197, align 1
  br i1 %1518, label %1519, label %1520

1519:                                             ; preds = %1517
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #9
  br label %1520

1520:                                             ; preds = %1519, %1517
  %1521 = load i1, ptr %196, align 1
  br i1 %1521, label %1522, label %1523

1522:                                             ; preds = %1520
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #9
  br label %1523

1523:                                             ; preds = %1522, %1520
  %1524 = load i1, ptr %195, align 1
  br i1 %1524, label %1525, label %1526

1525:                                             ; preds = %1523
  call void @llvm.lifetime.end.p0(i64 1, ptr %194) #9
  br label %1526

1526:                                             ; preds = %1525, %1523
  %1527 = load i1, ptr %193, align 1
  br i1 %1527, label %1528, label %1529

1528:                                             ; preds = %1526
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #9
  br label %1529

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

1531:                                             ; preds = %1529
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #9
  br label %1532

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

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

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

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

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

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

1541:                                             ; preds = %1540, %1538
  %1542 = load i1, ptr %183, align 1
  br i1 %1542, label %1543, label %1544

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

1544:                                             ; preds = %1543, %1541
  %1545 = load double, ptr %180, align 8, !tbaa !9
  %1546 = load double, ptr %179, align 8, !tbaa !9
  %1547 = fsub double %1545, %1546
  %1548 = load double, ptr @_ZN4Apex15NEG_ALMOST_ZEROE, align 8, !tbaa !9
  %1549 = fcmp olt double %1547, %1548
  br i1 %1549, label %1550, label %2500

1550:                                             ; preds = %1544
  %1551 = load double, ptr %9, align 8, !tbaa !9
  %1552 = load double, ptr %123, align 8, !tbaa !9
  %1553 = fadd double %1552, 1.000000e-01
  %1554 = fcmp olt double %1551, %1553
  br i1 %1554, label %1555, label %2500

1555:                                             ; preds = %1550
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #9
  %1556 = load double, ptr %12, align 8, !tbaa !9
  %1557 = load double, ptr %122, align 8, !tbaa !9
  %1558 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8, !tbaa !9
  %1559 = fadd double %1557, %1558
  %1560 = fdiv double %1556, %1559
  store double %1560, ptr %234, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %235) #9
  %1561 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 3
  %1562 = load double, ptr %1561, align 8, !tbaa !27
  store double %1562, ptr %235, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #9
  store i32 0, ptr %236, align 4, !tbaa !17
  br label %1563

1563:                                             ; preds = %2437, %1555
  %1564 = load i32, ptr %236, align 4, !tbaa !17
  %1565 = load i32, ptr @_ZN4Apex7MAX_ITRE, align 4, !tbaa !17
  %1566 = icmp slt i32 %1564, %1565
  br i1 %1566, label %1739, label %1567

1567:                                             ; preds = %1563
  store i32 2, ptr %237, align 4
  br label %2441

1568:                                             ; preds = %1424
  %1569 = landingpad { ptr, i32 }
          cleanup
  %1570 = extractvalue { ptr, i32 } %1569, 0
  store ptr %1570, ptr %30, align 8
  %1571 = extractvalue { ptr, i32 } %1569, 1
  store i32 %1571, ptr %31, align 4
  br label %1714

1572:                                             ; preds = %1425
  %1573 = landingpad { ptr, i32 }
          cleanup
  %1574 = extractvalue { ptr, i32 } %1573, 0
  store ptr %1574, ptr %30, align 8
  %1575 = extractvalue { ptr, i32 } %1573, 1
  store i32 %1575, ptr %31, align 4
  br label %1710

1576:                                             ; preds = %1426
  %1577 = landingpad { ptr, i32 }
          cleanup
  %1578 = extractvalue { ptr, i32 } %1577, 0
  store ptr %1578, ptr %30, align 8
  %1579 = extractvalue { ptr, i32 } %1577, 1
  store i32 %1579, ptr %31, align 4
  br label %1697

1580:                                             ; preds = %1427
  %1581 = landingpad { ptr, i32 }
          cleanup
  %1582 = extractvalue { ptr, i32 } %1581, 0
  store ptr %1582, ptr %30, align 8
  %1583 = extractvalue { ptr, i32 } %1581, 1
  store i32 %1583, ptr %31, align 4
  br label %1693

1584:                                             ; preds = %1428
  %1585 = landingpad { ptr, i32 }
          cleanup
  %1586 = extractvalue { ptr, i32 } %1585, 0
  store ptr %1586, ptr %30, align 8
  %1587 = extractvalue { ptr, i32 } %1585, 1
  store i32 %1587, ptr %31, align 4
  br label %1689

1588:                                             ; preds = %1429
  %1589 = landingpad { ptr, i32 }
          cleanup
  %1590 = extractvalue { ptr, i32 } %1589, 0
  store ptr %1590, ptr %30, align 8
  %1591 = extractvalue { ptr, i32 } %1589, 1
  store i32 %1591, ptr %31, align 4
  br label %1676

1592:                                             ; preds = %1430
  %1593 = landingpad { ptr, i32 }
          cleanup
  %1594 = extractvalue { ptr, i32 } %1593, 0
  store ptr %1594, ptr %30, align 8
  %1595 = extractvalue { ptr, i32 } %1593, 1
  store i32 %1595, ptr %31, align 4
  br label %1672

1596:                                             ; preds = %1431
  %1597 = landingpad { ptr, i32 }
          cleanup
  %1598 = extractvalue { ptr, i32 } %1597, 0
  store ptr %1598, ptr %30, align 8
  %1599 = extractvalue { ptr, i32 } %1597, 1
  store i32 %1599, ptr %31, align 4
  br label %1668

1600:                                             ; preds = %1432
  %1601 = landingpad { ptr, i32 }
          cleanup
  %1602 = extractvalue { ptr, i32 } %1601, 0
  store ptr %1602, ptr %30, align 8
  %1603 = extractvalue { ptr, i32 } %1601, 1
  store i32 %1603, ptr %31, align 4
  br label %1661

1604:                                             ; preds = %1433
  %1605 = landingpad { ptr, i32 }
          cleanup
  %1606 = extractvalue { ptr, i32 } %1605, 0
  store ptr %1606, ptr %30, align 8
  %1607 = extractvalue { ptr, i32 } %1605, 1
  store i32 %1607, ptr %31, align 4
  br label %1657

1608:                                             ; preds = %1434
  %1609 = landingpad { ptr, i32 }
          cleanup
  %1610 = extractvalue { ptr, i32 } %1609, 0
  store ptr %1610, ptr %30, align 8
  %1611 = extractvalue { ptr, i32 } %1609, 1
  store i32 %1611, ptr %31, align 4
  br label %1644

1612:                                             ; preds = %1435
  %1613 = landingpad { ptr, i32 }
          cleanup
  %1614 = extractvalue { ptr, i32 } %1613, 0
  store ptr %1614, ptr %30, align 8
  %1615 = extractvalue { ptr, i32 } %1613, 1
  store i32 %1615, ptr %31, align 4
  br label %1631

1616:                                             ; preds = %1436
  %1617 = landingpad { ptr, i32 }
          cleanup
  %1618 = extractvalue { ptr, i32 } %1617, 0
  store ptr %1618, ptr %30, align 8
  %1619 = extractvalue { ptr, i32 } %1617, 1
  store i32 %1619, ptr %31, align 4
  br label %1627

1620:                                             ; preds = %1437
  %1621 = landingpad { ptr, i32 }
          cleanup
  %1622 = extractvalue { ptr, i32 } %1621, 0
  store ptr %1622, ptr %30, align 8
  %1623 = extractvalue { ptr, i32 } %1621, 1
  store i32 %1623, ptr %31, align 4
  %1624 = load i1, ptr %233, align 1
  br i1 %1624, label %1625, label %1626

1625:                                             ; preds = %1620
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %220) #9
  br label %1626

1626:                                             ; preds = %1625, %1620
  br label %1627

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

1629:                                             ; preds = %1627
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %227) #9
  br label %1630

1630:                                             ; preds = %1629, %1627
  br label %1631

1631:                                             ; preds = %1630, %1612
  %1632 = load i1, ptr %231, align 1
  br i1 %1632, label %1633, label %1634

1633:                                             ; preds = %1631
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %229) #9
  br label %1634

1634:                                             ; preds = %1633, %1631
  %1635 = load i1, ptr %230, align 1
  br i1 %1635, label %1636, label %1637

1636:                                             ; preds = %1634
  call void @llvm.lifetime.end.p0(i64 1, ptr %229) #9
  br label %1637

1637:                                             ; preds = %1636, %1634
  %1638 = load i1, ptr %228, align 1
  br i1 %1638, label %1639, label %1640

1639:                                             ; preds = %1637
  call void @llvm.lifetime.end.p0(i64 32, ptr %227) #9
  br label %1640

1640:                                             ; preds = %1639, %1637
  %1641 = load i1, ptr %226, align 1
  br i1 %1641, label %1642, label %1643

1642:                                             ; preds = %1640
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %221) #9
  br label %1643

1643:                                             ; preds = %1642, %1640
  br label %1644

1644:                                             ; preds = %1643, %1608
  %1645 = load i1, ptr %225, align 1
  br i1 %1645, label %1646, label %1647

1646:                                             ; preds = %1644
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %223) #9
  br label %1647

1647:                                             ; preds = %1646, %1644
  %1648 = load i1, ptr %224, align 1
  br i1 %1648, label %1649, label %1650

1649:                                             ; preds = %1647
  call void @llvm.lifetime.end.p0(i64 1, ptr %223) #9
  br label %1650

1650:                                             ; preds = %1649, %1647
  %1651 = load i1, ptr %222, align 1
  br i1 %1651, label %1652, label %1653

1652:                                             ; preds = %1650
  call void @llvm.lifetime.end.p0(i64 32, ptr %221) #9
  br label %1653

1653:                                             ; preds = %1652, %1650
  %1654 = load i1, ptr %219, align 1
  br i1 %1654, label %1655, label %1656

1655:                                             ; preds = %1653
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %181) #9
  br label %1656

1656:                                             ; preds = %1655, %1653
  br label %1657

1657:                                             ; preds = %1656, %1604
  %1658 = load i1, ptr %218, align 1
  br i1 %1658, label %1659, label %1660

1659:                                             ; preds = %1657
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #9
  br label %1660

1660:                                             ; preds = %1659, %1657
  br label %1661

1661:                                             ; preds = %1660, %1600
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #9
  %1662 = load i1, ptr %216, align 1
  br i1 %1662, label %1663, label %1664

1663:                                             ; preds = %1661
  call void @llvm.lifetime.end.p0(i64 32, ptr %215) #9
  br label %1664

1664:                                             ; preds = %1663, %1661
  %1665 = load i1, ptr %214, align 1
  br i1 %1665, label %1666, label %1667

1666:                                             ; preds = %1664
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %182) #9
  br label %1667

1667:                                             ; preds = %1666, %1664
  br label %1668

1668:                                             ; preds = %1667, %1596
  %1669 = load i1, ptr %213, align 1
  br i1 %1669, label %1670, label %1671

1670:                                             ; preds = %1668
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #9
  br label %1671

1671:                                             ; preds = %1670, %1668
  br label %1672

1672:                                             ; preds = %1671, %1592
  %1673 = load i1, ptr %212, align 1
  br i1 %1673, label %1674, label %1675

1674:                                             ; preds = %1672
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %207) #9
  br label %1675

1675:                                             ; preds = %1674, %1672
  br label %1676

1676:                                             ; preds = %1675, %1588
  %1677 = load i1, ptr %211, align 1
  br i1 %1677, label %1678, label %1679

1678:                                             ; preds = %1676
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #9
  br label %1679

1679:                                             ; preds = %1678, %1676
  %1680 = load i1, ptr %210, align 1
  br i1 %1680, label %1681, label %1682

1681:                                             ; preds = %1679
  call void @llvm.lifetime.end.p0(i64 1, ptr %209) #9
  br label %1682

1682:                                             ; preds = %1681, %1679
  %1683 = load i1, ptr %208, align 1
  br i1 %1683, label %1684, label %1685

1684:                                             ; preds = %1682
  call void @llvm.lifetime.end.p0(i64 32, ptr %207) #9
  br label %1685

1685:                                             ; preds = %1684, %1682
  %1686 = load i1, ptr %206, align 1
  br i1 %1686, label %1687, label %1688

1687:                                             ; preds = %1685
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %186) #9
  br label %1688

1688:                                             ; preds = %1687, %1685
  br label %1689

1689:                                             ; preds = %1688, %1584
  %1690 = load i1, ptr %205, align 1
  br i1 %1690, label %1691, label %1692

1691:                                             ; preds = %1689
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %188) #9
  br label %1692

1692:                                             ; preds = %1691, %1689
  br label %1693

1693:                                             ; preds = %1692, %1580
  %1694 = load i1, ptr %204, align 1
  br i1 %1694, label %1695, label %1696

1695:                                             ; preds = %1693
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %199) #9
  br label %1696

1696:                                             ; preds = %1695, %1693
  br label %1697

1697:                                             ; preds = %1696, %1576
  %1698 = load i1, ptr %203, align 1
  br i1 %1698, label %1699, label %1700

1699:                                             ; preds = %1697
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #9
  br label %1700

1700:                                             ; preds = %1699, %1697
  %1701 = load i1, ptr %202, align 1
  br i1 %1701, label %1702, label %1703

1702:                                             ; preds = %1700
  call void @llvm.lifetime.end.p0(i64 1, ptr %201) #9
  br label %1703

1703:                                             ; preds = %1702, %1700
  %1704 = load i1, ptr %200, align 1
  br i1 %1704, label %1705, label %1706

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

1706:                                             ; preds = %1705, %1703
  %1707 = load i1, ptr %198, align 1
  br i1 %1707, label %1708, label %1709

1708:                                             ; preds = %1706
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %190) #9
  br label %1709

1709:                                             ; preds = %1708, %1706
  br label %1710

1710:                                             ; preds = %1709, %1572
  %1711 = load i1, ptr %197, align 1
  br i1 %1711, label %1712, label %1713

1712:                                             ; preds = %1710
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %192) #9
  br label %1713

1713:                                             ; preds = %1712, %1710
  br label %1714

1714:                                             ; preds = %1713, %1568
  %1715 = load i1, ptr %196, align 1
  br i1 %1715, label %1716, label %1717

1716:                                             ; preds = %1714
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %194) #9
  br label %1717

1717:                                             ; preds = %1716, %1714
  %1718 = load i1, ptr %195, align 1
  br i1 %1718, label %1719, label %1720

1719:                                             ; preds = %1717
  call void @llvm.lifetime.end.p0(i64 1, ptr %194) #9
  br label %1720

1720:                                             ; preds = %1719, %1717
  %1721 = load i1, ptr %193, align 1
  br i1 %1721, label %1722, label %1723

1722:                                             ; preds = %1720
  call void @llvm.lifetime.end.p0(i64 32, ptr %192) #9
  br label %1723

1723:                                             ; preds = %1722, %1720
  %1724 = load i1, ptr %191, align 1
  br i1 %1724, label %1725, label %1726

1725:                                             ; preds = %1723
  call void @llvm.lifetime.end.p0(i64 32, ptr %190) #9
  br label %1726

1726:                                             ; preds = %1725, %1723
  %1727 = load i1, ptr %189, align 1
  br i1 %1727, label %1728, label %1729

1728:                                             ; preds = %1726
  call void @llvm.lifetime.end.p0(i64 32, ptr %188) #9
  br label %1729

1729:                                             ; preds = %1728, %1726
  %1730 = load i1, ptr %187, align 1
  br i1 %1730, label %1731, label %1732

1731:                                             ; preds = %1729
  call void @llvm.lifetime.end.p0(i64 32, ptr %186) #9
  br label %1732

1732:                                             ; preds = %1731, %1729
  %1733 = load i1, ptr %185, align 1
  br i1 %1733, label %1734, label %1735

1734:                                             ; preds = %1732
  call void @llvm.lifetime.end.p0(i64 32, ptr %184) #9
  br label %1735

1735:                                             ; preds = %1734, %1732
  %1736 = load i1, ptr %183, align 1
  br i1 %1736, label %1737, label %1738

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

1738:                                             ; preds = %1737, %1735
  br label %3305

1739:                                             ; preds = %1563
  call void @llvm.lifetime.start.p0(i64 8, ptr %238) #9
  %1740 = load double, ptr %177, align 8, !tbaa !9
  %1741 = load double, ptr %11, align 8, !tbaa !9
  %1742 = call double @sin(double noundef %1741) #9
  %1743 = fmul double %1740, %1742
  %1744 = load double, ptr %234, align 8, !tbaa !9
  %1745 = fdiv double %1743, %1744
  %1746 = call double @acos(double noundef %1745) #9
  %1747 = load double, ptr %11, align 8, !tbaa !9
  %1748 = fsub double %1746, %1747
  store double %1748, ptr %238, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %239) #9
  %1749 = load double, ptr %235, align 8, !tbaa !9
  %1750 = load double, ptr %11, align 8, !tbaa !9
  %1751 = call double @sin(double noundef %1750) #9
  %1752 = fmul double %1749, %1751
  %1753 = load double, ptr %234, align 8, !tbaa !9
  %1754 = fdiv double %1752, %1753
  %1755 = call double @acos(double noundef %1754) #9
  %1756 = load double, ptr %11, align 8, !tbaa !9
  %1757 = fadd double %1755, %1756
  store double %1757, ptr %239, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %240) #9
  %1758 = load double, ptr %177, align 8, !tbaa !9
  %1759 = load double, ptr %11, align 8, !tbaa !9
  %1760 = call double @sin(double noundef %1759) #9
  %1761 = fmul double %1758, %1760
  %1762 = load double, ptr %238, align 8, !tbaa !9
  %1763 = load double, ptr %11, align 8, !tbaa !9
  %1764 = fadd double %1762, %1763
  %1765 = call double @sin(double noundef %1764) #9
  %1766 = load double, ptr %234, align 8, !tbaa !9
  %1767 = fmul double %1765, %1766
  %1768 = load double, ptr %234, align 8, !tbaa !9
  %1769 = fmul double %1767, %1768
  %1770 = fdiv double %1761, %1769
  store double %1770, ptr %240, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #9
  %1771 = load double, ptr %235, align 8, !tbaa !9
  %1772 = load double, ptr %11, align 8, !tbaa !9
  %1773 = call double @sin(double noundef %1772) #9
  %1774 = fmul double %1771, %1773
  %1775 = load double, ptr %239, align 8, !tbaa !9
  %1776 = load double, ptr %11, align 8, !tbaa !9
  %1777 = fsub double %1775, %1776
  %1778 = call double @sin(double noundef %1777) #9
  %1779 = load double, ptr %234, align 8, !tbaa !9
  %1780 = fmul double %1778, %1779
  %1781 = load double, ptr %234, align 8, !tbaa !9
  %1782 = fmul double %1780, %1781
  %1783 = fdiv double %1774, %1782
  store double %1783, ptr %241, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %242) #9
  %1784 = load double, ptr %238, align 8, !tbaa !9
  %1785 = call double @cos(double noundef %1784) #9
  %1786 = load double, ptr %239, align 8, !tbaa !9
  %1787 = call double @cos(double noundef %1786) #9
  %1788 = fsub double %1785, %1787
  %1789 = load double, ptr %11, align 8, !tbaa !9
  %1790 = call double @sin(double noundef %1789) #9
  %1791 = fdiv double %1788, %1790
  %1792 = fsub double %1791, 2.000000e+00
  store double %1792, ptr %242, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %243) #9
  %1793 = load double, ptr %241, align 8, !tbaa !9
  %1794 = load double, ptr %239, align 8, !tbaa !9
  %1795 = call double @sin(double noundef %1794) #9
  %1796 = load double, ptr %240, align 8, !tbaa !9
  %1797 = load double, ptr %238, align 8, !tbaa !9
  %1798 = call double @sin(double noundef %1797) #9
  %1799 = fmul double %1796, %1798
  %1800 = fneg double %1799
  %1801 = call double @llvm.fmuladd.f64(double %1793, double %1795, double %1800)
  %1802 = load double, ptr %11, align 8, !tbaa !9
  %1803 = call double @sin(double noundef %1802) #9
  %1804 = fdiv double %1801, %1803
  store double %1804, ptr %243, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #9
  %1805 = load double, ptr %234, align 8, !tbaa !9
  %1806 = load double, ptr %242, align 8, !tbaa !9
  %1807 = load double, ptr %243, align 8, !tbaa !9
  %1808 = fdiv double %1806, %1807
  %1809 = fsub double %1805, %1808
  store double %1809, ptr %244, align 8, !tbaa !9
  %1810 = load double, ptr %244, align 8, !tbaa !9
  %1811 = load double, ptr %234, align 8, !tbaa !9
  %1812 = fsub double %1810, %1811
  %1813 = load double, ptr %244, align 8, !tbaa !9
  %1814 = fdiv double %1812, %1813
  %1815 = call double @llvm.fabs.f64(double %1814)
  %1816 = load double, ptr @_ZN4Apex7EPSILONE, align 8, !tbaa !9
  %1817 = fcmp olt double %1815, %1816
  br i1 %1817, label %1818, label %2432

1818:                                             ; preds = %1739
  %1819 = load double, ptr %244, align 8, !tbaa !9
  %1820 = load double, ptr %178, align 8, !tbaa !9
  %1821 = call double @cos(double noundef %1820) #9
  %1822 = load double, ptr %11, align 8, !tbaa !9
  %1823 = call double @sin(double noundef %1822) #9
  %1824 = fdiv double %1821, %1823
  %1825 = fsub double %1824, 1.000000e+00
  %1826 = load double, ptr %244, align 8, !tbaa !9
  %1827 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %1828 = load double, ptr %1827, align 8, !tbaa !26
  %1829 = call double @cos(double noundef %1828) #9
  %1830 = load double, ptr %11, align 8, !tbaa !9
  %1831 = call double @sin(double noundef %1830) #9
  %1832 = fdiv double %1829, %1831
  %1833 = fadd double %1832, 1.000000e+00
  %1834 = fmul double %1826, %1833
  %1835 = fneg double %1834
  %1836 = call double @llvm.fmuladd.f64(double %1819, double %1825, double %1835)
  %1837 = call double @llvm.fabs.f64(double %1836)
  %1838 = load double, ptr @_ZN4Apex7EPSILONE, align 8, !tbaa !9
  %1839 = fcmp olt double %1837, %1838
  store i1 false, ptr %247, align 1
  store i1 false, ptr %249, align 1
  store i1 false, ptr %251, align 1
  store i1 false, ptr %253, align 1
  store i1 false, ptr %255, align 1
  store i1 false, ptr %257, align 1
  store i1 false, ptr %259, align 1
  store i1 false, ptr %260, align 1
  store i1 false, ptr %261, align 1
  store i1 false, ptr %262, align 1
  store i1 false, ptr %264, align 1
  store i1 false, ptr %266, align 1
  store i1 false, ptr %267, align 1
  store i1 false, ptr %268, align 1
  store i1 false, ptr %269, align 1
  store i1 false, ptr %270, align 1
  store i1 false, ptr %272, align 1
  store i1 false, ptr %274, align 1
  store i1 false, ptr %275, align 1
  store i1 false, ptr %276, align 1
  store i1 false, ptr %277, align 1
  store i1 false, ptr %278, align 1
  store i1 false, ptr %280, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %281) #9
  store i1 false, ptr %282, align 1
  store i1 false, ptr %283, align 1
  store i1 false, ptr %286, align 1
  store i1 false, ptr %288, align 1
  store i1 false, ptr %289, align 1
  store i1 false, ptr %290, align 1
  store i1 false, ptr %292, align 1
  store i1 false, ptr %294, align 1
  store i1 false, ptr %295, align 1
  store i1 false, ptr %296, align 1
  store i1 false, ptr %297, align 1
  br i1 %1839, label %1856, label %1840

1840:                                             ; preds = %1818
  call void @llvm.lifetime.start.p0(i64 32, ptr %246) #9
  store i1 true, ptr %247, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %248) #9
  store i1 true, ptr %249, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %250) #9
  store i1 true, ptr %251, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %252) #9
  store i1 true, ptr %253, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %254) #9
  store i1 true, ptr %255, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %256) #9
  store i1 true, ptr %257, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %258) #9
  store i1 true, ptr %259, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #9
  store i1 true, ptr %260, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %258)
          to label %1841 unwind label %2090

1841:                                             ; preds = %1840
  store i1 true, ptr %261, 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 %254, ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef @.str.1)
          to label %1842 unwind label %2094

1842:                                             ; preds = %1841
  store i1 true, ptr %262, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %263) #9
  store i1 true, ptr %264, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %265) #9
  store i1 true, ptr %266, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #9
  store i1 true, ptr %267, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %263, ptr noundef @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %265)
          to label %1843 unwind label %2098

1843:                                             ; preds = %1842
  store i1 true, ptr %268, 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 %252, ptr noundef nonnull align 8 dereferenceable(32) %254, ptr noundef nonnull align 8 dereferenceable(32) %263)
          to label %1844 unwind label %2102

1844:                                             ; preds = %1843
  store i1 true, ptr %269, 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 %250, ptr noundef nonnull align 8 dereferenceable(32) %252, ptr noundef @.str.2)
          to label %1845 unwind label %2106

1845:                                             ; preds = %1844
  store i1 true, ptr %270, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %271) #9
  store i1 true, ptr %272, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %273) #9
  store i1 true, ptr %274, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #9
  store i1 true, ptr %275, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %271, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %273)
          to label %1846 unwind label %2110

1846:                                             ; preds = %1845
  store i1 true, ptr %276, 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 %248, ptr noundef nonnull align 8 dereferenceable(32) %250, ptr noundef nonnull align 8 dereferenceable(32) %271)
          to label %1847 unwind label %2114

1847:                                             ; preds = %1846
  store i1 true, ptr %277, 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 %246, ptr noundef nonnull align 8 dereferenceable(32) %248, ptr noundef @.str.4)
          to label %1848 unwind label %2118

1848:                                             ; preds = %1847
  store i1 true, ptr %278, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %279) #9
  store i1 true, ptr %280, align 1
  store i32 490, ptr %281, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %279, ptr noundef nonnull align 4 dereferenceable(4) %281)
          to label %1849 unwind label %2122

1849:                                             ; preds = %1848
  store i1 true, ptr %282, 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 %245, ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull align 8 dereferenceable(32) %279)
          to label %1850 unwind label %2126

1850:                                             ; preds = %1849
  store i1 true, ptr %283, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %285) #9
  store i1 true, ptr %286, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %287) #9
  store i1 true, ptr %288, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #9
  store i1 true, ptr %289, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %285, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %287)
          to label %1851 unwind label %2130

1851:                                             ; preds = %1850
  store i1 true, ptr %290, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %291) #9
  store i1 true, ptr %292, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %293) #9
  store i1 true, ptr %294, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #9
  store i1 true, ptr %295, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %291, ptr noundef @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %293)
          to label %1852 unwind label %2134

1852:                                             ; preds = %1851
  store i1 true, ptr %296, 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 %284, ptr noundef nonnull align 8 dereferenceable(32) %285, ptr noundef nonnull align 8 dereferenceable(32) %291)
          to label %1853 unwind label %2138

1853:                                             ; preds = %1852
  store i1 true, ptr %297, align 1
  %1854 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %245, ptr noundef %284, i32 noundef 0)
          to label %1855 unwind label %2142

1855:                                             ; preds = %1853
  br label %1856

1856:                                             ; preds = %1855, %1818
  %1857 = phi i1 [ true, %1818 ], [ %1854, %1855 ]
  %1858 = xor i1 %1857, true
  %1859 = load i1, ptr %297, align 1
  br i1 %1859, label %1860, label %1861

1860:                                             ; preds = %1856
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #9
  br label %1861

1861:                                             ; preds = %1860, %1856
  %1862 = load i1, ptr %296, align 1
  br i1 %1862, label %1863, label %1864

1863:                                             ; preds = %1861
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #9
  br label %1864

1864:                                             ; preds = %1863, %1861
  %1865 = load i1, ptr %295, align 1
  br i1 %1865, label %1866, label %1867

1866:                                             ; preds = %1864
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #9
  br label %1867

1867:                                             ; preds = %1866, %1864
  %1868 = load i1, ptr %294, align 1
  br i1 %1868, label %1869, label %1870

1869:                                             ; preds = %1867
  call void @llvm.lifetime.end.p0(i64 1, ptr %293) #9
  br label %1870

1870:                                             ; preds = %1869, %1867
  %1871 = load i1, ptr %292, align 1
  br i1 %1871, label %1872, label %1873

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

1873:                                             ; preds = %1872, %1870
  %1874 = load i1, ptr %290, align 1
  br i1 %1874, label %1875, label %1876

1875:                                             ; preds = %1873
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #9
  br label %1876

1876:                                             ; preds = %1875, %1873
  %1877 = load i1, ptr %289, align 1
  br i1 %1877, label %1878, label %1879

1878:                                             ; preds = %1876
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #9
  br label %1879

1879:                                             ; preds = %1878, %1876
  %1880 = load i1, ptr %288, align 1
  br i1 %1880, label %1881, label %1882

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

1882:                                             ; preds = %1881, %1879
  %1883 = load i1, ptr %286, align 1
  br i1 %1883, label %1884, label %1885

1884:                                             ; preds = %1882
  call void @llvm.lifetime.end.p0(i64 32, ptr %285) #9
  br label %1885

1885:                                             ; preds = %1884, %1882
  %1886 = load i1, ptr %283, align 1
  br i1 %1886, label %1887, label %1888

1887:                                             ; preds = %1885
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #9
  br label %1888

1888:                                             ; preds = %1887, %1885
  %1889 = load i1, ptr %282, align 1
  br i1 %1889, label %1890, label %1891

1890:                                             ; preds = %1888
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #9
  br label %1891

1891:                                             ; preds = %1890, %1888
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #9
  %1892 = load i1, ptr %280, align 1
  br i1 %1892, label %1893, label %1894

1893:                                             ; preds = %1891
  call void @llvm.lifetime.end.p0(i64 32, ptr %279) #9
  br label %1894

1894:                                             ; preds = %1893, %1891
  %1895 = load i1, ptr %278, align 1
  br i1 %1895, label %1896, label %1897

1896:                                             ; preds = %1894
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #9
  br label %1897

1897:                                             ; preds = %1896, %1894
  %1898 = load i1, ptr %277, align 1
  br i1 %1898, label %1899, label %1900

1899:                                             ; preds = %1897
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #9
  br label %1900

1900:                                             ; preds = %1899, %1897
  %1901 = load i1, ptr %276, align 1
  br i1 %1901, label %1902, label %1903

1902:                                             ; preds = %1900
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #9
  br label %1903

1903:                                             ; preds = %1902, %1900
  %1904 = load i1, ptr %275, align 1
  br i1 %1904, label %1905, label %1906

1905:                                             ; preds = %1903
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #9
  br label %1906

1906:                                             ; preds = %1905, %1903
  %1907 = load i1, ptr %274, align 1
  br i1 %1907, label %1908, label %1909

1908:                                             ; preds = %1906
  call void @llvm.lifetime.end.p0(i64 1, ptr %273) #9
  br label %1909

1909:                                             ; preds = %1908, %1906
  %1910 = load i1, ptr %272, align 1
  br i1 %1910, label %1911, label %1912

1911:                                             ; preds = %1909
  call void @llvm.lifetime.end.p0(i64 32, ptr %271) #9
  br label %1912

1912:                                             ; preds = %1911, %1909
  %1913 = load i1, ptr %270, align 1
  br i1 %1913, label %1914, label %1915

1914:                                             ; preds = %1912
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #9
  br label %1915

1915:                                             ; preds = %1914, %1912
  %1916 = load i1, ptr %269, align 1
  br i1 %1916, label %1917, label %1918

1917:                                             ; preds = %1915
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #9
  br label %1918

1918:                                             ; preds = %1917, %1915
  %1919 = load i1, ptr %268, align 1
  br i1 %1919, label %1920, label %1921

1920:                                             ; preds = %1918
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #9
  br label %1921

1921:                                             ; preds = %1920, %1918
  %1922 = load i1, ptr %267, align 1
  br i1 %1922, label %1923, label %1924

1923:                                             ; preds = %1921
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #9
  br label %1924

1924:                                             ; preds = %1923, %1921
  %1925 = load i1, ptr %266, align 1
  br i1 %1925, label %1926, label %1927

1926:                                             ; preds = %1924
  call void @llvm.lifetime.end.p0(i64 1, ptr %265) #9
  br label %1927

1927:                                             ; preds = %1926, %1924
  %1928 = load i1, ptr %264, align 1
  br i1 %1928, label %1929, label %1930

1929:                                             ; preds = %1927
  call void @llvm.lifetime.end.p0(i64 32, ptr %263) #9
  br label %1930

1930:                                             ; preds = %1929, %1927
  %1931 = load i1, ptr %262, align 1
  br i1 %1931, label %1932, label %1933

1932:                                             ; preds = %1930
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #9
  br label %1933

1933:                                             ; preds = %1932, %1930
  %1934 = load i1, ptr %261, align 1
  br i1 %1934, label %1935, label %1936

1935:                                             ; preds = %1933
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #9
  br label %1936

1936:                                             ; preds = %1935, %1933
  %1937 = load i1, ptr %260, align 1
  br i1 %1937, label %1938, label %1939

1938:                                             ; preds = %1936
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #9
  br label %1939

1939:                                             ; preds = %1938, %1936
  %1940 = load i1, ptr %259, align 1
  br i1 %1940, label %1941, label %1942

1941:                                             ; preds = %1939
  call void @llvm.lifetime.end.p0(i64 1, ptr %258) #9
  br label %1942

1942:                                             ; preds = %1941, %1939
  %1943 = load i1, ptr %257, align 1
  br i1 %1943, label %1944, label %1945

1944:                                             ; preds = %1942
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #9
  br label %1945

1945:                                             ; preds = %1944, %1942
  %1946 = load i1, ptr %255, align 1
  br i1 %1946, label %1947, label %1948

1947:                                             ; preds = %1945
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #9
  br label %1948

1948:                                             ; preds = %1947, %1945
  %1949 = load i1, ptr %253, align 1
  br i1 %1949, label %1950, label %1951

1950:                                             ; preds = %1948
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #9
  br label %1951

1951:                                             ; preds = %1950, %1948
  %1952 = load i1, ptr %251, align 1
  br i1 %1952, label %1953, label %1954

1953:                                             ; preds = %1951
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #9
  br label %1954

1954:                                             ; preds = %1953, %1951
  %1955 = load i1, ptr %249, align 1
  br i1 %1955, label %1956, label %1957

1956:                                             ; preds = %1954
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #9
  br label %1957

1957:                                             ; preds = %1956, %1954
  %1958 = load i1, ptr %247, align 1
  br i1 %1958, label %1959, label %1960

1959:                                             ; preds = %1957
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #9
  br label %1960

1960:                                             ; preds = %1959, %1957
  %1961 = load double, ptr %12, align 8, !tbaa !9
  %1962 = load double, ptr %244, align 8, !tbaa !9
  %1963 = fdiv double %1961, %1962
  %1964 = fcmp olt double %1963, 0.000000e+00
  store i1 false, ptr %300, align 1
  store i1 false, ptr %302, align 1
  store i1 false, ptr %304, align 1
  store i1 false, ptr %306, align 1
  store i1 false, ptr %308, align 1
  store i1 false, ptr %310, align 1
  store i1 false, ptr %312, align 1
  store i1 false, ptr %313, align 1
  store i1 false, ptr %314, align 1
  store i1 false, ptr %315, align 1
  store i1 false, ptr %317, align 1
  store i1 false, ptr %319, align 1
  store i1 false, ptr %320, align 1
  store i1 false, ptr %321, align 1
  store i1 false, ptr %322, align 1
  store i1 false, ptr %323, align 1
  store i1 false, ptr %325, align 1
  store i1 false, ptr %327, align 1
  store i1 false, ptr %328, align 1
  store i1 false, ptr %329, align 1
  store i1 false, ptr %330, align 1
  store i1 false, ptr %331, align 1
  store i1 false, ptr %333, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #9
  store i1 false, ptr %335, align 1
  store i1 false, ptr %336, align 1
  store i1 false, ptr %339, align 1
  store i1 false, ptr %341, align 1
  store i1 false, ptr %342, align 1
  store i1 false, ptr %343, align 1
  store i1 false, ptr %345, align 1
  store i1 false, ptr %347, align 1
  store i1 false, ptr %348, align 1
  store i1 false, ptr %349, align 1
  store i1 false, ptr %350, align 1
  br i1 %1964, label %1981, label %1965

1965:                                             ; preds = %1960
  call void @llvm.lifetime.start.p0(i64 32, ptr %299) #9
  store i1 true, ptr %300, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %301) #9
  store i1 true, ptr %302, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %303) #9
  store i1 true, ptr %304, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %305) #9
  store i1 true, ptr %306, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %307) #9
  store i1 true, ptr %308, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %309) #9
  store i1 true, ptr %310, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %311) #9
  store i1 true, ptr %312, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #9
  store i1 true, ptr %313, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %311)
          to label %1966 unwind label %2261

1966:                                             ; preds = %1965
  store i1 true, ptr %314, 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 %307, ptr noundef nonnull align 8 dereferenceable(32) %309, ptr noundef @.str.1)
          to label %1967 unwind label %2265

1967:                                             ; preds = %1966
  store i1 true, ptr %315, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %316) #9
  store i1 true, ptr %317, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %318) #9
  store i1 true, ptr %319, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #9
  store i1 true, ptr %320, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %316, ptr noundef @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %318)
          to label %1968 unwind label %2269

1968:                                             ; preds = %1967
  store i1 true, ptr %321, 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 %305, ptr noundef nonnull align 8 dereferenceable(32) %307, ptr noundef nonnull align 8 dereferenceable(32) %316)
          to label %1969 unwind label %2273

1969:                                             ; preds = %1968
  store i1 true, ptr %322, 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 %303, ptr noundef nonnull align 8 dereferenceable(32) %305, ptr noundef @.str.2)
          to label %1970 unwind label %2277

1970:                                             ; preds = %1969
  store i1 true, ptr %323, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %324) #9
  store i1 true, ptr %325, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %326) #9
  store i1 true, ptr %327, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #9
  store i1 true, ptr %328, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %326)
          to label %1971 unwind label %2281

1971:                                             ; preds = %1970
  store i1 true, ptr %329, 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 %301, ptr noundef nonnull align 8 dereferenceable(32) %303, ptr noundef nonnull align 8 dereferenceable(32) %324)
          to label %1972 unwind label %2285

1972:                                             ; preds = %1971
  store i1 true, ptr %330, 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 %299, ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef @.str.4)
          to label %1973 unwind label %2289

1973:                                             ; preds = %1972
  store i1 true, ptr %331, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %332) #9
  store i1 true, ptr %333, align 1
  store i32 491, ptr %334, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %332, ptr noundef nonnull align 4 dereferenceable(4) %334)
          to label %1974 unwind label %2293

1974:                                             ; preds = %1973
  store i1 true, ptr %335, 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 %298, ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull align 8 dereferenceable(32) %332)
          to label %1975 unwind label %2297

1975:                                             ; preds = %1974
  store i1 true, ptr %336, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %338) #9
  store i1 true, ptr %339, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %340) #9
  store i1 true, ptr %341, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %340) #9
  store i1 true, ptr %342, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %338, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %340)
          to label %1976 unwind label %2301

1976:                                             ; preds = %1975
  store i1 true, ptr %343, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %344) #9
  store i1 true, ptr %345, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %346) #9
  store i1 true, ptr %347, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #9
  store i1 true, ptr %348, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %344, ptr noundef @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %346)
          to label %1977 unwind label %2305

1977:                                             ; preds = %1976
  store i1 true, ptr %349, 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 %337, ptr noundef nonnull align 8 dereferenceable(32) %338, ptr noundef nonnull align 8 dereferenceable(32) %344)
          to label %1978 unwind label %2309

1978:                                             ; preds = %1977
  store i1 true, ptr %350, align 1
  %1979 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %298, ptr noundef %337, i32 noundef 0)
          to label %1980 unwind label %2313

1980:                                             ; preds = %1978
  br label %1981

1981:                                             ; preds = %1980, %1960
  %1982 = phi i1 [ true, %1960 ], [ %1979, %1980 ]
  %1983 = xor i1 %1982, true
  %1984 = load i1, ptr %350, align 1
  br i1 %1984, label %1985, label %1986

1985:                                             ; preds = %1981
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #9
  br label %1986

1986:                                             ; preds = %1985, %1981
  %1987 = load i1, ptr %349, align 1
  br i1 %1987, label %1988, label %1989

1988:                                             ; preds = %1986
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #9
  br label %1989

1989:                                             ; preds = %1988, %1986
  %1990 = load i1, ptr %348, align 1
  br i1 %1990, label %1991, label %1992

1991:                                             ; preds = %1989
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #9
  br label %1992

1992:                                             ; preds = %1991, %1989
  %1993 = load i1, ptr %347, align 1
  br i1 %1993, label %1994, label %1995

1994:                                             ; preds = %1992
  call void @llvm.lifetime.end.p0(i64 1, ptr %346) #9
  br label %1995

1995:                                             ; preds = %1994, %1992
  %1996 = load i1, ptr %345, align 1
  br i1 %1996, label %1997, label %1998

1997:                                             ; preds = %1995
  call void @llvm.lifetime.end.p0(i64 32, ptr %344) #9
  br label %1998

1998:                                             ; preds = %1997, %1995
  %1999 = load i1, ptr %343, align 1
  br i1 %1999, label %2000, label %2001

2000:                                             ; preds = %1998
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #9
  br label %2001

2001:                                             ; preds = %2000, %1998
  %2002 = load i1, ptr %342, align 1
  br i1 %2002, label %2003, label %2004

2003:                                             ; preds = %2001
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %340) #9
  br label %2004

2004:                                             ; preds = %2003, %2001
  %2005 = load i1, ptr %341, align 1
  br i1 %2005, label %2006, label %2007

2006:                                             ; preds = %2004
  call void @llvm.lifetime.end.p0(i64 1, ptr %340) #9
  br label %2007

2007:                                             ; preds = %2006, %2004
  %2008 = load i1, ptr %339, align 1
  br i1 %2008, label %2009, label %2010

2009:                                             ; preds = %2007
  call void @llvm.lifetime.end.p0(i64 32, ptr %338) #9
  br label %2010

2010:                                             ; preds = %2009, %2007
  %2011 = load i1, ptr %336, align 1
  br i1 %2011, label %2012, label %2013

2012:                                             ; preds = %2010
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #9
  br label %2013

2013:                                             ; preds = %2012, %2010
  %2014 = load i1, ptr %335, align 1
  br i1 %2014, label %2015, label %2016

2015:                                             ; preds = %2013
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #9
  br label %2016

2016:                                             ; preds = %2015, %2013
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #9
  %2017 = load i1, ptr %333, align 1
  br i1 %2017, label %2018, label %2019

2018:                                             ; preds = %2016
  call void @llvm.lifetime.end.p0(i64 32, ptr %332) #9
  br label %2019

2019:                                             ; preds = %2018, %2016
  %2020 = load i1, ptr %331, align 1
  br i1 %2020, label %2021, label %2022

2021:                                             ; preds = %2019
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #9
  br label %2022

2022:                                             ; preds = %2021, %2019
  %2023 = load i1, ptr %330, align 1
  br i1 %2023, label %2024, label %2025

2024:                                             ; preds = %2022
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #9
  br label %2025

2025:                                             ; preds = %2024, %2022
  %2026 = load i1, ptr %329, align 1
  br i1 %2026, label %2027, label %2028

2027:                                             ; preds = %2025
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #9
  br label %2028

2028:                                             ; preds = %2027, %2025
  %2029 = load i1, ptr %328, align 1
  br i1 %2029, label %2030, label %2031

2030:                                             ; preds = %2028
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #9
  br label %2031

2031:                                             ; preds = %2030, %2028
  %2032 = load i1, ptr %327, align 1
  br i1 %2032, label %2033, label %2034

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

2034:                                             ; preds = %2033, %2031
  %2035 = load i1, ptr %325, align 1
  br i1 %2035, label %2036, label %2037

2036:                                             ; preds = %2034
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #9
  br label %2037

2037:                                             ; preds = %2036, %2034
  %2038 = load i1, ptr %323, align 1
  br i1 %2038, label %2039, label %2040

2039:                                             ; preds = %2037
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #9
  br label %2040

2040:                                             ; preds = %2039, %2037
  %2041 = load i1, ptr %322, align 1
  br i1 %2041, label %2042, label %2043

2042:                                             ; preds = %2040
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #9
  br label %2043

2043:                                             ; preds = %2042, %2040
  %2044 = load i1, ptr %321, align 1
  br i1 %2044, label %2045, label %2046

2045:                                             ; preds = %2043
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #9
  br label %2046

2046:                                             ; preds = %2045, %2043
  %2047 = load i1, ptr %320, align 1
  br i1 %2047, label %2048, label %2049

2048:                                             ; preds = %2046
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #9
  br label %2049

2049:                                             ; preds = %2048, %2046
  %2050 = load i1, ptr %319, align 1
  br i1 %2050, label %2051, label %2052

2051:                                             ; preds = %2049
  call void @llvm.lifetime.end.p0(i64 1, ptr %318) #9
  br label %2052

2052:                                             ; preds = %2051, %2049
  %2053 = load i1, ptr %317, align 1
  br i1 %2053, label %2054, label %2055

2054:                                             ; preds = %2052
  call void @llvm.lifetime.end.p0(i64 32, ptr %316) #9
  br label %2055

2055:                                             ; preds = %2054, %2052
  %2056 = load i1, ptr %315, align 1
  br i1 %2056, label %2057, label %2058

2057:                                             ; preds = %2055
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #9
  br label %2058

2058:                                             ; preds = %2057, %2055
  %2059 = load i1, ptr %314, align 1
  br i1 %2059, label %2060, label %2061

2060:                                             ; preds = %2058
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #9
  br label %2061

2061:                                             ; preds = %2060, %2058
  %2062 = load i1, ptr %313, align 1
  br i1 %2062, label %2063, label %2064

2063:                                             ; preds = %2061
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #9
  br label %2064

2064:                                             ; preds = %2063, %2061
  %2065 = load i1, ptr %312, align 1
  br i1 %2065, label %2066, label %2067

2066:                                             ; preds = %2064
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #9
  br label %2067

2067:                                             ; preds = %2066, %2064
  %2068 = load i1, ptr %310, align 1
  br i1 %2068, label %2069, label %2070

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

2070:                                             ; preds = %2069, %2067
  %2071 = load i1, ptr %308, align 1
  br i1 %2071, label %2072, label %2073

2072:                                             ; preds = %2070
  call void @llvm.lifetime.end.p0(i64 32, ptr %307) #9
  br label %2073

2073:                                             ; preds = %2072, %2070
  %2074 = load i1, ptr %306, align 1
  br i1 %2074, label %2075, label %2076

2075:                                             ; preds = %2073
  call void @llvm.lifetime.end.p0(i64 32, ptr %305) #9
  br label %2076

2076:                                             ; preds = %2075, %2073
  %2077 = load i1, ptr %304, align 1
  br i1 %2077, label %2078, label %2079

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

2079:                                             ; preds = %2078, %2076
  %2080 = load i1, ptr %302, align 1
  br i1 %2080, label %2081, label %2082

2081:                                             ; preds = %2079
  call void @llvm.lifetime.end.p0(i64 32, ptr %301) #9
  br label %2082

2082:                                             ; preds = %2081, %2079
  %2083 = load i1, ptr %300, align 1
  br i1 %2083, label %2084, label %2085

2084:                                             ; preds = %2082
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #9
  br label %2085

2085:                                             ; preds = %2084, %2082
  %2086 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 1
  store i32 20, ptr %2086, align 8, !tbaa !28
  %2087 = load double, ptr %12, align 8, !tbaa !9
  %2088 = load double, ptr %244, align 8, !tbaa !9
  %2089 = fdiv double %2087, %2088
  store double %2089, ptr %7, align 8
  store i32 1, ptr %237, align 4
  br label %2434

2090:                                             ; preds = %1840
  %2091 = landingpad { ptr, i32 }
          cleanup
  %2092 = extractvalue { ptr, i32 } %2091, 0
  store ptr %2092, ptr %30, align 8
  %2093 = extractvalue { ptr, i32 } %2091, 1
  store i32 %2093, ptr %31, align 4
  br label %2236

2094:                                             ; preds = %1841
  %2095 = landingpad { ptr, i32 }
          cleanup
  %2096 = extractvalue { ptr, i32 } %2095, 0
  store ptr %2096, ptr %30, align 8
  %2097 = extractvalue { ptr, i32 } %2095, 1
  store i32 %2097, ptr %31, align 4
  br label %2232

2098:                                             ; preds = %1842
  %2099 = landingpad { ptr, i32 }
          cleanup
  %2100 = extractvalue { ptr, i32 } %2099, 0
  store ptr %2100, ptr %30, align 8
  %2101 = extractvalue { ptr, i32 } %2099, 1
  store i32 %2101, ptr %31, align 4
  br label %2219

2102:                                             ; preds = %1843
  %2103 = landingpad { ptr, i32 }
          cleanup
  %2104 = extractvalue { ptr, i32 } %2103, 0
  store ptr %2104, ptr %30, align 8
  %2105 = extractvalue { ptr, i32 } %2103, 1
  store i32 %2105, ptr %31, align 4
  br label %2215

2106:                                             ; preds = %1844
  %2107 = landingpad { ptr, i32 }
          cleanup
  %2108 = extractvalue { ptr, i32 } %2107, 0
  store ptr %2108, ptr %30, align 8
  %2109 = extractvalue { ptr, i32 } %2107, 1
  store i32 %2109, ptr %31, align 4
  br label %2211

2110:                                             ; preds = %1845
  %2111 = landingpad { ptr, i32 }
          cleanup
  %2112 = extractvalue { ptr, i32 } %2111, 0
  store ptr %2112, ptr %30, align 8
  %2113 = extractvalue { ptr, i32 } %2111, 1
  store i32 %2113, ptr %31, align 4
  br label %2198

2114:                                             ; preds = %1846
  %2115 = landingpad { ptr, i32 }
          cleanup
  %2116 = extractvalue { ptr, i32 } %2115, 0
  store ptr %2116, ptr %30, align 8
  %2117 = extractvalue { ptr, i32 } %2115, 1
  store i32 %2117, ptr %31, align 4
  br label %2194

2118:                                             ; preds = %1847
  %2119 = landingpad { ptr, i32 }
          cleanup
  %2120 = extractvalue { ptr, i32 } %2119, 0
  store ptr %2120, ptr %30, align 8
  %2121 = extractvalue { ptr, i32 } %2119, 1
  store i32 %2121, ptr %31, align 4
  br label %2190

2122:                                             ; preds = %1848
  %2123 = landingpad { ptr, i32 }
          cleanup
  %2124 = extractvalue { ptr, i32 } %2123, 0
  store ptr %2124, ptr %30, align 8
  %2125 = extractvalue { ptr, i32 } %2123, 1
  store i32 %2125, ptr %31, align 4
  br label %2183

2126:                                             ; preds = %1849
  %2127 = landingpad { ptr, i32 }
          cleanup
  %2128 = extractvalue { ptr, i32 } %2127, 0
  store ptr %2128, ptr %30, align 8
  %2129 = extractvalue { ptr, i32 } %2127, 1
  store i32 %2129, ptr %31, align 4
  br label %2179

2130:                                             ; preds = %1850
  %2131 = landingpad { ptr, i32 }
          cleanup
  %2132 = extractvalue { ptr, i32 } %2131, 0
  store ptr %2132, ptr %30, align 8
  %2133 = extractvalue { ptr, i32 } %2131, 1
  store i32 %2133, ptr %31, align 4
  br label %2166

2134:                                             ; preds = %1851
  %2135 = landingpad { ptr, i32 }
          cleanup
  %2136 = extractvalue { ptr, i32 } %2135, 0
  store ptr %2136, ptr %30, align 8
  %2137 = extractvalue { ptr, i32 } %2135, 1
  store i32 %2137, ptr %31, align 4
  br label %2153

2138:                                             ; preds = %1852
  %2139 = landingpad { ptr, i32 }
          cleanup
  %2140 = extractvalue { ptr, i32 } %2139, 0
  store ptr %2140, ptr %30, align 8
  %2141 = extractvalue { ptr, i32 } %2139, 1
  store i32 %2141, ptr %31, align 4
  br label %2149

2142:                                             ; preds = %1853
  %2143 = landingpad { ptr, i32 }
          cleanup
  %2144 = extractvalue { ptr, i32 } %2143, 0
  store ptr %2144, ptr %30, align 8
  %2145 = extractvalue { ptr, i32 } %2143, 1
  store i32 %2145, ptr %31, align 4
  %2146 = load i1, ptr %297, align 1
  br i1 %2146, label %2147, label %2148

2147:                                             ; preds = %2142
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #9
  br label %2148

2148:                                             ; preds = %2147, %2142
  br label %2149

2149:                                             ; preds = %2148, %2138
  %2150 = load i1, ptr %296, align 1
  br i1 %2150, label %2151, label %2152

2151:                                             ; preds = %2149
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #9
  br label %2152

2152:                                             ; preds = %2151, %2149
  br label %2153

2153:                                             ; preds = %2152, %2134
  %2154 = load i1, ptr %295, align 1
  br i1 %2154, label %2155, label %2156

2155:                                             ; preds = %2153
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %293) #9
  br label %2156

2156:                                             ; preds = %2155, %2153
  %2157 = load i1, ptr %294, align 1
  br i1 %2157, label %2158, label %2159

2158:                                             ; preds = %2156
  call void @llvm.lifetime.end.p0(i64 1, ptr %293) #9
  br label %2159

2159:                                             ; preds = %2158, %2156
  %2160 = load i1, ptr %292, align 1
  br i1 %2160, label %2161, label %2162

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

2162:                                             ; preds = %2161, %2159
  %2163 = load i1, ptr %290, align 1
  br i1 %2163, label %2164, label %2165

2164:                                             ; preds = %2162
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %285) #9
  br label %2165

2165:                                             ; preds = %2164, %2162
  br label %2166

2166:                                             ; preds = %2165, %2130
  %2167 = load i1, ptr %289, align 1
  br i1 %2167, label %2168, label %2169

2168:                                             ; preds = %2166
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #9
  br label %2169

2169:                                             ; preds = %2168, %2166
  %2170 = load i1, ptr %288, align 1
  br i1 %2170, label %2171, label %2172

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

2172:                                             ; preds = %2171, %2169
  %2173 = load i1, ptr %286, align 1
  br i1 %2173, label %2174, label %2175

2174:                                             ; preds = %2172
  call void @llvm.lifetime.end.p0(i64 32, ptr %285) #9
  br label %2175

2175:                                             ; preds = %2174, %2172
  %2176 = load i1, ptr %283, align 1
  br i1 %2176, label %2177, label %2178

2177:                                             ; preds = %2175
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %245) #9
  br label %2178

2178:                                             ; preds = %2177, %2175
  br label %2179

2179:                                             ; preds = %2178, %2126
  %2180 = load i1, ptr %282, align 1
  br i1 %2180, label %2181, label %2182

2181:                                             ; preds = %2179
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %279) #9
  br label %2182

2182:                                             ; preds = %2181, %2179
  br label %2183

2183:                                             ; preds = %2182, %2122
  call void @llvm.lifetime.end.p0(i64 4, ptr %281) #9
  %2184 = load i1, ptr %280, align 1
  br i1 %2184, label %2185, label %2186

2185:                                             ; preds = %2183
  call void @llvm.lifetime.end.p0(i64 32, ptr %279) #9
  br label %2186

2186:                                             ; preds = %2185, %2183
  %2187 = load i1, ptr %278, align 1
  br i1 %2187, label %2188, label %2189

2188:                                             ; preds = %2186
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #9
  br label %2189

2189:                                             ; preds = %2188, %2186
  br label %2190

2190:                                             ; preds = %2189, %2118
  %2191 = load i1, ptr %277, align 1
  br i1 %2191, label %2192, label %2193

2192:                                             ; preds = %2190
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %248) #9
  br label %2193

2193:                                             ; preds = %2192, %2190
  br label %2194

2194:                                             ; preds = %2193, %2114
  %2195 = load i1, ptr %276, align 1
  br i1 %2195, label %2196, label %2197

2196:                                             ; preds = %2194
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %271) #9
  br label %2197

2197:                                             ; preds = %2196, %2194
  br label %2198

2198:                                             ; preds = %2197, %2110
  %2199 = load i1, ptr %275, align 1
  br i1 %2199, label %2200, label %2201

2200:                                             ; preds = %2198
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %273) #9
  br label %2201

2201:                                             ; preds = %2200, %2198
  %2202 = load i1, ptr %274, align 1
  br i1 %2202, label %2203, label %2204

2203:                                             ; preds = %2201
  call void @llvm.lifetime.end.p0(i64 1, ptr %273) #9
  br label %2204

2204:                                             ; preds = %2203, %2201
  %2205 = load i1, ptr %272, align 1
  br i1 %2205, label %2206, label %2207

2206:                                             ; preds = %2204
  call void @llvm.lifetime.end.p0(i64 32, ptr %271) #9
  br label %2207

2207:                                             ; preds = %2206, %2204
  %2208 = load i1, ptr %270, align 1
  br i1 %2208, label %2209, label %2210

2209:                                             ; preds = %2207
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %250) #9
  br label %2210

2210:                                             ; preds = %2209, %2207
  br label %2211

2211:                                             ; preds = %2210, %2106
  %2212 = load i1, ptr %269, align 1
  br i1 %2212, label %2213, label %2214

2213:                                             ; preds = %2211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %252) #9
  br label %2214

2214:                                             ; preds = %2213, %2211
  br label %2215

2215:                                             ; preds = %2214, %2102
  %2216 = load i1, ptr %268, align 1
  br i1 %2216, label %2217, label %2218

2217:                                             ; preds = %2215
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %263) #9
  br label %2218

2218:                                             ; preds = %2217, %2215
  br label %2219

2219:                                             ; preds = %2218, %2098
  %2220 = load i1, ptr %267, align 1
  br i1 %2220, label %2221, label %2222

2221:                                             ; preds = %2219
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %265) #9
  br label %2222

2222:                                             ; preds = %2221, %2219
  %2223 = load i1, ptr %266, align 1
  br i1 %2223, label %2224, label %2225

2224:                                             ; preds = %2222
  call void @llvm.lifetime.end.p0(i64 1, ptr %265) #9
  br label %2225

2225:                                             ; preds = %2224, %2222
  %2226 = load i1, ptr %264, align 1
  br i1 %2226, label %2227, label %2228

2227:                                             ; preds = %2225
  call void @llvm.lifetime.end.p0(i64 32, ptr %263) #9
  br label %2228

2228:                                             ; preds = %2227, %2225
  %2229 = load i1, ptr %262, align 1
  br i1 %2229, label %2230, label %2231

2230:                                             ; preds = %2228
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %254) #9
  br label %2231

2231:                                             ; preds = %2230, %2228
  br label %2232

2232:                                             ; preds = %2231, %2094
  %2233 = load i1, ptr %261, align 1
  br i1 %2233, label %2234, label %2235

2234:                                             ; preds = %2232
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #9
  br label %2235

2235:                                             ; preds = %2234, %2232
  br label %2236

2236:                                             ; preds = %2235, %2090
  %2237 = load i1, ptr %260, align 1
  br i1 %2237, label %2238, label %2239

2238:                                             ; preds = %2236
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %258) #9
  br label %2239

2239:                                             ; preds = %2238, %2236
  %2240 = load i1, ptr %259, align 1
  br i1 %2240, label %2241, label %2242

2241:                                             ; preds = %2239
  call void @llvm.lifetime.end.p0(i64 1, ptr %258) #9
  br label %2242

2242:                                             ; preds = %2241, %2239
  %2243 = load i1, ptr %257, align 1
  br i1 %2243, label %2244, label %2245

2244:                                             ; preds = %2242
  call void @llvm.lifetime.end.p0(i64 32, ptr %256) #9
  br label %2245

2245:                                             ; preds = %2244, %2242
  %2246 = load i1, ptr %255, align 1
  br i1 %2246, label %2247, label %2248

2247:                                             ; preds = %2245
  call void @llvm.lifetime.end.p0(i64 32, ptr %254) #9
  br label %2248

2248:                                             ; preds = %2247, %2245
  %2249 = load i1, ptr %253, align 1
  br i1 %2249, label %2250, label %2251

2250:                                             ; preds = %2248
  call void @llvm.lifetime.end.p0(i64 32, ptr %252) #9
  br label %2251

2251:                                             ; preds = %2250, %2248
  %2252 = load i1, ptr %251, align 1
  br i1 %2252, label %2253, label %2254

2253:                                             ; preds = %2251
  call void @llvm.lifetime.end.p0(i64 32, ptr %250) #9
  br label %2254

2254:                                             ; preds = %2253, %2251
  %2255 = load i1, ptr %249, align 1
  br i1 %2255, label %2256, label %2257

2256:                                             ; preds = %2254
  call void @llvm.lifetime.end.p0(i64 32, ptr %248) #9
  br label %2257

2257:                                             ; preds = %2256, %2254
  %2258 = load i1, ptr %247, align 1
  br i1 %2258, label %2259, label %2260

2259:                                             ; preds = %2257
  call void @llvm.lifetime.end.p0(i64 32, ptr %246) #9
  br label %2260

2260:                                             ; preds = %2259, %2257
  br label %2440

2261:                                             ; preds = %1965
  %2262 = landingpad { ptr, i32 }
          cleanup
  %2263 = extractvalue { ptr, i32 } %2262, 0
  store ptr %2263, ptr %30, align 8
  %2264 = extractvalue { ptr, i32 } %2262, 1
  store i32 %2264, ptr %31, align 4
  br label %2407

2265:                                             ; preds = %1966
  %2266 = landingpad { ptr, i32 }
          cleanup
  %2267 = extractvalue { ptr, i32 } %2266, 0
  store ptr %2267, ptr %30, align 8
  %2268 = extractvalue { ptr, i32 } %2266, 1
  store i32 %2268, ptr %31, align 4
  br label %2403

2269:                                             ; preds = %1967
  %2270 = landingpad { ptr, i32 }
          cleanup
  %2271 = extractvalue { ptr, i32 } %2270, 0
  store ptr %2271, ptr %30, align 8
  %2272 = extractvalue { ptr, i32 } %2270, 1
  store i32 %2272, ptr %31, align 4
  br label %2390

2273:                                             ; preds = %1968
  %2274 = landingpad { ptr, i32 }
          cleanup
  %2275 = extractvalue { ptr, i32 } %2274, 0
  store ptr %2275, ptr %30, align 8
  %2276 = extractvalue { ptr, i32 } %2274, 1
  store i32 %2276, ptr %31, align 4
  br label %2386

2277:                                             ; preds = %1969
  %2278 = landingpad { ptr, i32 }
          cleanup
  %2279 = extractvalue { ptr, i32 } %2278, 0
  store ptr %2279, ptr %30, align 8
  %2280 = extractvalue { ptr, i32 } %2278, 1
  store i32 %2280, ptr %31, align 4
  br label %2382

2281:                                             ; preds = %1970
  %2282 = landingpad { ptr, i32 }
          cleanup
  %2283 = extractvalue { ptr, i32 } %2282, 0
  store ptr %2283, ptr %30, align 8
  %2284 = extractvalue { ptr, i32 } %2282, 1
  store i32 %2284, ptr %31, align 4
  br label %2369

2285:                                             ; preds = %1971
  %2286 = landingpad { ptr, i32 }
          cleanup
  %2287 = extractvalue { ptr, i32 } %2286, 0
  store ptr %2287, ptr %30, align 8
  %2288 = extractvalue { ptr, i32 } %2286, 1
  store i32 %2288, ptr %31, align 4
  br label %2365

2289:                                             ; preds = %1972
  %2290 = landingpad { ptr, i32 }
          cleanup
  %2291 = extractvalue { ptr, i32 } %2290, 0
  store ptr %2291, ptr %30, align 8
  %2292 = extractvalue { ptr, i32 } %2290, 1
  store i32 %2292, ptr %31, align 4
  br label %2361

2293:                                             ; preds = %1973
  %2294 = landingpad { ptr, i32 }
          cleanup
  %2295 = extractvalue { ptr, i32 } %2294, 0
  store ptr %2295, ptr %30, align 8
  %2296 = extractvalue { ptr, i32 } %2294, 1
  store i32 %2296, ptr %31, align 4
  br label %2354

2297:                                             ; preds = %1974
  %2298 = landingpad { ptr, i32 }
          cleanup
  %2299 = extractvalue { ptr, i32 } %2298, 0
  store ptr %2299, ptr %30, align 8
  %2300 = extractvalue { ptr, i32 } %2298, 1
  store i32 %2300, ptr %31, align 4
  br label %2350

2301:                                             ; preds = %1975
  %2302 = landingpad { ptr, i32 }
          cleanup
  %2303 = extractvalue { ptr, i32 } %2302, 0
  store ptr %2303, ptr %30, align 8
  %2304 = extractvalue { ptr, i32 } %2302, 1
  store i32 %2304, ptr %31, align 4
  br label %2337

2305:                                             ; preds = %1976
  %2306 = landingpad { ptr, i32 }
          cleanup
  %2307 = extractvalue { ptr, i32 } %2306, 0
  store ptr %2307, ptr %30, align 8
  %2308 = extractvalue { ptr, i32 } %2306, 1
  store i32 %2308, ptr %31, align 4
  br label %2324

2309:                                             ; preds = %1977
  %2310 = landingpad { ptr, i32 }
          cleanup
  %2311 = extractvalue { ptr, i32 } %2310, 0
  store ptr %2311, ptr %30, align 8
  %2312 = extractvalue { ptr, i32 } %2310, 1
  store i32 %2312, ptr %31, align 4
  br label %2320

2313:                                             ; preds = %1978
  %2314 = landingpad { ptr, i32 }
          cleanup
  %2315 = extractvalue { ptr, i32 } %2314, 0
  store ptr %2315, ptr %30, align 8
  %2316 = extractvalue { ptr, i32 } %2314, 1
  store i32 %2316, ptr %31, align 4
  %2317 = load i1, ptr %350, align 1
  br i1 %2317, label %2318, label %2319

2318:                                             ; preds = %2313
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #9
  br label %2319

2319:                                             ; preds = %2318, %2313
  br label %2320

2320:                                             ; preds = %2319, %2309
  %2321 = load i1, ptr %349, align 1
  br i1 %2321, label %2322, label %2323

2322:                                             ; preds = %2320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #9
  br label %2323

2323:                                             ; preds = %2322, %2320
  br label %2324

2324:                                             ; preds = %2323, %2305
  %2325 = load i1, ptr %348, align 1
  br i1 %2325, label %2326, label %2327

2326:                                             ; preds = %2324
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %346) #9
  br label %2327

2327:                                             ; preds = %2326, %2324
  %2328 = load i1, ptr %347, align 1
  br i1 %2328, label %2329, label %2330

2329:                                             ; preds = %2327
  call void @llvm.lifetime.end.p0(i64 1, ptr %346) #9
  br label %2330

2330:                                             ; preds = %2329, %2327
  %2331 = load i1, ptr %345, align 1
  br i1 %2331, label %2332, label %2333

2332:                                             ; preds = %2330
  call void @llvm.lifetime.end.p0(i64 32, ptr %344) #9
  br label %2333

2333:                                             ; preds = %2332, %2330
  %2334 = load i1, ptr %343, align 1
  br i1 %2334, label %2335, label %2336

2335:                                             ; preds = %2333
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %338) #9
  br label %2336

2336:                                             ; preds = %2335, %2333
  br label %2337

2337:                                             ; preds = %2336, %2301
  %2338 = load i1, ptr %342, align 1
  br i1 %2338, label %2339, label %2340

2339:                                             ; preds = %2337
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %340) #9
  br label %2340

2340:                                             ; preds = %2339, %2337
  %2341 = load i1, ptr %341, align 1
  br i1 %2341, label %2342, label %2343

2342:                                             ; preds = %2340
  call void @llvm.lifetime.end.p0(i64 1, ptr %340) #9
  br label %2343

2343:                                             ; preds = %2342, %2340
  %2344 = load i1, ptr %339, align 1
  br i1 %2344, label %2345, label %2346

2345:                                             ; preds = %2343
  call void @llvm.lifetime.end.p0(i64 32, ptr %338) #9
  br label %2346

2346:                                             ; preds = %2345, %2343
  %2347 = load i1, ptr %336, align 1
  br i1 %2347, label %2348, label %2349

2348:                                             ; preds = %2346
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #9
  br label %2349

2349:                                             ; preds = %2348, %2346
  br label %2350

2350:                                             ; preds = %2349, %2297
  %2351 = load i1, ptr %335, align 1
  br i1 %2351, label %2352, label %2353

2352:                                             ; preds = %2350
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %332) #9
  br label %2353

2353:                                             ; preds = %2352, %2350
  br label %2354

2354:                                             ; preds = %2353, %2293
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #9
  %2355 = load i1, ptr %333, align 1
  br i1 %2355, label %2356, label %2357

2356:                                             ; preds = %2354
  call void @llvm.lifetime.end.p0(i64 32, ptr %332) #9
  br label %2357

2357:                                             ; preds = %2356, %2354
  %2358 = load i1, ptr %331, align 1
  br i1 %2358, label %2359, label %2360

2359:                                             ; preds = %2357
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #9
  br label %2360

2360:                                             ; preds = %2359, %2357
  br label %2361

2361:                                             ; preds = %2360, %2289
  %2362 = load i1, ptr %330, align 1
  br i1 %2362, label %2363, label %2364

2363:                                             ; preds = %2361
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #9
  br label %2364

2364:                                             ; preds = %2363, %2361
  br label %2365

2365:                                             ; preds = %2364, %2285
  %2366 = load i1, ptr %329, align 1
  br i1 %2366, label %2367, label %2368

2367:                                             ; preds = %2365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #9
  br label %2368

2368:                                             ; preds = %2367, %2365
  br label %2369

2369:                                             ; preds = %2368, %2281
  %2370 = load i1, ptr %328, align 1
  br i1 %2370, label %2371, label %2372

2371:                                             ; preds = %2369
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %326) #9
  br label %2372

2372:                                             ; preds = %2371, %2369
  %2373 = load i1, ptr %327, align 1
  br i1 %2373, label %2374, label %2375

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

2375:                                             ; preds = %2374, %2372
  %2376 = load i1, ptr %325, align 1
  br i1 %2376, label %2377, label %2378

2377:                                             ; preds = %2375
  call void @llvm.lifetime.end.p0(i64 32, ptr %324) #9
  br label %2378

2378:                                             ; preds = %2377, %2375
  %2379 = load i1, ptr %323, align 1
  br i1 %2379, label %2380, label %2381

2380:                                             ; preds = %2378
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #9
  br label %2381

2381:                                             ; preds = %2380, %2378
  br label %2382

2382:                                             ; preds = %2381, %2277
  %2383 = load i1, ptr %322, align 1
  br i1 %2383, label %2384, label %2385

2384:                                             ; preds = %2382
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #9
  br label %2385

2385:                                             ; preds = %2384, %2382
  br label %2386

2386:                                             ; preds = %2385, %2273
  %2387 = load i1, ptr %321, align 1
  br i1 %2387, label %2388, label %2389

2388:                                             ; preds = %2386
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %316) #9
  br label %2389

2389:                                             ; preds = %2388, %2386
  br label %2390

2390:                                             ; preds = %2389, %2269
  %2391 = load i1, ptr %320, align 1
  br i1 %2391, label %2392, label %2393

2392:                                             ; preds = %2390
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %318) #9
  br label %2393

2393:                                             ; preds = %2392, %2390
  %2394 = load i1, ptr %319, align 1
  br i1 %2394, label %2395, label %2396

2395:                                             ; preds = %2393
  call void @llvm.lifetime.end.p0(i64 1, ptr %318) #9
  br label %2396

2396:                                             ; preds = %2395, %2393
  %2397 = load i1, ptr %317, align 1
  br i1 %2397, label %2398, label %2399

2398:                                             ; preds = %2396
  call void @llvm.lifetime.end.p0(i64 32, ptr %316) #9
  br label %2399

2399:                                             ; preds = %2398, %2396
  %2400 = load i1, ptr %315, align 1
  br i1 %2400, label %2401, label %2402

2401:                                             ; preds = %2399
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #9
  br label %2402

2402:                                             ; preds = %2401, %2399
  br label %2403

2403:                                             ; preds = %2402, %2265
  %2404 = load i1, ptr %314, align 1
  br i1 %2404, label %2405, label %2406

2405:                                             ; preds = %2403
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #9
  br label %2406

2406:                                             ; preds = %2405, %2403
  br label %2407

2407:                                             ; preds = %2406, %2261
  %2408 = load i1, ptr %313, align 1
  br i1 %2408, label %2409, label %2410

2409:                                             ; preds = %2407
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %311) #9
  br label %2410

2410:                                             ; preds = %2409, %2407
  %2411 = load i1, ptr %312, align 1
  br i1 %2411, label %2412, label %2413

2412:                                             ; preds = %2410
  call void @llvm.lifetime.end.p0(i64 1, ptr %311) #9
  br label %2413

2413:                                             ; preds = %2412, %2410
  %2414 = load i1, ptr %310, align 1
  br i1 %2414, label %2415, label %2416

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

2416:                                             ; preds = %2415, %2413
  %2417 = load i1, ptr %308, align 1
  br i1 %2417, label %2418, label %2419

2418:                                             ; preds = %2416
  call void @llvm.lifetime.end.p0(i64 32, ptr %307) #9
  br label %2419

2419:                                             ; preds = %2418, %2416
  %2420 = load i1, ptr %306, align 1
  br i1 %2420, label %2421, label %2422

2421:                                             ; preds = %2419
  call void @llvm.lifetime.end.p0(i64 32, ptr %305) #9
  br label %2422

2422:                                             ; preds = %2421, %2419
  %2423 = load i1, ptr %304, align 1
  br i1 %2423, label %2424, label %2425

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

2425:                                             ; preds = %2424, %2422
  %2426 = load i1, ptr %302, align 1
  br i1 %2426, label %2427, label %2428

2427:                                             ; preds = %2425
  call void @llvm.lifetime.end.p0(i64 32, ptr %301) #9
  br label %2428

2428:                                             ; preds = %2427, %2425
  %2429 = load i1, ptr %300, align 1
  br i1 %2429, label %2430, label %2431

2430:                                             ; preds = %2428
  call void @llvm.lifetime.end.p0(i64 32, ptr %299) #9
  br label %2431

2431:                                             ; preds = %2430, %2428
  br label %2440

2432:                                             ; preds = %1739
  %2433 = load double, ptr %244, align 8, !tbaa !9
  store double %2433, ptr %234, align 8, !tbaa !9
  store i32 0, ptr %237, align 4
  br label %2434

2434:                                             ; preds = %2432, %2085
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #9
  %2435 = load i32, ptr %237, align 4
  switch i32 %2435, label %2441 [
    i32 0, label %2436
  ]

2436:                                             ; preds = %2434
  br label %2437

2437:                                             ; preds = %2436
  %2438 = load i32, ptr %236, align 4, !tbaa !17
  %2439 = add nsw i32 %2438, 1
  store i32 %2439, ptr %236, align 4, !tbaa !17
  br label %1563, !llvm.loop !29

2440:                                             ; preds = %2431, %2260
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %243) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %242) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %240) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %239) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %238) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #9
  br label %3305

2441:                                             ; preds = %2434, %1567
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #9
  %2442 = load i32, ptr %237, align 4
  switch i32 %2442, label %2499 [
    i32 2, label %2443
  ]

2443:                                             ; preds = %2441
  %2444 = 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_)
  %2445 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2444, ptr noundef @.str.22)
  %2446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2445, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2447 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2446, ptr noundef @.str.32)
  %2448 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2447, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2449 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2448, ptr noundef @.str.39)
  %2450 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2449, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2451 = load double, ptr %9, align 8, !tbaa !9
  %2452 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2450, double noundef %2451)
  %2453 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2452, ptr noundef @.str.9)
  %2454 = getelementptr inbounds %class.Apex, ptr %464, i32 0, i32 6
  %2455 = load double, ptr %2454, align 8, !tbaa !22
  %2456 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2453, double noundef %2455)
  %2457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2456, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2458 = load double, ptr %177, align 8, !tbaa !9
  %2459 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2457, double noundef %2458)
  %2460 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2459, ptr noundef @.str.9)
  %2461 = load double, ptr %235, align 8, !tbaa !9
  %2462 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2460, double noundef %2461)
  %2463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2462, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2464 = load double, ptr %10, align 8, !tbaa !9
  %2465 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2463, double noundef %2464)
  %2466 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2465, ptr noundef @.str.9)
  %2467 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %2468 = load double, ptr %2467, align 8, !tbaa !26
  %2469 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2466, double noundef %2468)
  %2470 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2469, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2471 = load double, ptr %178, align 8, !tbaa !9
  %2472 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2470, double noundef %2471)
  %2473 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2472, ptr noundef @.str.9)
  %2474 = load double, ptr %11, align 8, !tbaa !9
  %2475 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2473, double noundef %2474)
  %2476 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2475, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2477 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %2478 = load ptr, ptr %2477, align 8, !tbaa !23
  %2479 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %2478)
  %2480 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2476, double noundef %2479)
  %2481 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2480, ptr noundef @.str.9)
  %2482 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %2483 = load ptr, ptr %2482, align 8, !tbaa !23
  %2484 = call noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %2483)
  %2485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2481, double noundef %2484)
  %2486 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2485, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2487 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %2488 = load ptr, ptr %2487, align 8, !tbaa !23
  %2489 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Apex10trappingCLEv(ptr noundef nonnull align 8 dereferenceable(104) %2488)
  %2490 = getelementptr inbounds %"struct.std::pair", ptr %2489, i32 0, i32 0
  %2491 = load i32, ptr %2490, align 8, !tbaa !31
  %2492 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2486, i32 noundef %2491)
  %2493 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2492, ptr noundef @.str.9)
  %2494 = load double, ptr %177, align 8, !tbaa !9
  %2495 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2493, double noundef %2494)
  %2496 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2495, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2497 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2496, ptr noundef @.str.22)
  %2498 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2497, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #10
  unreachable

2499:                                             ; preds = %2441
  call void @llvm.lifetime.end.p0(i64 8, ptr %235) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #9
  br label %3303

2500:                                             ; preds = %1550, %1544
  call void @llvm.lifetime.start.p0(i64 8, ptr %351) #9
  %2501 = load double, ptr %177, align 8, !tbaa !9
  %2502 = load double, ptr %11, align 8, !tbaa !9
  %2503 = call double @cos(double noundef %2502) #9
  %2504 = load double, ptr %11, align 8, !tbaa !9
  %2505 = call double @sin(double noundef %2504) #9
  %2506 = load double, ptr %178, align 8, !tbaa !9
  %2507 = load double, ptr %11, align 8, !tbaa !9
  %2508 = fadd double %2506, %2507
  %2509 = load double, ptr @_ZN4Apex2PIE, align 8, !tbaa !9
  %2510 = fdiv double %2509, 2.000000e+00
  %2511 = fsub double %2508, %2510
  %2512 = fmul double 5.000000e-01, %2511
  %2513 = call double @sin(double noundef %2512) #9
  %2514 = fmul double %2505, %2513
  %2515 = load double, ptr %178, align 8, !tbaa !9
  %2516 = load double, ptr %11, align 8, !tbaa !9
  %2517 = fadd double %2515, %2516
  %2518 = load double, ptr @_ZN4Apex2PIE, align 8, !tbaa !9
  %2519 = fdiv double %2518, 2.000000e+00
  %2520 = fsub double %2517, %2519
  %2521 = fmul double 5.000000e-01, %2520
  %2522 = call double @cos(double noundef %2521) #9
  %2523 = fdiv double %2514, %2522
  %2524 = fadd double %2503, %2523
  %2525 = fmul double %2501, %2524
  store double %2525, ptr %179, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %352) #9
  %2526 = load double, ptr %179, align 8, !tbaa !9
  %2527 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %2528 = load double, ptr %2527, align 8, !tbaa !26
  %2529 = call double @cos(double noundef %2528) #9
  %2530 = load double, ptr %11, align 8, !tbaa !9
  %2531 = call double @sin(double noundef %2530) #9
  %2532 = fdiv double %2529, %2531
  %2533 = fadd double %2532, 1.000000e+00
  %2534 = fdiv double %2526, %2533
  store double %2534, ptr %352, align 8, !tbaa !9
  %2535 = load double, ptr %12, align 8, !tbaa !9
  %2536 = load double, ptr %352, align 8, !tbaa !9
  %2537 = fdiv double %2535, %2536
  store double %2537, ptr %351, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %353) #9
  %2538 = load double, ptr %352, align 8, !tbaa !9
  %2539 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %2540 = load double, ptr %2539, align 8, !tbaa !26
  %2541 = load double, ptr %11, align 8, !tbaa !9
  %2542 = fsub double %2540, %2541
  %2543 = call double @cos(double noundef %2542) #9
  %2544 = fmul double %2538, %2543
  %2545 = load double, ptr %11, align 8, !tbaa !9
  %2546 = call double @sin(double noundef %2545) #9
  %2547 = fdiv double %2544, %2546
  store double %2547, ptr %353, align 8, !tbaa !9
  %2548 = load double, ptr %11, align 8, !tbaa !9
  %2549 = load double, ptr @_ZN4Apex2PIE, align 8, !tbaa !9
  %2550 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %2551 = load double, ptr %2550, align 8, !tbaa !26
  %2552 = fsub double %2549, %2551
  %2553 = call noundef double @_Z17dimLessCornerAreadd(double noundef %2548, double noundef %2552)
  %2554 = load double, ptr %353, align 8, !tbaa !9
  %2555 = fmul double %2553, %2554
  %2556 = load double, ptr %353, align 8, !tbaa !9
  %2557 = fmul double %2555, %2556
  %2558 = load double, ptr %11, align 8, !tbaa !9
  %2559 = load double, ptr %178, align 8, !tbaa !9
  %2560 = call noundef double @_Z17dimLessCornerAreadd(double noundef %2558, double noundef %2559)
  %2561 = load double, ptr %177, align 8, !tbaa !9
  %2562 = fmul double %2560, %2561
  %2563 = load double, ptr %177, align 8, !tbaa !9
  %2564 = call double @llvm.fmuladd.f64(double %2562, double %2563, double -1.000000e-18)
  %2565 = fcmp ogt double %2557, %2564
  store i1 false, ptr %356, align 1
  store i1 false, ptr %358, align 1
  store i1 false, ptr %360, align 1
  store i1 false, ptr %362, align 1
  store i1 false, ptr %364, align 1
  store i1 false, ptr %366, align 1
  store i1 false, ptr %368, align 1
  store i1 false, ptr %369, align 1
  store i1 false, ptr %370, align 1
  store i1 false, ptr %371, align 1
  store i1 false, ptr %373, align 1
  store i1 false, ptr %375, align 1
  store i1 false, ptr %376, align 1
  store i1 false, ptr %377, align 1
  store i1 false, ptr %378, align 1
  store i1 false, ptr %379, align 1
  store i1 false, ptr %381, align 1
  store i1 false, ptr %383, align 1
  store i1 false, ptr %384, align 1
  store i1 false, ptr %385, align 1
  store i1 false, ptr %386, align 1
  store i1 false, ptr %387, align 1
  store i1 false, ptr %389, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %390) #9
  store i1 false, ptr %391, align 1
  store i1 false, ptr %392, align 1
  store i1 false, ptr %395, align 1
  store i1 false, ptr %397, align 1
  store i1 false, ptr %398, align 1
  store i1 false, ptr %399, align 1
  store i1 false, ptr %401, align 1
  store i1 false, ptr %403, align 1
  store i1 false, ptr %404, align 1
  store i1 false, ptr %405, align 1
  store i1 false, ptr %406, align 1
  br i1 %2565, label %2582, label %2566

2566:                                             ; preds = %2500
  call void @llvm.lifetime.start.p0(i64 32, ptr %355) #9
  store i1 true, ptr %356, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %357) #9
  store i1 true, ptr %358, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %359) #9
  store i1 true, ptr %360, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %361) #9
  store i1 true, ptr %362, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %363) #9
  store i1 true, ptr %364, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %365) #9
  store i1 true, ptr %366, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %367) #9
  store i1 true, ptr %368, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #9
  store i1 true, ptr %369, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %365, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %367)
          to label %2567 unwind label %2723

2567:                                             ; preds = %2566
  store i1 true, ptr %370, 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 %363, ptr noundef nonnull align 8 dereferenceable(32) %365, ptr noundef @.str.1)
          to label %2568 unwind label %2727

2568:                                             ; preds = %2567
  store i1 true, ptr %371, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %372) #9
  store i1 true, ptr %373, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %374) #9
  store i1 true, ptr %375, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %374) #9
  store i1 true, ptr %376, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %372, ptr noundef @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %374)
          to label %2569 unwind label %2731

2569:                                             ; preds = %2568
  store i1 true, ptr %377, 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 %361, ptr noundef nonnull align 8 dereferenceable(32) %363, ptr noundef nonnull align 8 dereferenceable(32) %372)
          to label %2570 unwind label %2735

2570:                                             ; preds = %2569
  store i1 true, ptr %378, 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 %359, ptr noundef nonnull align 8 dereferenceable(32) %361, ptr noundef @.str.2)
          to label %2571 unwind label %2739

2571:                                             ; preds = %2570
  store i1 true, ptr %379, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %380) #9
  store i1 true, ptr %381, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %382) #9
  store i1 true, ptr %383, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %382) #9
  store i1 true, ptr %384, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %380, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %382)
          to label %2572 unwind label %2743

2572:                                             ; preds = %2571
  store i1 true, ptr %385, 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 %357, ptr noundef nonnull align 8 dereferenceable(32) %359, ptr noundef nonnull align 8 dereferenceable(32) %380)
          to label %2573 unwind label %2747

2573:                                             ; preds = %2572
  store i1 true, ptr %386, 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 %355, ptr noundef nonnull align 8 dereferenceable(32) %357, ptr noundef @.str.4)
          to label %2574 unwind label %2751

2574:                                             ; preds = %2573
  store i1 true, ptr %387, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %388) #9
  store i1 true, ptr %389, align 1
  store i32 543, ptr %390, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %388, ptr noundef nonnull align 4 dereferenceable(4) %390)
          to label %2575 unwind label %2755

2575:                                             ; preds = %2574
  store i1 true, ptr %391, 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 %354, ptr noundef nonnull align 8 dereferenceable(32) %355, ptr noundef nonnull align 8 dereferenceable(32) %388)
          to label %2576 unwind label %2759

2576:                                             ; preds = %2575
  store i1 true, ptr %392, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %394) #9
  store i1 true, ptr %395, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %396) #9
  store i1 true, ptr %397, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #9
  store i1 true, ptr %398, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %394, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %396)
          to label %2577 unwind label %2763

2577:                                             ; preds = %2576
  store i1 true, ptr %399, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %400) #9
  store i1 true, ptr %401, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %402) #9
  store i1 true, ptr %403, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #9
  store i1 true, ptr %404, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %400, ptr noundef @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %402)
          to label %2578 unwind label %2767

2578:                                             ; preds = %2577
  store i1 true, ptr %405, 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 %393, ptr noundef nonnull align 8 dereferenceable(32) %394, ptr noundef nonnull align 8 dereferenceable(32) %400)
          to label %2579 unwind label %2771

2579:                                             ; preds = %2578
  store i1 true, ptr %406, align 1
  %2580 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %354, ptr noundef %393, i32 noundef 0)
          to label %2581 unwind label %2775

2581:                                             ; preds = %2579
  br label %2582

2582:                                             ; preds = %2581, %2500
  %2583 = phi i1 [ true, %2500 ], [ %2580, %2581 ]
  %2584 = xor i1 %2583, true
  %2585 = load i1, ptr %406, align 1
  br i1 %2585, label %2586, label %2587

2586:                                             ; preds = %2582
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #9
  br label %2587

2587:                                             ; preds = %2586, %2582
  %2588 = load i1, ptr %405, align 1
  br i1 %2588, label %2589, label %2590

2589:                                             ; preds = %2587
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %400) #9
  br label %2590

2590:                                             ; preds = %2589, %2587
  %2591 = load i1, ptr %404, align 1
  br i1 %2591, label %2592, label %2593

2592:                                             ; preds = %2590
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #9
  br label %2593

2593:                                             ; preds = %2592, %2590
  %2594 = load i1, ptr %403, align 1
  br i1 %2594, label %2595, label %2596

2595:                                             ; preds = %2593
  call void @llvm.lifetime.end.p0(i64 1, ptr %402) #9
  br label %2596

2596:                                             ; preds = %2595, %2593
  %2597 = load i1, ptr %401, align 1
  br i1 %2597, label %2598, label %2599

2598:                                             ; preds = %2596
  call void @llvm.lifetime.end.p0(i64 32, ptr %400) #9
  br label %2599

2599:                                             ; preds = %2598, %2596
  %2600 = load i1, ptr %399, align 1
  br i1 %2600, label %2601, label %2602

2601:                                             ; preds = %2599
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %394) #9
  br label %2602

2602:                                             ; preds = %2601, %2599
  %2603 = load i1, ptr %398, align 1
  br i1 %2603, label %2604, label %2605

2604:                                             ; preds = %2602
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #9
  br label %2605

2605:                                             ; preds = %2604, %2602
  %2606 = load i1, ptr %397, align 1
  br i1 %2606, label %2607, label %2608

2607:                                             ; preds = %2605
  call void @llvm.lifetime.end.p0(i64 1, ptr %396) #9
  br label %2608

2608:                                             ; preds = %2607, %2605
  %2609 = load i1, ptr %395, align 1
  br i1 %2609, label %2610, label %2611

2610:                                             ; preds = %2608
  call void @llvm.lifetime.end.p0(i64 32, ptr %394) #9
  br label %2611

2611:                                             ; preds = %2610, %2608
  %2612 = load i1, ptr %392, align 1
  br i1 %2612, label %2613, label %2614

2613:                                             ; preds = %2611
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #9
  br label %2614

2614:                                             ; preds = %2613, %2611
  %2615 = load i1, ptr %391, align 1
  br i1 %2615, label %2616, label %2617

2616:                                             ; preds = %2614
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #9
  br label %2617

2617:                                             ; preds = %2616, %2614
  call void @llvm.lifetime.end.p0(i64 4, ptr %390) #9
  %2618 = load i1, ptr %389, align 1
  br i1 %2618, label %2619, label %2620

2619:                                             ; preds = %2617
  call void @llvm.lifetime.end.p0(i64 32, ptr %388) #9
  br label %2620

2620:                                             ; preds = %2619, %2617
  %2621 = load i1, ptr %387, align 1
  br i1 %2621, label %2622, label %2623

2622:                                             ; preds = %2620
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %355) #9
  br label %2623

2623:                                             ; preds = %2622, %2620
  %2624 = load i1, ptr %386, align 1
  br i1 %2624, label %2625, label %2626

2625:                                             ; preds = %2623
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #9
  br label %2626

2626:                                             ; preds = %2625, %2623
  %2627 = load i1, ptr %385, align 1
  br i1 %2627, label %2628, label %2629

2628:                                             ; preds = %2626
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #9
  br label %2629

2629:                                             ; preds = %2628, %2626
  %2630 = load i1, ptr %384, align 1
  br i1 %2630, label %2631, label %2632

2631:                                             ; preds = %2629
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %382) #9
  br label %2632

2632:                                             ; preds = %2631, %2629
  %2633 = load i1, ptr %383, align 1
  br i1 %2633, label %2634, label %2635

2634:                                             ; preds = %2632
  call void @llvm.lifetime.end.p0(i64 1, ptr %382) #9
  br label %2635

2635:                                             ; preds = %2634, %2632
  %2636 = load i1, ptr %381, align 1
  br i1 %2636, label %2637, label %2638

2637:                                             ; preds = %2635
  call void @llvm.lifetime.end.p0(i64 32, ptr %380) #9
  br label %2638

2638:                                             ; preds = %2637, %2635
  %2639 = load i1, ptr %379, align 1
  br i1 %2639, label %2640, label %2641

2640:                                             ; preds = %2638
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #9
  br label %2641

2641:                                             ; preds = %2640, %2638
  %2642 = load i1, ptr %378, align 1
  br i1 %2642, label %2643, label %2644

2643:                                             ; preds = %2641
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #9
  br label %2644

2644:                                             ; preds = %2643, %2641
  %2645 = load i1, ptr %377, align 1
  br i1 %2645, label %2646, label %2647

2646:                                             ; preds = %2644
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #9
  br label %2647

2647:                                             ; preds = %2646, %2644
  %2648 = load i1, ptr %376, align 1
  br i1 %2648, label %2649, label %2650

2649:                                             ; preds = %2647
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %374) #9
  br label %2650

2650:                                             ; preds = %2649, %2647
  %2651 = load i1, ptr %375, align 1
  br i1 %2651, label %2652, label %2653

2652:                                             ; preds = %2650
  call void @llvm.lifetime.end.p0(i64 1, ptr %374) #9
  br label %2653

2653:                                             ; preds = %2652, %2650
  %2654 = load i1, ptr %373, align 1
  br i1 %2654, label %2655, label %2656

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

2656:                                             ; preds = %2655, %2653
  %2657 = load i1, ptr %371, align 1
  br i1 %2657, label %2658, label %2659

2658:                                             ; preds = %2656
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #9
  br label %2659

2659:                                             ; preds = %2658, %2656
  %2660 = load i1, ptr %370, align 1
  br i1 %2660, label %2661, label %2662

2661:                                             ; preds = %2659
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #9
  br label %2662

2662:                                             ; preds = %2661, %2659
  %2663 = load i1, ptr %369, align 1
  br i1 %2663, label %2664, label %2665

2664:                                             ; preds = %2662
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #9
  br label %2665

2665:                                             ; preds = %2664, %2662
  %2666 = load i1, ptr %368, align 1
  br i1 %2666, label %2667, label %2668

2667:                                             ; preds = %2665
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #9
  br label %2668

2668:                                             ; preds = %2667, %2665
  %2669 = load i1, ptr %366, align 1
  br i1 %2669, label %2670, label %2671

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

2671:                                             ; preds = %2670, %2668
  %2672 = load i1, ptr %364, align 1
  br i1 %2672, label %2673, label %2674

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

2674:                                             ; preds = %2673, %2671
  %2675 = load i1, ptr %362, align 1
  br i1 %2675, label %2676, label %2677

2676:                                             ; preds = %2674
  call void @llvm.lifetime.end.p0(i64 32, ptr %361) #9
  br label %2677

2677:                                             ; preds = %2676, %2674
  %2678 = load i1, ptr %360, align 1
  br i1 %2678, label %2679, label %2680

2679:                                             ; preds = %2677
  call void @llvm.lifetime.end.p0(i64 32, ptr %359) #9
  br label %2680

2680:                                             ; preds = %2679, %2677
  %2681 = load i1, ptr %358, align 1
  br i1 %2681, label %2682, label %2683

2682:                                             ; preds = %2680
  call void @llvm.lifetime.end.p0(i64 32, ptr %357) #9
  br label %2683

2683:                                             ; preds = %2682, %2680
  %2684 = load i1, ptr %356, align 1
  br i1 %2684, label %2685, label %2686

2685:                                             ; preds = %2683
  call void @llvm.lifetime.end.p0(i64 32, ptr %355) #9
  br label %2686

2686:                                             ; preds = %2685, %2683
  %2687 = load i8, ptr %13, align 1, !tbaa !11, !range !19, !noundef !20
  %2688 = trunc i8 %2687 to i1
  br i1 %2688, label %2708, label %2689

2689:                                             ; preds = %2686
  %2690 = load double, ptr %11, align 8, !tbaa !9
  %2691 = load double, ptr @_ZN4Apex2PIE, align 8, !tbaa !9
  %2692 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %2693 = load double, ptr %2692, align 8, !tbaa !26
  %2694 = fsub double %2691, %2693
  %2695 = call noundef double @_Z17dimLessCornerAreadd(double noundef %2690, double noundef %2694)
  %2696 = load double, ptr %353, align 8, !tbaa !9
  %2697 = fmul double %2695, %2696
  %2698 = load double, ptr %353, align 8, !tbaa !9
  %2699 = fmul double %2697, %2698
  %2700 = load double, ptr %11, align 8, !tbaa !9
  %2701 = load double, ptr %178, align 8, !tbaa !9
  %2702 = call noundef double @_Z17dimLessCornerAreadd(double noundef %2700, double noundef %2701)
  %2703 = load double, ptr %177, align 8, !tbaa !9
  %2704 = fmul double %2702, %2703
  %2705 = load double, ptr %177, align 8, !tbaa !9
  %2706 = call double @llvm.fmuladd.f64(double %2704, double %2705, double -1.000000e-18)
  %2707 = fcmp ogt double %2699, %2706
  br i1 %2707, label %2894, label %2708

2708:                                             ; preds = %2689, %2686
  %2709 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.41)
  %2710 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2709, ptr noundef @.str.42)
  %2711 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %2712 = load ptr, ptr %2711, align 8, !tbaa !23
  %2713 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %2712)
  %2714 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %2710, i1 noundef zeroext %2713)
  %2715 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2714, ptr noundef @.str.43)
  %2716 = load double, ptr %11, align 8, !tbaa !9
  %2717 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2715, double noundef %2716)
  %2718 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2717, ptr noundef @.str.44)
  %2719 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %2720 = load double, ptr %2719, align 8, !tbaa !26
  %2721 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2718, double noundef %2720)
  %2722 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2721, ptr noundef @.str.9)
  br label %2894

2723:                                             ; preds = %2566
  %2724 = landingpad { ptr, i32 }
          cleanup
  %2725 = extractvalue { ptr, i32 } %2724, 0
  store ptr %2725, ptr %30, align 8
  %2726 = extractvalue { ptr, i32 } %2724, 1
  store i32 %2726, ptr %31, align 4
  br label %2869

2727:                                             ; preds = %2567
  %2728 = landingpad { ptr, i32 }
          cleanup
  %2729 = extractvalue { ptr, i32 } %2728, 0
  store ptr %2729, ptr %30, align 8
  %2730 = extractvalue { ptr, i32 } %2728, 1
  store i32 %2730, ptr %31, align 4
  br label %2865

2731:                                             ; preds = %2568
  %2732 = landingpad { ptr, i32 }
          cleanup
  %2733 = extractvalue { ptr, i32 } %2732, 0
  store ptr %2733, ptr %30, align 8
  %2734 = extractvalue { ptr, i32 } %2732, 1
  store i32 %2734, ptr %31, align 4
  br label %2852

2735:                                             ; preds = %2569
  %2736 = landingpad { ptr, i32 }
          cleanup
  %2737 = extractvalue { ptr, i32 } %2736, 0
  store ptr %2737, ptr %30, align 8
  %2738 = extractvalue { ptr, i32 } %2736, 1
  store i32 %2738, ptr %31, align 4
  br label %2848

2739:                                             ; preds = %2570
  %2740 = landingpad { ptr, i32 }
          cleanup
  %2741 = extractvalue { ptr, i32 } %2740, 0
  store ptr %2741, ptr %30, align 8
  %2742 = extractvalue { ptr, i32 } %2740, 1
  store i32 %2742, ptr %31, align 4
  br label %2844

2743:                                             ; preds = %2571
  %2744 = landingpad { ptr, i32 }
          cleanup
  %2745 = extractvalue { ptr, i32 } %2744, 0
  store ptr %2745, ptr %30, align 8
  %2746 = extractvalue { ptr, i32 } %2744, 1
  store i32 %2746, ptr %31, align 4
  br label %2831

2747:                                             ; preds = %2572
  %2748 = landingpad { ptr, i32 }
          cleanup
  %2749 = extractvalue { ptr, i32 } %2748, 0
  store ptr %2749, ptr %30, align 8
  %2750 = extractvalue { ptr, i32 } %2748, 1
  store i32 %2750, ptr %31, align 4
  br label %2827

2751:                                             ; preds = %2573
  %2752 = landingpad { ptr, i32 }
          cleanup
  %2753 = extractvalue { ptr, i32 } %2752, 0
  store ptr %2753, ptr %30, align 8
  %2754 = extractvalue { ptr, i32 } %2752, 1
  store i32 %2754, ptr %31, align 4
  br label %2823

2755:                                             ; preds = %2574
  %2756 = landingpad { ptr, i32 }
          cleanup
  %2757 = extractvalue { ptr, i32 } %2756, 0
  store ptr %2757, ptr %30, align 8
  %2758 = extractvalue { ptr, i32 } %2756, 1
  store i32 %2758, ptr %31, align 4
  br label %2816

2759:                                             ; preds = %2575
  %2760 = landingpad { ptr, i32 }
          cleanup
  %2761 = extractvalue { ptr, i32 } %2760, 0
  store ptr %2761, ptr %30, align 8
  %2762 = extractvalue { ptr, i32 } %2760, 1
  store i32 %2762, ptr %31, align 4
  br label %2812

2763:                                             ; preds = %2576
  %2764 = landingpad { ptr, i32 }
          cleanup
  %2765 = extractvalue { ptr, i32 } %2764, 0
  store ptr %2765, ptr %30, align 8
  %2766 = extractvalue { ptr, i32 } %2764, 1
  store i32 %2766, ptr %31, align 4
  br label %2799

2767:                                             ; preds = %2577
  %2768 = landingpad { ptr, i32 }
          cleanup
  %2769 = extractvalue { ptr, i32 } %2768, 0
  store ptr %2769, ptr %30, align 8
  %2770 = extractvalue { ptr, i32 } %2768, 1
  store i32 %2770, ptr %31, align 4
  br label %2786

2771:                                             ; preds = %2578
  %2772 = landingpad { ptr, i32 }
          cleanup
  %2773 = extractvalue { ptr, i32 } %2772, 0
  store ptr %2773, ptr %30, align 8
  %2774 = extractvalue { ptr, i32 } %2772, 1
  store i32 %2774, ptr %31, align 4
  br label %2782

2775:                                             ; preds = %2579
  %2776 = landingpad { ptr, i32 }
          cleanup
  %2777 = extractvalue { ptr, i32 } %2776, 0
  store ptr %2777, ptr %30, align 8
  %2778 = extractvalue { ptr, i32 } %2776, 1
  store i32 %2778, ptr %31, align 4
  %2779 = load i1, ptr %406, align 1
  br i1 %2779, label %2780, label %2781

2780:                                             ; preds = %2775
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #9
  br label %2781

2781:                                             ; preds = %2780, %2775
  br label %2782

2782:                                             ; preds = %2781, %2771
  %2783 = load i1, ptr %405, align 1
  br i1 %2783, label %2784, label %2785

2784:                                             ; preds = %2782
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %400) #9
  br label %2785

2785:                                             ; preds = %2784, %2782
  br label %2786

2786:                                             ; preds = %2785, %2767
  %2787 = load i1, ptr %404, align 1
  br i1 %2787, label %2788, label %2789

2788:                                             ; preds = %2786
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %402) #9
  br label %2789

2789:                                             ; preds = %2788, %2786
  %2790 = load i1, ptr %403, align 1
  br i1 %2790, label %2791, label %2792

2791:                                             ; preds = %2789
  call void @llvm.lifetime.end.p0(i64 1, ptr %402) #9
  br label %2792

2792:                                             ; preds = %2791, %2789
  %2793 = load i1, ptr %401, align 1
  br i1 %2793, label %2794, label %2795

2794:                                             ; preds = %2792
  call void @llvm.lifetime.end.p0(i64 32, ptr %400) #9
  br label %2795

2795:                                             ; preds = %2794, %2792
  %2796 = load i1, ptr %399, align 1
  br i1 %2796, label %2797, label %2798

2797:                                             ; preds = %2795
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %394) #9
  br label %2798

2798:                                             ; preds = %2797, %2795
  br label %2799

2799:                                             ; preds = %2798, %2763
  %2800 = load i1, ptr %398, align 1
  br i1 %2800, label %2801, label %2802

2801:                                             ; preds = %2799
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %396) #9
  br label %2802

2802:                                             ; preds = %2801, %2799
  %2803 = load i1, ptr %397, align 1
  br i1 %2803, label %2804, label %2805

2804:                                             ; preds = %2802
  call void @llvm.lifetime.end.p0(i64 1, ptr %396) #9
  br label %2805

2805:                                             ; preds = %2804, %2802
  %2806 = load i1, ptr %395, align 1
  br i1 %2806, label %2807, label %2808

2807:                                             ; preds = %2805
  call void @llvm.lifetime.end.p0(i64 32, ptr %394) #9
  br label %2808

2808:                                             ; preds = %2807, %2805
  %2809 = load i1, ptr %392, align 1
  br i1 %2809, label %2810, label %2811

2810:                                             ; preds = %2808
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #9
  br label %2811

2811:                                             ; preds = %2810, %2808
  br label %2812

2812:                                             ; preds = %2811, %2759
  %2813 = load i1, ptr %391, align 1
  br i1 %2813, label %2814, label %2815

2814:                                             ; preds = %2812
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #9
  br label %2815

2815:                                             ; preds = %2814, %2812
  br label %2816

2816:                                             ; preds = %2815, %2755
  call void @llvm.lifetime.end.p0(i64 4, ptr %390) #9
  %2817 = load i1, ptr %389, align 1
  br i1 %2817, label %2818, label %2819

2818:                                             ; preds = %2816
  call void @llvm.lifetime.end.p0(i64 32, ptr %388) #9
  br label %2819

2819:                                             ; preds = %2818, %2816
  %2820 = load i1, ptr %387, align 1
  br i1 %2820, label %2821, label %2822

2821:                                             ; preds = %2819
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %355) #9
  br label %2822

2822:                                             ; preds = %2821, %2819
  br label %2823

2823:                                             ; preds = %2822, %2751
  %2824 = load i1, ptr %386, align 1
  br i1 %2824, label %2825, label %2826

2825:                                             ; preds = %2823
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %357) #9
  br label %2826

2826:                                             ; preds = %2825, %2823
  br label %2827

2827:                                             ; preds = %2826, %2747
  %2828 = load i1, ptr %385, align 1
  br i1 %2828, label %2829, label %2830

2829:                                             ; preds = %2827
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %380) #9
  br label %2830

2830:                                             ; preds = %2829, %2827
  br label %2831

2831:                                             ; preds = %2830, %2743
  %2832 = load i1, ptr %384, align 1
  br i1 %2832, label %2833, label %2834

2833:                                             ; preds = %2831
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %382) #9
  br label %2834

2834:                                             ; preds = %2833, %2831
  %2835 = load i1, ptr %383, align 1
  br i1 %2835, label %2836, label %2837

2836:                                             ; preds = %2834
  call void @llvm.lifetime.end.p0(i64 1, ptr %382) #9
  br label %2837

2837:                                             ; preds = %2836, %2834
  %2838 = load i1, ptr %381, align 1
  br i1 %2838, label %2839, label %2840

2839:                                             ; preds = %2837
  call void @llvm.lifetime.end.p0(i64 32, ptr %380) #9
  br label %2840

2840:                                             ; preds = %2839, %2837
  %2841 = load i1, ptr %379, align 1
  br i1 %2841, label %2842, label %2843

2842:                                             ; preds = %2840
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %359) #9
  br label %2843

2843:                                             ; preds = %2842, %2840
  br label %2844

2844:                                             ; preds = %2843, %2739
  %2845 = load i1, ptr %378, align 1
  br i1 %2845, label %2846, label %2847

2846:                                             ; preds = %2844
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %361) #9
  br label %2847

2847:                                             ; preds = %2846, %2844
  br label %2848

2848:                                             ; preds = %2847, %2735
  %2849 = load i1, ptr %377, align 1
  br i1 %2849, label %2850, label %2851

2850:                                             ; preds = %2848
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %372) #9
  br label %2851

2851:                                             ; preds = %2850, %2848
  br label %2852

2852:                                             ; preds = %2851, %2731
  %2853 = load i1, ptr %376, align 1
  br i1 %2853, label %2854, label %2855

2854:                                             ; preds = %2852
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %374) #9
  br label %2855

2855:                                             ; preds = %2854, %2852
  %2856 = load i1, ptr %375, align 1
  br i1 %2856, label %2857, label %2858

2857:                                             ; preds = %2855
  call void @llvm.lifetime.end.p0(i64 1, ptr %374) #9
  br label %2858

2858:                                             ; preds = %2857, %2855
  %2859 = load i1, ptr %373, align 1
  br i1 %2859, label %2860, label %2861

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

2861:                                             ; preds = %2860, %2858
  %2862 = load i1, ptr %371, align 1
  br i1 %2862, label %2863, label %2864

2863:                                             ; preds = %2861
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %363) #9
  br label %2864

2864:                                             ; preds = %2863, %2861
  br label %2865

2865:                                             ; preds = %2864, %2727
  %2866 = load i1, ptr %370, align 1
  br i1 %2866, label %2867, label %2868

2867:                                             ; preds = %2865
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %365) #9
  br label %2868

2868:                                             ; preds = %2867, %2865
  br label %2869

2869:                                             ; preds = %2868, %2723
  %2870 = load i1, ptr %369, align 1
  br i1 %2870, label %2871, label %2872

2871:                                             ; preds = %2869
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %367) #9
  br label %2872

2872:                                             ; preds = %2871, %2869
  %2873 = load i1, ptr %368, align 1
  br i1 %2873, label %2874, label %2875

2874:                                             ; preds = %2872
  call void @llvm.lifetime.end.p0(i64 1, ptr %367) #9
  br label %2875

2875:                                             ; preds = %2874, %2872
  %2876 = load i1, ptr %366, align 1
  br i1 %2876, label %2877, label %2878

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

2878:                                             ; preds = %2877, %2875
  %2879 = load i1, ptr %364, align 1
  br i1 %2879, label %2880, label %2881

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

2881:                                             ; preds = %2880, %2878
  %2882 = load i1, ptr %362, align 1
  br i1 %2882, label %2883, label %2884

2883:                                             ; preds = %2881
  call void @llvm.lifetime.end.p0(i64 32, ptr %361) #9
  br label %2884

2884:                                             ; preds = %2883, %2881
  %2885 = load i1, ptr %360, align 1
  br i1 %2885, label %2886, label %2887

2886:                                             ; preds = %2884
  call void @llvm.lifetime.end.p0(i64 32, ptr %359) #9
  br label %2887

2887:                                             ; preds = %2886, %2884
  %2888 = load i1, ptr %358, align 1
  br i1 %2888, label %2889, label %2890

2889:                                             ; preds = %2887
  call void @llvm.lifetime.end.p0(i64 32, ptr %357) #9
  br label %2890

2890:                                             ; preds = %2889, %2887
  %2891 = load i1, ptr %356, align 1
  br i1 %2891, label %2892, label %2893

2892:                                             ; preds = %2890
  call void @llvm.lifetime.end.p0(i64 32, ptr %355) #9
  br label %2893

2893:                                             ; preds = %2892, %2890
  br label %3302

2894:                                             ; preds = %2708, %2689
  call void @llvm.lifetime.start.p0(i64 8, ptr %407) #9
  %2895 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %2896 = load ptr, ptr %2895, align 8, !tbaa !23
  %2897 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %2896)
  store double %2897, ptr %407, align 8, !tbaa !9
  %2898 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %351, ptr noundef nonnull align 8 dereferenceable(8) %407)
  %2899 = load double, ptr %2898, align 8, !tbaa !9
  store double %2899, ptr %351, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %407) #9
  %2900 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 1
  store i32 21, ptr %2900, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 8, ptr %408) #9
  %2901 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %2902 = load ptr, ptr %2901, align 8, !tbaa !23
  %2903 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %2902)
  br i1 %2903, label %2904, label %2917

2904:                                             ; preds = %2894
  %2905 = load double, ptr %12, align 8, !tbaa !9
  %2906 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %2907 = load double, ptr %2906, align 8, !tbaa !26
  %2908 = load double, ptr %11, align 8, !tbaa !9
  %2909 = fsub double %2907, %2908
  %2910 = call double @cos(double noundef %2909) #9
  %2911 = fmul double %2905, %2910
  %2912 = load double, ptr %177, align 8, !tbaa !9
  %2913 = load double, ptr %11, align 8, !tbaa !9
  %2914 = call double @sin(double noundef %2913) #9
  %2915 = fmul double %2912, %2914
  %2916 = fdiv double %2911, %2915
  br label %2920

2917:                                             ; preds = %2894
  %2918 = load double, ptr %351, align 8, !tbaa !9
  %2919 = fsub double %2918, 1.000000e-01
  br label %2920

2920:                                             ; preds = %2917, %2904
  %2921 = phi double [ %2916, %2904 ], [ %2919, %2917 ]
  store double %2921, ptr %408, align 8, !tbaa !9
  %2922 = load i8, ptr %13, align 1, !tbaa !11, !range !19, !noundef !20
  %2923 = trunc i8 %2922 to i1
  br i1 %2923, label %2924, label %2998

2924:                                             ; preds = %2920
  call void @llvm.lifetime.start.p0(i64 8, ptr %409) #9
  %2925 = load double, ptr %352, align 8, !tbaa !9
  %2926 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %2927 = load double, ptr %2926, align 8, !tbaa !26
  %2928 = call double @cos(double noundef %2927) #9
  %2929 = load double, ptr %11, align 8, !tbaa !9
  %2930 = call double @sin(double noundef %2929) #9
  %2931 = fdiv double %2928, %2930
  %2932 = fadd double %2931, 1.000000e+00
  %2933 = fmul double %2925, %2932
  store double %2933, ptr %409, align 8, !tbaa !9
  %2934 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 1
  %2935 = load i32, ptr %2934, align 8, !tbaa !28
  %2936 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %2935)
  %2937 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2936, ptr noundef @.str.45)
  %2938 = load double, ptr %178, align 8, !tbaa !9
  %2939 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2937, double noundef %2938)
  %2940 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2939, ptr noundef @.str.28)
  %2941 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2940, ptr noundef @.str.46)
  %2942 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 5
  %2943 = load double, ptr %2942, align 8, !tbaa !26
  %2944 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2941, double noundef %2943)
  %2945 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2944, ptr noundef @.str.47)
  %2946 = load double, ptr %10, align 8, !tbaa !9
  %2947 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2945, double noundef %2946)
  %2948 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2947, ptr noundef @.str.48)
  %2949 = load double, ptr %11, align 8, !tbaa !9
  %2950 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2948, double noundef %2949)
  %2951 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2950, ptr noundef @.str.49)
  %2952 = load double, ptr %352, align 8, !tbaa !9
  %2953 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2951, double noundef %2952)
  %2954 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2953, ptr noundef @.str.50)
  %2955 = load double, ptr %9, align 8, !tbaa !9
  %2956 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2954, double noundef %2955)
  %2957 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2956, ptr noundef @.str.51)
  %2958 = load double, ptr %123, align 8, !tbaa !9
  %2959 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2957, double noundef %2958)
  %2960 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2959, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %2961 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2960, ptr noundef @.str.52)
  %2962 = load double, ptr %179, align 8, !tbaa !9
  %2963 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2961, double noundef %2962)
  %2964 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2963, ptr noundef @.str.53)
  %2965 = load double, ptr %409, align 8, !tbaa !9
  %2966 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2964, double noundef %2965)
  %2967 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2966, ptr noundef @.str.54)
  %2968 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2967, ptr noundef @.str.55)
  %2969 = load double, ptr %9, align 8, !tbaa !9
  %2970 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2968, double noundef %2969)
  %2971 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2970, ptr noundef @.str.56)
  %2972 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %2973 = load ptr, ptr %2972, align 8, !tbaa !23
  %2974 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %2973)
  br i1 %2974, label %2975, label %2979

2975:                                             ; preds = %2924
  %2976 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 4
  %2977 = load ptr, ptr %2976, align 8, !tbaa !23
  %2978 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %2977)
  br label %2981

2979:                                             ; preds = %2924
  %2980 = load double, ptr %122, align 8, !tbaa !9
  br label %2981

2981:                                             ; preds = %2979, %2975
  %2982 = phi double [ %2978, %2975 ], [ %2980, %2979 ]
  %2983 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2971, double noundef %2982)
  %2984 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2983, ptr noundef @.str.57)
  %2985 = load double, ptr %122, align 8, !tbaa !9
  %2986 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2984, double noundef %2985)
  %2987 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2986, ptr noundef @.str.58)
  %2988 = load double, ptr %351, align 8, !tbaa !9
  %2989 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2987, double noundef %2988)
  %2990 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2989, ptr noundef @.str.59)
  %2991 = load double, ptr %408, align 8, !tbaa !9
  %2992 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2990, double noundef %2991)
  %2993 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2992, ptr noundef @.str.60)
  %2994 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %351, ptr noundef nonnull align 8 dereferenceable(8) %408)
  %2995 = load double, ptr %2994, align 8, !tbaa !9
  %2996 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %2993, double noundef %2995)
  %2997 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2996, ptr noundef @.str.61)
  call void @llvm.lifetime.end.p0(i64 8, ptr %409) #9
  br label %2998

2998:                                             ; preds = %2981, %2920
  %2999 = load double, ptr %408, align 8, !tbaa !9
  %3000 = fcmp olt double %2999, 0.000000e+00
  store i1 false, ptr %412, align 1
  store i1 false, ptr %414, align 1
  store i1 false, ptr %416, align 1
  store i1 false, ptr %418, align 1
  store i1 false, ptr %420, align 1
  store i1 false, ptr %422, align 1
  store i1 false, ptr %424, align 1
  store i1 false, ptr %425, align 1
  store i1 false, ptr %426, align 1
  store i1 false, ptr %427, align 1
  store i1 false, ptr %429, align 1
  store i1 false, ptr %431, align 1
  store i1 false, ptr %432, align 1
  store i1 false, ptr %433, align 1
  store i1 false, ptr %434, align 1
  store i1 false, ptr %435, align 1
  store i1 false, ptr %437, align 1
  store i1 false, ptr %439, align 1
  store i1 false, ptr %440, align 1
  store i1 false, ptr %441, align 1
  store i1 false, ptr %442, align 1
  store i1 false, ptr %443, align 1
  store i1 false, ptr %445, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %446) #9
  store i1 false, ptr %447, align 1
  store i1 false, ptr %448, align 1
  store i1 false, ptr %451, align 1
  store i1 false, ptr %453, align 1
  store i1 false, ptr %454, align 1
  store i1 false, ptr %455, align 1
  store i1 false, ptr %457, align 1
  store i1 false, ptr %459, align 1
  store i1 false, ptr %460, align 1
  store i1 false, ptr %461, align 1
  store i1 false, ptr %462, align 1
  br i1 %3000, label %3017, label %3001

3001:                                             ; preds = %2998
  call void @llvm.lifetime.start.p0(i64 32, ptr %411) #9
  store i1 true, ptr %412, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %413) #9
  store i1 true, ptr %414, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %415) #9
  store i1 true, ptr %416, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %417) #9
  store i1 true, ptr %418, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %419) #9
  store i1 true, ptr %420, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %421) #9
  store i1 true, ptr %422, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %423) #9
  store i1 true, ptr %424, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #9
  store i1 true, ptr %425, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %421, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %423)
          to label %3002 unwind label %3128

3002:                                             ; preds = %3001
  store i1 true, ptr %426, 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 %419, ptr noundef nonnull align 8 dereferenceable(32) %421, ptr noundef @.str.1)
          to label %3003 unwind label %3132

3003:                                             ; preds = %3002
  store i1 true, ptr %427, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %428) #9
  store i1 true, ptr %429, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %430) #9
  store i1 true, ptr %431, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #9
  store i1 true, ptr %432, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %428, ptr noundef @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %430)
          to label %3004 unwind label %3136

3004:                                             ; preds = %3003
  store i1 true, ptr %433, 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 %417, ptr noundef nonnull align 8 dereferenceable(32) %419, ptr noundef nonnull align 8 dereferenceable(32) %428)
          to label %3005 unwind label %3140

3005:                                             ; preds = %3004
  store i1 true, ptr %434, 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 %415, ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef @.str.2)
          to label %3006 unwind label %3144

3006:                                             ; preds = %3005
  store i1 true, ptr %435, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %436) #9
  store i1 true, ptr %437, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %438) #9
  store i1 true, ptr %439, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %438) #9
  store i1 true, ptr %440, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %436, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %438)
          to label %3007 unwind label %3148

3007:                                             ; preds = %3006
  store i1 true, ptr %441, 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 %413, ptr noundef nonnull align 8 dereferenceable(32) %415, ptr noundef nonnull align 8 dereferenceable(32) %436)
          to label %3008 unwind label %3152

3008:                                             ; preds = %3007
  store i1 true, ptr %442, 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 %411, ptr noundef nonnull align 8 dereferenceable(32) %413, ptr noundef @.str.4)
          to label %3009 unwind label %3156

3009:                                             ; preds = %3008
  store i1 true, ptr %443, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %444) #9
  store i1 true, ptr %445, align 1
  store i32 577, ptr %446, align 4, !tbaa !17
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %444, ptr noundef nonnull align 4 dereferenceable(4) %446)
          to label %3010 unwind label %3160

3010:                                             ; preds = %3009
  store i1 true, ptr %447, 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 %410, ptr noundef nonnull align 8 dereferenceable(32) %411, ptr noundef nonnull align 8 dereferenceable(32) %444)
          to label %3011 unwind label %3164

3011:                                             ; preds = %3010
  store i1 true, ptr %448, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %450) #9
  store i1 true, ptr %451, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %452) #9
  store i1 true, ptr %453, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %452) #9
  store i1 true, ptr %454, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %452)
          to label %3012 unwind label %3168

3012:                                             ; preds = %3011
  store i1 true, ptr %455, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %456) #9
  store i1 true, ptr %457, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %458) #9
  store i1 true, ptr %459, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #9
  store i1 true, ptr %460, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef @.str.62, ptr noundef nonnull align 1 dereferenceable(1) %458)
          to label %3013 unwind label %3172

3013:                                             ; preds = %3012
  store i1 true, ptr %461, 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 %449, ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef nonnull align 8 dereferenceable(32) %456)
          to label %3014 unwind label %3176

3014:                                             ; preds = %3013
  store i1 true, ptr %462, align 1
  %3015 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %410, ptr noundef %449, i32 noundef 0)
          to label %3016 unwind label %3180

3016:                                             ; preds = %3014
  br label %3017

3017:                                             ; preds = %3016, %2998
  %3018 = phi i1 [ true, %2998 ], [ %3015, %3016 ]
  %3019 = xor i1 %3018, true
  %3020 = load i1, ptr %462, align 1
  br i1 %3020, label %3021, label %3022

3021:                                             ; preds = %3017
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %449) #9
  br label %3022

3022:                                             ; preds = %3021, %3017
  %3023 = load i1, ptr %461, align 1
  br i1 %3023, label %3024, label %3025

3024:                                             ; preds = %3022
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %456) #9
  br label %3025

3025:                                             ; preds = %3024, %3022
  %3026 = load i1, ptr %460, align 1
  br i1 %3026, label %3027, label %3028

3027:                                             ; preds = %3025
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #9
  br label %3028

3028:                                             ; preds = %3027, %3025
  %3029 = load i1, ptr %459, align 1
  br i1 %3029, label %3030, label %3031

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

3031:                                             ; preds = %3030, %3028
  %3032 = load i1, ptr %457, align 1
  br i1 %3032, label %3033, label %3034

3033:                                             ; preds = %3031
  call void @llvm.lifetime.end.p0(i64 32, ptr %456) #9
  br label %3034

3034:                                             ; preds = %3033, %3031
  %3035 = load i1, ptr %455, align 1
  br i1 %3035, label %3036, label %3037

3036:                                             ; preds = %3034
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #9
  br label %3037

3037:                                             ; preds = %3036, %3034
  %3038 = load i1, ptr %454, align 1
  br i1 %3038, label %3039, label %3040

3039:                                             ; preds = %3037
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %452) #9
  br label %3040

3040:                                             ; preds = %3039, %3037
  %3041 = load i1, ptr %453, align 1
  br i1 %3041, label %3042, label %3043

3042:                                             ; preds = %3040
  call void @llvm.lifetime.end.p0(i64 1, ptr %452) #9
  br label %3043

3043:                                             ; preds = %3042, %3040
  %3044 = load i1, ptr %451, align 1
  br i1 %3044, label %3045, label %3046

3045:                                             ; preds = %3043
  call void @llvm.lifetime.end.p0(i64 32, ptr %450) #9
  br label %3046

3046:                                             ; preds = %3045, %3043
  %3047 = load i1, ptr %448, align 1
  br i1 %3047, label %3048, label %3049

3048:                                             ; preds = %3046
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #9
  br label %3049

3049:                                             ; preds = %3048, %3046
  %3050 = load i1, ptr %447, align 1
  br i1 %3050, label %3051, label %3052

3051:                                             ; preds = %3049
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #9
  br label %3052

3052:                                             ; preds = %3051, %3049
  call void @llvm.lifetime.end.p0(i64 4, ptr %446) #9
  %3053 = load i1, ptr %445, align 1
  br i1 %3053, label %3054, label %3055

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

3055:                                             ; preds = %3054, %3052
  %3056 = load i1, ptr %443, align 1
  br i1 %3056, label %3057, label %3058

3057:                                             ; preds = %3055
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #9
  br label %3058

3058:                                             ; preds = %3057, %3055
  %3059 = load i1, ptr %442, align 1
  br i1 %3059, label %3060, label %3061

3060:                                             ; preds = %3058
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #9
  br label %3061

3061:                                             ; preds = %3060, %3058
  %3062 = load i1, ptr %441, align 1
  br i1 %3062, label %3063, label %3064

3063:                                             ; preds = %3061
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #9
  br label %3064

3064:                                             ; preds = %3063, %3061
  %3065 = load i1, ptr %440, align 1
  br i1 %3065, label %3066, label %3067

3066:                                             ; preds = %3064
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %438) #9
  br label %3067

3067:                                             ; preds = %3066, %3064
  %3068 = load i1, ptr %439, align 1
  br i1 %3068, label %3069, label %3070

3069:                                             ; preds = %3067
  call void @llvm.lifetime.end.p0(i64 1, ptr %438) #9
  br label %3070

3070:                                             ; preds = %3069, %3067
  %3071 = load i1, ptr %437, align 1
  br i1 %3071, label %3072, label %3073

3072:                                             ; preds = %3070
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #9
  br label %3073

3073:                                             ; preds = %3072, %3070
  %3074 = load i1, ptr %435, align 1
  br i1 %3074, label %3075, label %3076

3075:                                             ; preds = %3073
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #9
  br label %3076

3076:                                             ; preds = %3075, %3073
  %3077 = load i1, ptr %434, align 1
  br i1 %3077, label %3078, label %3079

3078:                                             ; preds = %3076
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #9
  br label %3079

3079:                                             ; preds = %3078, %3076
  %3080 = load i1, ptr %433, align 1
  br i1 %3080, label %3081, label %3082

3081:                                             ; preds = %3079
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %428) #9
  br label %3082

3082:                                             ; preds = %3081, %3079
  %3083 = load i1, ptr %432, align 1
  br i1 %3083, label %3084, label %3085

3084:                                             ; preds = %3082
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #9
  br label %3085

3085:                                             ; preds = %3084, %3082
  %3086 = load i1, ptr %431, align 1
  br i1 %3086, label %3087, label %3088

3087:                                             ; preds = %3085
  call void @llvm.lifetime.end.p0(i64 1, ptr %430) #9
  br label %3088

3088:                                             ; preds = %3087, %3085
  %3089 = load i1, ptr %429, align 1
  br i1 %3089, label %3090, label %3091

3090:                                             ; preds = %3088
  call void @llvm.lifetime.end.p0(i64 32, ptr %428) #9
  br label %3091

3091:                                             ; preds = %3090, %3088
  %3092 = load i1, ptr %427, align 1
  br i1 %3092, label %3093, label %3094

3093:                                             ; preds = %3091
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %419) #9
  br label %3094

3094:                                             ; preds = %3093, %3091
  %3095 = load i1, ptr %426, align 1
  br i1 %3095, label %3096, label %3097

3096:                                             ; preds = %3094
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #9
  br label %3097

3097:                                             ; preds = %3096, %3094
  %3098 = load i1, ptr %425, align 1
  br i1 %3098, label %3099, label %3100

3099:                                             ; preds = %3097
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #9
  br label %3100

3100:                                             ; preds = %3099, %3097
  %3101 = load i1, ptr %424, align 1
  br i1 %3101, label %3102, label %3103

3102:                                             ; preds = %3100
  call void @llvm.lifetime.end.p0(i64 1, ptr %423) #9
  br label %3103

3103:                                             ; preds = %3102, %3100
  %3104 = load i1, ptr %422, align 1
  br i1 %3104, label %3105, label %3106

3105:                                             ; preds = %3103
  call void @llvm.lifetime.end.p0(i64 32, ptr %421) #9
  br label %3106

3106:                                             ; preds = %3105, %3103
  %3107 = load i1, ptr %420, align 1
  br i1 %3107, label %3108, label %3109

3108:                                             ; preds = %3106
  call void @llvm.lifetime.end.p0(i64 32, ptr %419) #9
  br label %3109

3109:                                             ; preds = %3108, %3106
  %3110 = load i1, ptr %418, align 1
  br i1 %3110, label %3111, label %3112

3111:                                             ; preds = %3109
  call void @llvm.lifetime.end.p0(i64 32, ptr %417) #9
  br label %3112

3112:                                             ; preds = %3111, %3109
  %3113 = load i1, ptr %416, align 1
  br i1 %3113, label %3114, label %3115

3114:                                             ; preds = %3112
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #9
  br label %3115

3115:                                             ; preds = %3114, %3112
  %3116 = load i1, ptr %414, align 1
  br i1 %3116, label %3117, label %3118

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

3118:                                             ; preds = %3117, %3115
  %3119 = load i1, ptr %412, align 1
  br i1 %3119, label %3120, label %3121

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

3121:                                             ; preds = %3120, %3118
  %3122 = load double, ptr %351, align 8, !tbaa !9
  %3123 = load double, ptr %408, align 8, !tbaa !9
  %3124 = fcmp olt double %3122, %3123
  br i1 %3124, label %3125, label %3299

3125:                                             ; preds = %3121
  %3126 = getelementptr inbounds %class.LayerApex, ptr %464, i32 0, i32 1
  store i32 22, ptr %3126, align 8, !tbaa !28
  %3127 = load double, ptr %408, align 8, !tbaa !9
  store double %3127, ptr %7, align 8
  store i32 1, ptr %237, align 4
  br label %3301

3128:                                             ; preds = %3001
  %3129 = landingpad { ptr, i32 }
          cleanup
  %3130 = extractvalue { ptr, i32 } %3129, 0
  store ptr %3130, ptr %30, align 8
  %3131 = extractvalue { ptr, i32 } %3129, 1
  store i32 %3131, ptr %31, align 4
  br label %3274

3132:                                             ; preds = %3002
  %3133 = landingpad { ptr, i32 }
          cleanup
  %3134 = extractvalue { ptr, i32 } %3133, 0
  store ptr %3134, ptr %30, align 8
  %3135 = extractvalue { ptr, i32 } %3133, 1
  store i32 %3135, ptr %31, align 4
  br label %3270

3136:                                             ; preds = %3003
  %3137 = landingpad { ptr, i32 }
          cleanup
  %3138 = extractvalue { ptr, i32 } %3137, 0
  store ptr %3138, ptr %30, align 8
  %3139 = extractvalue { ptr, i32 } %3137, 1
  store i32 %3139, ptr %31, align 4
  br label %3257

3140:                                             ; preds = %3004
  %3141 = landingpad { ptr, i32 }
          cleanup
  %3142 = extractvalue { ptr, i32 } %3141, 0
  store ptr %3142, ptr %30, align 8
  %3143 = extractvalue { ptr, i32 } %3141, 1
  store i32 %3143, ptr %31, align 4
  br label %3253

3144:                                             ; preds = %3005
  %3145 = landingpad { ptr, i32 }
          cleanup
  %3146 = extractvalue { ptr, i32 } %3145, 0
  store ptr %3146, ptr %30, align 8
  %3147 = extractvalue { ptr, i32 } %3145, 1
  store i32 %3147, ptr %31, align 4
  br label %3249

3148:                                             ; preds = %3006
  %3149 = landingpad { ptr, i32 }
          cleanup
  %3150 = extractvalue { ptr, i32 } %3149, 0
  store ptr %3150, ptr %30, align 8
  %3151 = extractvalue { ptr, i32 } %3149, 1
  store i32 %3151, ptr %31, align 4
  br label %3236

3152:                                             ; preds = %3007
  %3153 = landingpad { ptr, i32 }
          cleanup
  %3154 = extractvalue { ptr, i32 } %3153, 0
  store ptr %3154, ptr %30, align 8
  %3155 = extractvalue { ptr, i32 } %3153, 1
  store i32 %3155, ptr %31, align 4
  br label %3232

3156:                                             ; preds = %3008
  %3157 = landingpad { ptr, i32 }
          cleanup
  %3158 = extractvalue { ptr, i32 } %3157, 0
  store ptr %3158, ptr %30, align 8
  %3159 = extractvalue { ptr, i32 } %3157, 1
  store i32 %3159, ptr %31, align 4
  br label %3228

3160:                                             ; preds = %3009
  %3161 = landingpad { ptr, i32 }
          cleanup
  %3162 = extractvalue { ptr, i32 } %3161, 0
  store ptr %3162, ptr %30, align 8
  %3163 = extractvalue { ptr, i32 } %3161, 1
  store i32 %3163, ptr %31, align 4
  br label %3221

3164:                                             ; preds = %3010
  %3165 = landingpad { ptr, i32 }
          cleanup
  %3166 = extractvalue { ptr, i32 } %3165, 0
  store ptr %3166, ptr %30, align 8
  %3167 = extractvalue { ptr, i32 } %3165, 1
  store i32 %3167, ptr %31, align 4
  br label %3217

3168:                                             ; preds = %3011
  %3169 = landingpad { ptr, i32 }
          cleanup
  %3170 = extractvalue { ptr, i32 } %3169, 0
  store ptr %3170, ptr %30, align 8
  %3171 = extractvalue { ptr, i32 } %3169, 1
  store i32 %3171, ptr %31, align 4
  br label %3204

3172:                                             ; preds = %3012
  %3173 = landingpad { ptr, i32 }
          cleanup
  %3174 = extractvalue { ptr, i32 } %3173, 0
  store ptr %3174, ptr %30, align 8
  %3175 = extractvalue { ptr, i32 } %3173, 1
  store i32 %3175, ptr %31, align 4
  br label %3191

3176:                                             ; preds = %3013
  %3177 = landingpad { ptr, i32 }
          cleanup
  %3178 = extractvalue { ptr, i32 } %3177, 0
  store ptr %3178, ptr %30, align 8
  %3179 = extractvalue { ptr, i32 } %3177, 1
  store i32 %3179, ptr %31, align 4
  br label %3187

3180:                                             ; preds = %3014
  %3181 = landingpad { ptr, i32 }
          cleanup
  %3182 = extractvalue { ptr, i32 } %3181, 0
  store ptr %3182, ptr %30, align 8
  %3183 = extractvalue { ptr, i32 } %3181, 1
  store i32 %3183, ptr %31, align 4
  %3184 = load i1, ptr %462, align 1
  br i1 %3184, label %3185, label %3186

3185:                                             ; preds = %3180
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %449) #9
  br label %3186

3186:                                             ; preds = %3185, %3180
  br label %3187

3187:                                             ; preds = %3186, %3176
  %3188 = load i1, ptr %461, align 1
  br i1 %3188, label %3189, label %3190

3189:                                             ; preds = %3187
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %456) #9
  br label %3190

3190:                                             ; preds = %3189, %3187
  br label %3191

3191:                                             ; preds = %3190, %3172
  %3192 = load i1, ptr %460, align 1
  br i1 %3192, label %3193, label %3194

3193:                                             ; preds = %3191
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %458) #9
  br label %3194

3194:                                             ; preds = %3193, %3191
  %3195 = load i1, ptr %459, align 1
  br i1 %3195, label %3196, label %3197

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

3197:                                             ; preds = %3196, %3194
  %3198 = load i1, ptr %457, align 1
  br i1 %3198, label %3199, label %3200

3199:                                             ; preds = %3197
  call void @llvm.lifetime.end.p0(i64 32, ptr %456) #9
  br label %3200

3200:                                             ; preds = %3199, %3197
  %3201 = load i1, ptr %455, align 1
  br i1 %3201, label %3202, label %3203

3202:                                             ; preds = %3200
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #9
  br label %3203

3203:                                             ; preds = %3202, %3200
  br label %3204

3204:                                             ; preds = %3203, %3168
  %3205 = load i1, ptr %454, align 1
  br i1 %3205, label %3206, label %3207

3206:                                             ; preds = %3204
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %452) #9
  br label %3207

3207:                                             ; preds = %3206, %3204
  %3208 = load i1, ptr %453, align 1
  br i1 %3208, label %3209, label %3210

3209:                                             ; preds = %3207
  call void @llvm.lifetime.end.p0(i64 1, ptr %452) #9
  br label %3210

3210:                                             ; preds = %3209, %3207
  %3211 = load i1, ptr %451, align 1
  br i1 %3211, label %3212, label %3213

3212:                                             ; preds = %3210
  call void @llvm.lifetime.end.p0(i64 32, ptr %450) #9
  br label %3213

3213:                                             ; preds = %3212, %3210
  %3214 = load i1, ptr %448, align 1
  br i1 %3214, label %3215, label %3216

3215:                                             ; preds = %3213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #9
  br label %3216

3216:                                             ; preds = %3215, %3213
  br label %3217

3217:                                             ; preds = %3216, %3164
  %3218 = load i1, ptr %447, align 1
  br i1 %3218, label %3219, label %3220

3219:                                             ; preds = %3217
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %444) #9
  br label %3220

3220:                                             ; preds = %3219, %3217
  br label %3221

3221:                                             ; preds = %3220, %3160
  call void @llvm.lifetime.end.p0(i64 4, ptr %446) #9
  %3222 = load i1, ptr %445, align 1
  br i1 %3222, label %3223, label %3224

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

3224:                                             ; preds = %3223, %3221
  %3225 = load i1, ptr %443, align 1
  br i1 %3225, label %3226, label %3227

3226:                                             ; preds = %3224
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #9
  br label %3227

3227:                                             ; preds = %3226, %3224
  br label %3228

3228:                                             ; preds = %3227, %3156
  %3229 = load i1, ptr %442, align 1
  br i1 %3229, label %3230, label %3231

3230:                                             ; preds = %3228
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #9
  br label %3231

3231:                                             ; preds = %3230, %3228
  br label %3232

3232:                                             ; preds = %3231, %3152
  %3233 = load i1, ptr %441, align 1
  br i1 %3233, label %3234, label %3235

3234:                                             ; preds = %3232
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #9
  br label %3235

3235:                                             ; preds = %3234, %3232
  br label %3236

3236:                                             ; preds = %3235, %3148
  %3237 = load i1, ptr %440, align 1
  br i1 %3237, label %3238, label %3239

3238:                                             ; preds = %3236
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %438) #9
  br label %3239

3239:                                             ; preds = %3238, %3236
  %3240 = load i1, ptr %439, align 1
  br i1 %3240, label %3241, label %3242

3241:                                             ; preds = %3239
  call void @llvm.lifetime.end.p0(i64 1, ptr %438) #9
  br label %3242

3242:                                             ; preds = %3241, %3239
  %3243 = load i1, ptr %437, align 1
  br i1 %3243, label %3244, label %3245

3244:                                             ; preds = %3242
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #9
  br label %3245

3245:                                             ; preds = %3244, %3242
  %3246 = load i1, ptr %435, align 1
  br i1 %3246, label %3247, label %3248

3247:                                             ; preds = %3245
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #9
  br label %3248

3248:                                             ; preds = %3247, %3245
  br label %3249

3249:                                             ; preds = %3248, %3144
  %3250 = load i1, ptr %434, align 1
  br i1 %3250, label %3251, label %3252

3251:                                             ; preds = %3249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #9
  br label %3252

3252:                                             ; preds = %3251, %3249
  br label %3253

3253:                                             ; preds = %3252, %3140
  %3254 = load i1, ptr %433, align 1
  br i1 %3254, label %3255, label %3256

3255:                                             ; preds = %3253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %428) #9
  br label %3256

3256:                                             ; preds = %3255, %3253
  br label %3257

3257:                                             ; preds = %3256, %3136
  %3258 = load i1, ptr %432, align 1
  br i1 %3258, label %3259, label %3260

3259:                                             ; preds = %3257
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %430) #9
  br label %3260

3260:                                             ; preds = %3259, %3257
  %3261 = load i1, ptr %431, align 1
  br i1 %3261, label %3262, label %3263

3262:                                             ; preds = %3260
  call void @llvm.lifetime.end.p0(i64 1, ptr %430) #9
  br label %3263

3263:                                             ; preds = %3262, %3260
  %3264 = load i1, ptr %429, align 1
  br i1 %3264, label %3265, label %3266

3265:                                             ; preds = %3263
  call void @llvm.lifetime.end.p0(i64 32, ptr %428) #9
  br label %3266

3266:                                             ; preds = %3265, %3263
  %3267 = load i1, ptr %427, align 1
  br i1 %3267, label %3268, label %3269

3268:                                             ; preds = %3266
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %419) #9
  br label %3269

3269:                                             ; preds = %3268, %3266
  br label %3270

3270:                                             ; preds = %3269, %3132
  %3271 = load i1, ptr %426, align 1
  br i1 %3271, label %3272, label %3273

3272:                                             ; preds = %3270
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %421) #9
  br label %3273

3273:                                             ; preds = %3272, %3270
  br label %3274

3274:                                             ; preds = %3273, %3128
  %3275 = load i1, ptr %425, align 1
  br i1 %3275, label %3276, label %3277

3276:                                             ; preds = %3274
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %423) #9
  br label %3277

3277:                                             ; preds = %3276, %3274
  %3278 = load i1, ptr %424, align 1
  br i1 %3278, label %3279, label %3280

3279:                                             ; preds = %3277
  call void @llvm.lifetime.end.p0(i64 1, ptr %423) #9
  br label %3280

3280:                                             ; preds = %3279, %3277
  %3281 = load i1, ptr %422, align 1
  br i1 %3281, label %3282, label %3283

3282:                                             ; preds = %3280
  call void @llvm.lifetime.end.p0(i64 32, ptr %421) #9
  br label %3283

3283:                                             ; preds = %3282, %3280
  %3284 = load i1, ptr %420, align 1
  br i1 %3284, label %3285, label %3286

3285:                                             ; preds = %3283
  call void @llvm.lifetime.end.p0(i64 32, ptr %419) #9
  br label %3286

3286:                                             ; preds = %3285, %3283
  %3287 = load i1, ptr %418, align 1
  br i1 %3287, label %3288, label %3289

3288:                                             ; preds = %3286
  call void @llvm.lifetime.end.p0(i64 32, ptr %417) #9
  br label %3289

3289:                                             ; preds = %3288, %3286
  %3290 = load i1, ptr %416, align 1
  br i1 %3290, label %3291, label %3292

3291:                                             ; preds = %3289
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #9
  br label %3292

3292:                                             ; preds = %3291, %3289
  %3293 = load i1, ptr %414, align 1
  br i1 %3293, label %3294, label %3295

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

3295:                                             ; preds = %3294, %3292
  %3296 = load i1, ptr %412, align 1
  br i1 %3296, label %3297, label %3298

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

3298:                                             ; preds = %3297, %3295
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #9
  br label %3302

3299:                                             ; preds = %3121
  %3300 = load double, ptr %351, align 8, !tbaa !9
  store double %3300, ptr %7, align 8
  store i32 1, ptr %237, align 4
  br label %3301

3301:                                             ; preds = %3299, %3125
  call void @llvm.lifetime.end.p0(i64 8, ptr %408) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %353) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %352) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %351) #9
  br label %3303

3302:                                             ; preds = %3298, %2893
  call void @llvm.lifetime.end.p0(i64 8, ptr %353) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %352) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %351) #9
  br label %3305

3303:                                             ; preds = %3301, %2499
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #9
  %3304 = load double, ptr %7, align 8
  ret double %3304

3305:                                             ; preds = %3302, %2440, %1738
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %179) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #9
  br label %3306

3306:                                             ; preds = %3305, %1399
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #9
  br label %3307

3307:                                             ; preds = %3306, %1071, %900
  %3308 = load ptr, ptr %30, align 8
  %3309 = load i32, ptr %31, align 4
  %3310 = insertvalue { ptr, i32 } poison, ptr %3308, 0
  %3311 = insertvalue { ptr, i32 } %3310, i32 %3309, 1
  resume { ptr, i32 } %3311
}

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #6

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z17dimLessCornerAreadd(double noundef, double noundef) #2

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, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !15, i64 88}
!14 = !{!"_ZTS4Apex", !12, i64 8, !10, i64 16, !10, i64 24, !6, i64 32, !15, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !12, i64 80, !12, i64 81, !12, i64 82, !12, i64 83, !16, i64 88}
!15 = !{!"int", !7, i64 0}
!16 = !{!"_ZTSSt4pairIidE", !15, i64 0, !10, i64 8}
!17 = !{!15, !15, i64 0}
!18 = !{!14, !12, i64 82}
!19 = !{i8 0, i8 2}
!20 = !{}
!21 = !{!14, !12, i64 83}
!22 = !{!14, !10, i64 48}
!23 = !{!24, !6, i64 128}
!24 = !{!"_ZTS9LayerApex", !14, i64 0, !15, i64 104, !6, i64 112, !10, i64 120, !6, i64 128, !10, i64 136}
!25 = !{!24, !6, i64 112}
!26 = !{!24, !10, i64 136}
!27 = !{!24, !10, i64 120}
!28 = !{!24, !15, i64 104}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!16, !15, i64 0}


; 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
@_ZN4Apex2PIE = 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
@.str.9 = external hidden unnamed_addr constant [3 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
@_ZSt4cerr = external global %"class.std::basic_ostream", align 8
@.str.22 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [44 x i8], align 1
@__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb = external hidden unnamed_addr constant [31 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [132 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [13 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: 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 @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) 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 @_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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef double @_ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb(ptr nocapture noundef nonnull align 8 dereferenceable(144) %0, double noundef %1, double noundef %2, double noundef %3, double noundef %4, i1 noundef zeroext %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 %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %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 i32, align 4
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::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 i32, align 4
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::allocator", align 1
  %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 i32, align 4
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator", align 1
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::allocator", align 1
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::allocator", align 1
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator", align 1
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::allocator", align 1
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca i32, align 4
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::allocator", align 1
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::allocator", align 1
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.std::__cxx11::basic_string", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::allocator", align 1
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator", align 1
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::allocator", align 1
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca i32, align 4
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::allocator", align 1
  %121 = alloca %"class.std::__cxx11::basic_string", align 8
  %122 = alloca %"class.std::allocator", align 1
  %123 = alloca double, align 8
  %124 = alloca %"class.std::__cxx11::basic_string", align 8
  %125 = alloca %"class.std::__cxx11::basic_string", align 8
  %126 = alloca %"class.std::__cxx11::basic_string", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.std::__cxx11::basic_string", align 8
  %129 = alloca %"class.std::__cxx11::basic_string", align 8
  %130 = alloca %"class.std::__cxx11::basic_string", align 8
  %131 = alloca %"class.std::allocator", align 1
  %132 = alloca %"class.std::__cxx11::basic_string", align 8
  %133 = alloca %"class.std::allocator", align 1
  %134 = alloca %"class.std::__cxx11::basic_string", align 8
  %135 = alloca %"class.std::allocator", align 1
  %136 = alloca %"class.std::__cxx11::basic_string", align 8
  %137 = alloca i32, align 4
  %138 = alloca %"class.std::__cxx11::basic_string", align 8
  %139 = alloca %"class.std::__cxx11::basic_string", align 8
  %140 = alloca %"class.std::allocator", align 1
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %"class.std::allocator", align 1
  %143 = alloca double, align 8
  %144 = alloca double, align 8
  %145 = alloca %"class.std::__cxx11::basic_string", align 8
  %146 = alloca %"class.std::__cxx11::basic_string", align 8
  %147 = alloca %"class.std::__cxx11::basic_string", align 8
  %148 = alloca %"class.std::__cxx11::basic_string", align 8
  %149 = alloca %"class.std::__cxx11::basic_string", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"class.std::__cxx11::basic_string", align 8
  %152 = alloca %"class.std::allocator", align 1
  %153 = alloca %"class.std::__cxx11::basic_string", align 8
  %154 = alloca %"class.std::allocator", align 1
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %"class.std::allocator", align 1
  %157 = alloca %"class.std::__cxx11::basic_string", align 8
  %158 = alloca i32, align 4
  %159 = alloca %"class.std::__cxx11::basic_string", align 8
  %160 = alloca %"class.std::__cxx11::basic_string", align 8
  %161 = alloca %"class.std::allocator", align 1
  %162 = alloca %"class.std::__cxx11::basic_string", align 8
  %163 = alloca %"class.std::allocator", align 1
  %164 = getelementptr inbounds i8, ptr %0, i64 88
  %165 = load i32, ptr %164, align 8, !tbaa !5
  %166 = icmp sgt i32 %165, -1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #9
  br i1 %166, label %167, label %182

167:                                              ; preds = %6
  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 %168 unwind label %210

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

169:                                              ; preds = %168
  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__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %170 unwind label %214

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

171:                                              ; preds = %170
  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 %172 unwind label %218

172:                                              ; preds = %171
  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 %173 unwind label %220

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

174:                                              ; preds = %173
  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 %175 unwind label %224

175:                                              ; preds = %174
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  store i32 450, ptr %20, align 4, !tbaa !14
  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 %176 unwind label %226

176:                                              ; preds = %175
  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 %177 unwind label %228

177:                                              ; preds = %176
  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 %178 unwind label %230

178:                                              ; preds = %177
  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.29, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %179 unwind label %232

179:                                              ; preds = %178
  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 %180 unwind label %234

180:                                              ; preds = %179
  %181 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %7, ptr noundef nonnull %21, i32 noundef 0)
          to label %.critedge1174 unwind label %236

182:                                              ; preds = %6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #9
  br label %.critedge1195

.critedge1174:                                    ; preds = %180
  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 %.critedge1195

.critedge1195:                                    ; preds = %182, %.critedge1174
  %183 = getelementptr inbounds i8, ptr %0, i64 82
  %184 = load i8, ptr %183, align 2, !tbaa !15, !range !16, !noundef !17
  %185 = trunc nuw i8 %184 to i1
  %186 = getelementptr inbounds i8, ptr %0, i64 83
  %187 = load i8, ptr %186, align 1, !tbaa !18, !range !16, !noundef !17
  %188 = trunc nuw i8 %187 to i1
  br i1 %185, label %189, label %190

189:                                              ; preds = %.critedge1195
  br i1 %188, label %.critedge1231.thread, label %192

190:                                              ; preds = %.critedge1195
  br i1 %188, label %192, label %.critedge1231.thread1473

.critedge1231.thread1473:                         ; preds = %190
  %191 = getelementptr inbounds i8, ptr %0, i64 48
  br label %297

192:                                              ; preds = %190, %189
  %193 = getelementptr inbounds i8, ptr %0, i64 83
  %194 = trunc nuw i8 %187 to i1
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #9
  br i1 %194, label %.thread1450, label %195

195:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #9
  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 1, ptr nonnull %33) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %196 unwind label %251

196:                                              ; preds = %195
  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.1)
          to label %197 unwind label %253

197:                                              ; preds = %196
  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 @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %198 unwind label %255

198:                                              ; preds = %197
  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) %34)
          to label %199 unwind label %257

199:                                              ; preds = %198
  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.2)
          to label %200 unwind label %259

200:                                              ; preds = %199
  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 @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %201 unwind label %261

201:                                              ; preds = %200
  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) %36)
          to label %202 unwind label %263

202:                                              ; preds = %201
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.4)
          to label %203 unwind label %265

203:                                              ; preds = %202
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #9
  store i32 455, ptr %39, align 4, !tbaa !14
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %204 unwind label %267

204:                                              ; preds = %203
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %205 unwind label %269

205:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %206 unwind label %271

206:                                              ; preds = %205
  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.34, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %207 unwind label %273

207:                                              ; preds = %206
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %208 unwind label %275

208:                                              ; preds = %207
  %209 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %26, ptr noundef nonnull %40, i32 noundef 0)
          to label %.critedge1231 unwind label %277

.thread1450:                                      ; preds = %192
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #9
  br label %.critedge1231.thread

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

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

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

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

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

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

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

224:                                              ; preds = %174
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %243

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

228:                                              ; preds = %176
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %241

230:                                              ; preds = %177
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %240

232:                                              ; preds = %178
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %239

234:                                              ; preds = %179
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %238

236:                                              ; preds = %180
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %238

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

239:                                              ; preds = %232, %238
  %.pn.pn = phi { ptr, i32 } [ %.pn, %238 ], [ %233, %232 ]
  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 %240

240:                                              ; preds = %230, %239
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %239 ], [ %231, %230 ]
  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 %241

241:                                              ; preds = %228, %240
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %240 ], [ %229, %228 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  br label %242

242:                                              ; preds = %241, %226
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %241 ], [ %227, %226 ]
  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 %243

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

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

245:                                              ; preds = %220, %244
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %244 ], [ %221, %220 ]
  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 %246

246:                                              ; preds = %218, %245
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %245 ], [ %219, %218 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %247

247:                                              ; preds = %216, %246
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %246 ], [ %217, %216 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %248

248:                                              ; preds = %214, %247
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %247 ], [ %215, %214 ]
  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 %249

249:                                              ; preds = %212, %248
  %.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, %248 ], [ %213, %212 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br label %250

250:                                              ; preds = %210, %249
  %.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, %249 ], [ %211, %210 ]
  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 %967

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

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

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

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

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

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

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

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

267:                                              ; preds = %203
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %283

269:                                              ; preds = %204
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %282

271:                                              ; preds = %205
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %281

273:                                              ; preds = %206
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %280

275:                                              ; preds = %207
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %279

277:                                              ; preds = %208
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #9
  br label %279

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

280:                                              ; preds = %273, %279
  %.pn1059.pn = phi { ptr, i32 } [ %.pn1059, %279 ], [ %274, %273 ]
  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) %41) #9
  br label %281

281:                                              ; preds = %271, %280
  %.pn1059.pn.pn = phi { ptr, i32 } [ %.pn1059.pn, %280 ], [ %272, %271 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  br label %282

282:                                              ; preds = %269, %281
  %.pn1059.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn, %281 ], [ %270, %269 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %283

283:                                              ; preds = %282, %267
  %.pn1059.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn, %282 ], [ %268, %267 ]
  call void @llvm.lifetime.end.p0(i64 4, 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) %27) #9
  br label %284

284:                                              ; preds = %265, %283
  %.pn1059.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn.pn, %283 ], [ %266, %265 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %285

285:                                              ; preds = %263, %284
  %.pn1059.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn.pn.pn, %284 ], [ %264, %263 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %286

286:                                              ; preds = %261, %285
  %.pn1059.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn.pn.pn.pn, %285 ], [ %262, %261 ]
  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) %29) #9
  br label %287

287:                                              ; preds = %259, %286
  %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn.pn.pn.pn.pn, %286 ], [ %260, %259 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %288

288:                                              ; preds = %257, %287
  %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn, %287 ], [ %258, %257 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %289

289:                                              ; preds = %255, %288
  %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn.pn, %288 ], [ %256, %255 ]
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %290

290:                                              ; preds = %253, %289
  %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %289 ], [ %254, %253 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %291

291:                                              ; preds = %251, %290
  %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %290 ], [ %252, %251 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  call void @llvm.lifetime.end.p0(i64 1, 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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  br label %967

.critedge1231.thread:                             ; preds = %189, %.thread1450
  %292 = getelementptr inbounds i8, ptr %0, i64 48
  %293 = load double, ptr %292, align 8
  br label %297

.critedge1231:                                    ; preds = %208
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #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) %41) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @llvm.lifetime.end.p0(i64 4, 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) %27) #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) %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) %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) %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 @_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 @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #9
  call void @llvm.lifetime.end.p0(i64 1, 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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #9
  %.pre = load i8, ptr %193, align 1, !tbaa !18, !range !16
  %.pre.fr = freeze i8 %.pre
  %.pre1470 = trunc i8 %.pre.fr to i1
  %294 = getelementptr inbounds i8, ptr %0, i64 48
  br i1 %.pre1470, label %295, label %297

295:                                              ; preds = %.critedge1231
  %296 = load double, ptr %294, align 8
  br label %297

297:                                              ; preds = %.critedge1231.thread, %.critedge1231.thread1473, %.critedge1231, %295
  %298 = phi ptr [ %294, %.critedge1231 ], [ %191, %.critedge1231.thread1473 ], [ %292, %.critedge1231.thread ], [ %294, %295 ]
  %299 = phi double [ %1, %.critedge1231 ], [ %1, %.critedge1231.thread1473 ], [ %293, %.critedge1231.thread ], [ %296, %295 ]
  %300 = getelementptr inbounds i8, ptr %0, i64 128
  %301 = load ptr, ptr %300, align 8, !tbaa !19
  %302 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %301)
  br i1 %302, label %303, label %306

303:                                              ; preds = %297
  %304 = load ptr, ptr %300, align 8, !tbaa !19
  %305 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %304)
  br label %306

306:                                              ; preds = %297, %303
  %307 = phi double [ %305, %303 ], [ %1, %297 ]
  %308 = fcmp uge double %299, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %58) #9
  br i1 %308, label %309, label %324

309:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #9
  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 1, ptr nonnull %52) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %310 unwind label %332

310:                                              ; preds = %309
  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.1)
          to label %311 unwind label %334

311:                                              ; preds = %310
  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 @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %312 unwind label %336

312:                                              ; preds = %311
  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) %53)
          to label %313 unwind label %338

313:                                              ; preds = %312
  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.2)
          to label %314 unwind label %340

314:                                              ; preds = %313
  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 @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %315 unwind label %342

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

316:                                              ; preds = %315
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.4)
          to label %317 unwind label %346

317:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #9
  store i32 464, ptr %58, align 4, !tbaa !14
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 4 dereferenceable(4) %58)
          to label %318 unwind label %348

318:                                              ; preds = %317
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %319 unwind label %350

319:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %320 unwind label %352

320:                                              ; preds = %319
  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.35, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %321 unwind label %354

321:                                              ; preds = %320
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %322 unwind label %356

322:                                              ; preds = %321
  %323 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %45, ptr noundef nonnull %59, i32 noundef 0)
          to label %.critedge1246 unwind label %358

324:                                              ; preds = %306
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %58) #9
  br label %.critedge1267

.critedge1246:                                    ; preds = %322
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #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) %60) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  call void @llvm.lifetime.end.p0(i64 4, 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) %46) #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) %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) %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) %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 @_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 @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, 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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  br label %.critedge1267

.critedge1267:                                    ; preds = %324, %.critedge1246
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #9
  %325 = getelementptr inbounds i8, ptr %0, i64 112
  %326 = load ptr, ptr %325, align 8, !tbaa !21
  %327 = call noundef double @_ZNK8VoidElem16minInitRecCntAngEv(ptr noundef nonnull align 8 dereferenceable(184) %326)
  store double %327, ptr %65, align 8, !tbaa !22
  %328 = load ptr, ptr %300, align 8, !tbaa !19
  %329 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %328)
  br i1 %329, label %330, label %373

330:                                              ; preds = %.critedge1267
  %331 = load ptr, ptr %300, align 8, !tbaa !19
  call void @_ZNK10CornerApex18getCApexDistConAngERdS0_dddbbb(ptr noundef nonnull align 8 dereferenceable(144) %331, ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %65, double noundef %307, double noundef %3, double noundef %4, i1 noundef zeroext true, i1 noundef zeroext false, i1 noundef zeroext false)
  br label %373

332:                                              ; preds = %309
  %333 = landingpad { ptr, i32 }
          cleanup
  br label %372

334:                                              ; preds = %310
  %335 = landingpad { ptr, i32 }
          cleanup
  br label %371

336:                                              ; preds = %311
  %337 = landingpad { ptr, i32 }
          cleanup
  br label %370

338:                                              ; preds = %312
  %339 = landingpad { ptr, i32 }
          cleanup
  br label %369

340:                                              ; preds = %313
  %341 = landingpad { ptr, i32 }
          cleanup
  br label %368

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

344:                                              ; preds = %315
  %345 = landingpad { ptr, i32 }
          cleanup
  br label %366

346:                                              ; preds = %316
  %347 = landingpad { ptr, i32 }
          cleanup
  br label %365

348:                                              ; preds = %317
  %349 = landingpad { ptr, i32 }
          cleanup
  br label %364

350:                                              ; preds = %318
  %351 = landingpad { ptr, i32 }
          cleanup
  br label %363

352:                                              ; preds = %319
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %362

354:                                              ; preds = %320
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %361

356:                                              ; preds = %321
  %357 = landingpad { ptr, i32 }
          cleanup
  br label %360

358:                                              ; preds = %322
  %359 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %360

360:                                              ; preds = %356, %358
  %.pn1073 = phi { ptr, i32 } [ %359, %358 ], [ %357, %356 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %361

361:                                              ; preds = %354, %360
  %.pn1073.pn = phi { ptr, i32 } [ %.pn1073, %360 ], [ %355, %354 ]
  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) %60) #9
  br label %362

362:                                              ; preds = %352, %361
  %.pn1073.pn.pn = phi { ptr, i32 } [ %.pn1073.pn, %361 ], [ %353, %352 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %363

363:                                              ; preds = %350, %362
  %.pn1073.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn, %362 ], [ %351, %350 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %364

364:                                              ; preds = %363, %348
  %.pn1073.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn.pn, %363 ], [ %349, %348 ]
  call void @llvm.lifetime.end.p0(i64 4, 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) %46) #9
  br label %365

365:                                              ; preds = %346, %364
  %.pn1073.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn.pn.pn, %364 ], [ %347, %346 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %366

366:                                              ; preds = %344, %365
  %.pn1073.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn.pn.pn.pn, %365 ], [ %345, %344 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %367

367:                                              ; preds = %342, %366
  %.pn1073.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn.pn.pn.pn.pn, %366 ], [ %343, %342 ]
  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) %48) #9
  br label %368

368:                                              ; preds = %340, %367
  %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn.pn.pn.pn.pn.pn, %367 ], [ %341, %340 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %369

369:                                              ; preds = %338, %368
  %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn, %368 ], [ %339, %338 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %370

370:                                              ; preds = %336, %369
  %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn.pn, %369 ], [ %337, %336 ]
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %371

371:                                              ; preds = %334, %370
  %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %370 ], [ %335, %334 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  br label %372

372:                                              ; preds = %332, %371
  %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %371 ], [ %333, %332 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  call void @llvm.lifetime.end.p0(i64 1, 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
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  br label %967

373:                                              ; preds = %330, %.critedge1267
  %374 = fdiv double %4, %307
  %375 = load double, ptr %65, align 8, !tbaa !22
  %376 = call double @cos(double noundef %375) #9
  %377 = call double @sin(double noundef %3) #9
  %378 = fdiv double %376, %377
  %379 = fadd double %378, -1.000000e+00
  %380 = fmul double %374, %379
  %381 = getelementptr inbounds i8, ptr %0, i64 136
  %382 = load double, ptr %381, align 8, !tbaa !23
  %383 = call double @cos(double noundef %382) #9
  %384 = call double @sin(double noundef %3) #9
  %385 = insertelement <2 x double> poison, double %4, i64 0
  %386 = insertelement <2 x double> %385, double %383, i64 1
  %387 = insertelement <2 x double> poison, double %299, i64 0
  %388 = insertelement <2 x double> %387, double %384, i64 1
  %389 = fdiv <2 x double> %386, %388
  %390 = extractelement <2 x double> %389, i64 1
  %391 = fadd double %390, 1.000000e+00
  %392 = extractelement <2 x double> %389, i64 0
  %393 = fmul double %392, %391
  %394 = fcmp ule double %393, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %79) #9
  br i1 %394, label %395, label %410

395:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #9
  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 1, ptr nonnull %73) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %73)
          to label %396 unwind label %426

396:                                              ; preds = %395
  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.1)
          to label %397 unwind label %428

397:                                              ; preds = %396
  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 @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %398 unwind label %430

398:                                              ; preds = %397
  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) %74)
          to label %399 unwind label %432

399:                                              ; preds = %398
  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.2)
          to label %400 unwind label %434

400:                                              ; preds = %399
  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 @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %77)
          to label %401 unwind label %436

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

402:                                              ; preds = %401
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.4)
          to label %403 unwind label %440

403:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %78) #9
  store i32 472, ptr %79, align 4, !tbaa !14
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 4 dereferenceable(4) %79)
          to label %404 unwind label %442

404:                                              ; preds = %403
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %405 unwind label %444

405:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %82) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %406 unwind label %446

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.36, ptr noundef nonnull align 1 dereferenceable(1) %84)
          to label %407 unwind label %448

407:                                              ; preds = %406
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %408 unwind label %450

408:                                              ; preds = %407
  %409 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %66, ptr noundef nonnull %80, i32 noundef 0)
          to label %.critedge1282 unwind label %452

410:                                              ; preds = %373
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #9
  br label %.critedge1303

.critedge1282:                                    ; preds = %408
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #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) %81) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  call void @llvm.lifetime.end.p0(i64 4, 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) %67) #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) %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) %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) %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 @_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 @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #9
  call void @llvm.lifetime.end.p0(i64 1, 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 32, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #9
  br label %.critedge1303

.critedge1303:                                    ; preds = %410, %.critedge1282
  %411 = fsub double %393, %380
  %412 = load double, ptr @_ZN4Apex15NEG_ALMOST_ZEROE, align 8, !tbaa !22
  %413 = fcmp olt double %411, %412
  %414 = fadd double %307, 1.000000e-01
  %415 = fcmp ogt double %414, %1
  %or.cond = and i1 %415, %413
  br i1 %or.cond, label %416, label %696

416:                                              ; preds = %.critedge1303
  %417 = getelementptr inbounds i8, ptr %0, i64 120
  %418 = load double, ptr %417, align 8, !tbaa !24
  %419 = load i32, ptr @_ZN4Apex7MAX_ITRE, align 4, !tbaa !14
  %.not1465 = icmp sgt i32 %419, 0
  br i1 %.not1465, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %416
  %420 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8, !tbaa !22
  %421 = fadd double %299, %420
  %422 = fdiv double %4, %421
  %423 = load double, ptr @_ZN4Apex7EPSILONE, align 8, !tbaa !22
  br label %467

424:                                              ; preds = %467
  %425 = add nuw nsw i32 %.08041467, 1
  %exitcond.not = icmp eq i32 %425, %419
  br i1 %exitcond.not, label %._crit_edge, label %467, !llvm.loop !25

426:                                              ; preds = %395
  %427 = landingpad { ptr, i32 }
          cleanup
  br label %466

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

430:                                              ; preds = %397
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %464

432:                                              ; preds = %398
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %463

434:                                              ; preds = %399
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %462

436:                                              ; preds = %400
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %461

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

440:                                              ; preds = %402
  %441 = landingpad { ptr, i32 }
          cleanup
  br label %459

442:                                              ; preds = %403
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %458

444:                                              ; preds = %404
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %457

446:                                              ; preds = %405
  %447 = landingpad { ptr, i32 }
          cleanup
  br label %456

448:                                              ; preds = %406
  %449 = landingpad { ptr, i32 }
          cleanup
  br label %455

450:                                              ; preds = %407
  %451 = landingpad { ptr, i32 }
          cleanup
  br label %454

452:                                              ; preds = %408
  %453 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #9
  br label %454

454:                                              ; preds = %450, %452
  %.pn1087 = phi { ptr, i32 } [ %453, %452 ], [ %451, %450 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #9
  br label %455

455:                                              ; preds = %448, %454
  %.pn1087.pn = phi { ptr, i32 } [ %.pn1087, %454 ], [ %449, %448 ]
  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) %81) #9
  br label %456

456:                                              ; preds = %446, %455
  %.pn1087.pn.pn = phi { ptr, i32 } [ %.pn1087.pn, %455 ], [ %447, %446 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %82) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  br label %457

457:                                              ; preds = %444, %456
  %.pn1087.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn, %456 ], [ %445, %444 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %458

458:                                              ; preds = %457, %442
  %.pn1087.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn.pn, %457 ], [ %443, %442 ]
  call void @llvm.lifetime.end.p0(i64 4, 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) %67) #9
  br label %459

459:                                              ; preds = %440, %458
  %.pn1087.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn.pn.pn, %458 ], [ %441, %440 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %460

460:                                              ; preds = %438, %459
  %.pn1087.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn.pn.pn.pn, %459 ], [ %439, %438 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %461

461:                                              ; preds = %436, %460
  %.pn1087.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn.pn.pn.pn.pn, %460 ], [ %437, %436 ]
  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) %69) #9
  br label %462

462:                                              ; preds = %434, %461
  %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn.pn.pn.pn.pn.pn, %461 ], [ %435, %434 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %463

463:                                              ; preds = %432, %462
  %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn, %462 ], [ %433, %432 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  br label %464

464:                                              ; preds = %430, %463
  %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn.pn, %463 ], [ %431, %430 ]
  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 @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  br label %465

465:                                              ; preds = %428, %464
  %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %464 ], [ %429, %428 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %466

466:                                              ; preds = %426, %465
  %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %465 ], [ %427, %426 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %73) #9
  call void @llvm.lifetime.end.p0(i64 1, 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 32, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #9
  br label %966

467:                                              ; preds = %.lr.ph, %424
  %.08041467 = phi i32 [ 0, %.lr.ph ], [ %425, %424 ]
  %.09141466 = phi double [ %422, %.lr.ph ], [ %513, %424 ]
  %468 = load double, ptr %64, align 8, !tbaa !22
  %469 = call double @sin(double noundef %3) #9
  %470 = fmul double %468, %469
  %471 = fdiv double %470, %.09141466
  %472 = call double @acos(double noundef %471) #9
  %473 = fsub double %472, %3
  %474 = call double @sin(double noundef %3) #9
  %475 = fmul double %418, %474
  %476 = fdiv double %475, %.09141466
  %477 = call double @acos(double noundef %476) #9
  %478 = fadd double %477, %3
  %479 = load double, ptr %64, align 8, !tbaa !22
  %480 = call double @sin(double noundef %3) #9
  %481 = fadd double %473, %3
  %482 = call double @sin(double noundef %481) #9
  %483 = fmul double %.09141466, %482
  %484 = fmul double %.09141466, %483
  %485 = call double @sin(double noundef %3) #9
  %486 = fmul double %418, %485
  %487 = fsub double %478, %3
  %488 = call double @sin(double noundef %487) #9
  %489 = fmul double %.09141466, %488
  %490 = fmul double %.09141466, %489
  %491 = fdiv double %486, %490
  %492 = call double @cos(double noundef %473) #9
  %493 = call double @cos(double noundef %478) #9
  %494 = fsub double %492, %493
  %495 = call double @sin(double noundef %3) #9
  %496 = call double @sin(double noundef %478) #9
  %497 = call double @sin(double noundef %473) #9
  %498 = fneg double %479
  %499 = fmul double %480, %498
  %500 = fdiv double %499, %484
  %501 = fmul double %500, %497
  %502 = call double @llvm.fmuladd.f64(double %491, double %496, double %501)
  %503 = call double @sin(double noundef %3) #9
  %504 = insertelement <2 x double> poison, double %494, i64 0
  %505 = insertelement <2 x double> %504, double %502, i64 1
  %506 = insertelement <2 x double> poison, double %495, i64 0
  %507 = insertelement <2 x double> %506, double %503, i64 1
  %508 = fdiv <2 x double> %505, %507
  %509 = extractelement <2 x double> %508, i64 0
  %510 = fadd double %509, -2.000000e+00
  %511 = extractelement <2 x double> %508, i64 1
  %512 = fdiv double %510, %511
  %513 = fsub double %.09141466, %512
  %514 = fsub double %513, %.09141466
  %515 = fdiv double %514, %513
  %516 = call double @llvm.fabs.f64(double %515)
  %517 = fcmp uge double %516, %423
  br i1 %517, label %424, label %518

518:                                              ; preds = %467
  %519 = load double, ptr %65, align 8, !tbaa !22
  %520 = call double @cos(double noundef %519) #9
  %521 = call double @sin(double noundef %3) #9
  %522 = fdiv double %520, %521
  %523 = fadd double %522, -1.000000e+00
  %524 = load double, ptr %381, align 8, !tbaa !23
  %525 = call double @cos(double noundef %524) #9
  %526 = call double @sin(double noundef %3) #9
  %527 = fdiv double %525, %526
  %528 = fadd double %527, 1.000000e+00
  %529 = fneg double %513
  %530 = fmul double %528, %529
  %531 = call double @llvm.fmuladd.f64(double %513, double %523, double %530)
  %532 = call double @llvm.fabs.f64(double %531)
  %533 = fcmp uge double %532, %423
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %98) #9
  br i1 %533, label %534, label %549

534:                                              ; preds = %518
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %86) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %92) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %535 unwind label %568

535:                                              ; preds = %534
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull align 8 dereferenceable(32) %91, ptr noundef nonnull @.str.1)
          to label %536 unwind label %570

536:                                              ; preds = %535
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %94) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %537 unwind label %572

537:                                              ; preds = %536
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 8 dereferenceable(32) %93)
          to label %538 unwind label %574

538:                                              ; preds = %537
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull @.str.2)
          to label %539 unwind label %576

539:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %96) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %96)
          to label %540 unwind label %578

540:                                              ; preds = %539
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(32) %95)
          to label %541 unwind label %580

541:                                              ; preds = %540
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull @.str.4)
          to label %542 unwind label %582

542:                                              ; preds = %541
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #9
  store i32 490, ptr %98, align 4, !tbaa !14
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %97, ptr noundef nonnull align 4 dereferenceable(4) %98)
          to label %543 unwind label %584

543:                                              ; preds = %542
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %544 unwind label %586

544:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %100) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %101) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %101)
          to label %545 unwind label %588

545:                                              ; preds = %544
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %103) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %102, ptr noundef nonnull @.str.37, ptr noundef nonnull align 1 dereferenceable(1) %103)
          to label %546 unwind label %590

546:                                              ; preds = %545
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef nonnull align 8 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %547 unwind label %592

547:                                              ; preds = %546
  %548 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %85, ptr noundef nonnull %99, i32 noundef 0)
          to label %.critedge1319 unwind label %594

549:                                              ; preds = %518
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #9
  br label %.critedge1340

.critedge1319:                                    ; preds = %547
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %101) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #9
  br label %.critedge1340

.critedge1340:                                    ; preds = %549, %.critedge1319
  %550 = fdiv double %4, %513
  %551 = fcmp uge double %550, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %117) #9
  br i1 %551, label %552, label %567

552:                                              ; preds = %.critedge1340
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %105) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %106) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %107) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %111) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %111)
          to label %553 unwind label %609

553:                                              ; preds = %552
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull @.str.1)
          to label %554 unwind label %611

554:                                              ; preds = %553
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %113) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %555 unwind label %613

555:                                              ; preds = %554
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %556 unwind label %615

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

557:                                              ; preds = %556
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %114) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %115) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %114, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %115)
          to label %558 unwind label %619

558:                                              ; preds = %557
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 8 dereferenceable(32) %107, ptr noundef nonnull align 8 dereferenceable(32) %114)
          to label %559 unwind label %621

559:                                              ; preds = %558
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull @.str.4)
          to label %560 unwind label %623

560:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %116) #9
  store i32 491, ptr %117, align 4, !tbaa !14
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr noundef nonnull align 4 dereferenceable(4) %117)
          to label %561 unwind label %625

561:                                              ; preds = %560
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(32) %116)
          to label %562 unwind label %627

562:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %119) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %563 unwind label %629

563:                                              ; preds = %562
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %121) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %122) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %122) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %121, ptr noundef nonnull @.str.38, ptr noundef nonnull align 1 dereferenceable(1) %122)
          to label %564 unwind label %631

564:                                              ; preds = %563
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %118, ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %565 unwind label %633

565:                                              ; preds = %564
  %566 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %104, ptr noundef nonnull %118, i32 noundef 0)
          to label %.critedge1355 unwind label %635

567:                                              ; preds = %.critedge1340
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %117) #9
  br label %.thread1460

.critedge1355:                                    ; preds = %565
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %122) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %122) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #9
  br label %.thread1460

568:                                              ; preds = %534
  %569 = landingpad { ptr, i32 }
          cleanup
  br label %608

570:                                              ; preds = %535
  %571 = landingpad { ptr, i32 }
          cleanup
  br label %607

572:                                              ; preds = %536
  %573 = landingpad { ptr, i32 }
          cleanup
  br label %606

574:                                              ; preds = %537
  %575 = landingpad { ptr, i32 }
          cleanup
  br label %605

576:                                              ; preds = %538
  %577 = landingpad { ptr, i32 }
          cleanup
  br label %604

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

580:                                              ; preds = %540
  %581 = landingpad { ptr, i32 }
          cleanup
  br label %602

582:                                              ; preds = %541
  %583 = landingpad { ptr, i32 }
          cleanup
  br label %601

584:                                              ; preds = %542
  %585 = landingpad { ptr, i32 }
          cleanup
  br label %600

586:                                              ; preds = %543
  %587 = landingpad { ptr, i32 }
          cleanup
  br label %599

588:                                              ; preds = %544
  %589 = landingpad { ptr, i32 }
          cleanup
  br label %598

590:                                              ; preds = %545
  %591 = landingpad { ptr, i32 }
          cleanup
  br label %597

592:                                              ; preds = %546
  %593 = landingpad { ptr, i32 }
          cleanup
  br label %596

594:                                              ; preds = %547
  %595 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #9
  br label %596

596:                                              ; preds = %592, %594
  %.pn1130 = phi { ptr, i32 } [ %595, %594 ], [ %593, %592 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #9
  br label %597

597:                                              ; preds = %590, %596
  %.pn1130.pn = phi { ptr, i32 } [ %.pn1130, %596 ], [ %591, %590 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %103) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %103) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #9
  br label %598

598:                                              ; preds = %588, %597
  %.pn1130.pn.pn = phi { ptr, i32 } [ %.pn1130.pn, %597 ], [ %589, %588 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %101) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %101) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %100) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  br label %599

599:                                              ; preds = %586, %598
  %.pn1130.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn, %598 ], [ %587, %586 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #9
  br label %600

600:                                              ; preds = %599, %584
  %.pn1130.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn, %599 ], [ %585, %584 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %98) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #9
  br label %601

601:                                              ; preds = %582, %600
  %.pn1130.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn, %600 ], [ %583, %582 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #9
  br label %602

602:                                              ; preds = %580, %601
  %.pn1130.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn.pn, %601 ], [ %581, %580 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #9
  br label %603

603:                                              ; preds = %578, %602
  %.pn1130.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn.pn.pn, %602 ], [ %579, %578 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %96) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %96) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #9
  br label %604

604:                                              ; preds = %576, %603
  %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn.pn.pn.pn, %603 ], [ %577, %576 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  br label %605

605:                                              ; preds = %574, %604
  %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn, %604 ], [ %575, %574 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  br label %606

606:                                              ; preds = %572, %605
  %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn.pn, %605 ], [ %573, %572 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #9
  br label %607

607:                                              ; preds = %570, %606
  %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %606 ], [ %571, %570 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #9
  br label %608

608:                                              ; preds = %568, %607
  %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %607 ], [ %569, %568 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %86) #9
  br label %966

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

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

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

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

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

619:                                              ; preds = %557
  %620 = landingpad { ptr, i32 }
          cleanup
  br label %644

621:                                              ; preds = %558
  %622 = landingpad { ptr, i32 }
          cleanup
  br label %643

623:                                              ; preds = %559
  %624 = landingpad { ptr, i32 }
          cleanup
  br label %642

625:                                              ; preds = %560
  %626 = landingpad { ptr, i32 }
          cleanup
  br label %641

627:                                              ; preds = %561
  %628 = landingpad { ptr, i32 }
          cleanup
  br label %640

629:                                              ; preds = %562
  %630 = landingpad { ptr, i32 }
          cleanup
  br label %639

631:                                              ; preds = %563
  %632 = landingpad { ptr, i32 }
          cleanup
  br label %638

633:                                              ; preds = %564
  %634 = landingpad { ptr, i32 }
          cleanup
  br label %637

635:                                              ; preds = %565
  %636 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #9
  br label %637

637:                                              ; preds = %633, %635
  %.pn1144 = phi { ptr, i32 } [ %636, %635 ], [ %634, %633 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %121) #9
  br label %638

638:                                              ; preds = %631, %637
  %.pn1144.pn = phi { ptr, i32 } [ %.pn1144, %637 ], [ %632, %631 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %122) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %122) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %121) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #9
  br label %639

639:                                              ; preds = %629, %638
  %.pn1144.pn.pn = phi { ptr, i32 } [ %.pn1144.pn, %638 ], [ %630, %629 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %119) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #9
  br label %640

640:                                              ; preds = %627, %639
  %.pn1144.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn, %639 ], [ %628, %627 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #9
  br label %641

641:                                              ; preds = %640, %625
  %.pn1144.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn.pn, %640 ], [ %626, %625 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %117) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %116) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #9
  br label %642

642:                                              ; preds = %623, %641
  %.pn1144.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn.pn.pn, %641 ], [ %624, %623 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #9
  br label %643

643:                                              ; preds = %621, %642
  %.pn1144.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn.pn.pn.pn, %642 ], [ %622, %621 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #9
  br label %644

644:                                              ; preds = %619, %643
  %.pn1144.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn.pn.pn.pn.pn, %643 ], [ %620, %619 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %115) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %115) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %114) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %107) #9
  br label %645

645:                                              ; preds = %617, %644
  %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn.pn.pn.pn.pn.pn, %644 ], [ %618, %617 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #9
  br label %646

646:                                              ; preds = %615, %645
  %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn, %645 ], [ %616, %615 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #9
  br label %647

647:                                              ; preds = %613, %646
  %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn, %646 ], [ %614, %613 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #9
  br label %648

648:                                              ; preds = %611, %647
  %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %647 ], [ %612, %611 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #9
  br label %649

649:                                              ; preds = %609, %648
  %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %648 ], [ %610, %609 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %111) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %111) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %109) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %107) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %106) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %105) #9
  br label %966

.thread1460:                                      ; preds = %567, %.critedge1355
  %650 = getelementptr inbounds i8, ptr %0, i64 104
  store i32 20, ptr %650, align 8, !tbaa !27
  br label %965

._crit_edge:                                      ; preds = %424, %416
  %651 = 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_)
  %652 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %651, ptr noundef nonnull @.str.22)
  %653 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %652, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %654 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %653, ptr noundef nonnull @.str.32)
  %655 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %654, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %656 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %655, ptr noundef nonnull @.str.39)
  %657 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %656, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %658 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %657, double noundef %1)
  %659 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %658, ptr noundef nonnull @.str.9)
  %660 = load double, ptr %298, align 8, !tbaa !28
  %661 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %659, double noundef %660)
  %662 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %661, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %663 = load double, ptr %64, align 8, !tbaa !22
  %664 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %662, double noundef %663)
  %665 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %664, ptr noundef nonnull @.str.9)
  %666 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %665, double noundef %418)
  %667 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %666, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %668 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %667, double noundef %2)
  %669 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %668, ptr noundef nonnull @.str.9)
  %670 = load double, ptr %381, align 8, !tbaa !23
  %671 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %669, double noundef %670)
  %672 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %671, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %673 = load double, ptr %65, align 8, !tbaa !22
  %674 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %672, double noundef %673)
  %675 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %674, ptr noundef nonnull @.str.9)
  %676 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %675, double noundef %3)
  %677 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %676, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %678 = load ptr, ptr %300, align 8, !tbaa !19
  %679 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %678)
  %680 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %677, double noundef %679)
  %681 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %680, ptr noundef nonnull @.str.9)
  %682 = load ptr, ptr %300, align 8, !tbaa !19
  %683 = call noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %682)
  %684 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %681, double noundef %683)
  %685 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %684, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %686 = load ptr, ptr %300, align 8, !tbaa !19
  %687 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK4Apex10trappingCLEv(ptr noundef nonnull align 8 dereferenceable(104) %686)
  %688 = load i32, ptr %687, align 8, !tbaa !29
  %689 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %685, i32 noundef %688)
  %690 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %689, ptr noundef nonnull @.str.9)
  %691 = load double, ptr %64, align 8, !tbaa !22
  %692 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %690, double noundef %691)
  %693 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %692, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %694 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %693, ptr noundef nonnull @.str.22)
  %695 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %694, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #10
  unreachable

696:                                              ; preds = %.critedge1303
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #9
  %697 = load double, ptr %64, align 8, !tbaa !22
  %698 = call double @cos(double noundef %3) #9
  %699 = call double @sin(double noundef %3) #9
  %700 = load double, ptr %65, align 8, !tbaa !22
  %701 = fadd double %700, %3
  %702 = load double, ptr @_ZN4Apex2PIE, align 8, !tbaa !22
  %703 = fmul double %702, 5.000000e-01
  %704 = fsub double %701, %703
  %705 = fmul double %704, 5.000000e-01
  %706 = call double @sin(double noundef %705) #9
  %707 = fmul double %699, %706
  %708 = load double, ptr %65, align 8, !tbaa !22
  %709 = fadd double %708, %3
  %710 = fsub double %709, %703
  %711 = fmul double %710, 5.000000e-01
  %712 = call double @cos(double noundef %711) #9
  %713 = fdiv double %707, %712
  %714 = fadd double %698, %713
  %715 = fmul double %697, %714
  %716 = load double, ptr %381, align 8, !tbaa !23
  %717 = call double @cos(double noundef %716) #9
  %718 = call double @sin(double noundef %3) #9
  %719 = fdiv double %717, %718
  %720 = fadd double %719, 1.000000e+00
  %721 = fdiv double %715, %720
  %722 = fdiv double %4, %721
  store double %722, ptr %123, align 8, !tbaa !22
  %723 = load double, ptr %381, align 8, !tbaa !23
  %724 = fsub double %723, %3
  %725 = call double @cos(double noundef %724) #9
  %726 = fmul double %721, %725
  %727 = call double @sin(double noundef %3) #9
  %728 = fdiv double %726, %727
  %729 = load double, ptr %381, align 8, !tbaa !23
  %730 = fsub double %702, %729
  %731 = call noundef double @_Z17dimLessCornerAreadd(double noundef %3, double noundef %730)
  %732 = fmul double %728, %731
  %733 = fmul double %728, %732
  %734 = load double, ptr %65, align 8, !tbaa !22
  %735 = call noundef double @_Z17dimLessCornerAreadd(double noundef %3, double noundef %734)
  %736 = load double, ptr %64, align 8, !tbaa !22
  %737 = fmul double %735, %736
  %738 = call double @llvm.fmuladd.f64(double %737, double %736, double -1.000000e-18)
  %739 = fcmp ule double %733, %738
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %137) #9
  br i1 %739, label %740, label %755

740:                                              ; preds = %696
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %125) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %126) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %127) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %128) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %129) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %130) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %131) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %131)
          to label %741 unwind label %780

741:                                              ; preds = %740
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %129, ptr noundef nonnull align 8 dereferenceable(32) %130, ptr noundef nonnull @.str.1)
          to label %742 unwind label %782

742:                                              ; preds = %741
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %132) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %133) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %132, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %133)
          to label %743 unwind label %784

743:                                              ; preds = %742
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %128, ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull align 8 dereferenceable(32) %132)
          to label %744 unwind label %786

744:                                              ; preds = %743
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %127, ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull @.str.2)
          to label %745 unwind label %788

745:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %134) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %135) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %135)
          to label %746 unwind label %790

746:                                              ; preds = %745
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(32) %134)
          to label %747 unwind label %792

747:                                              ; preds = %746
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %125, ptr noundef nonnull align 8 dereferenceable(32) %126, ptr noundef nonnull @.str.4)
          to label %748 unwind label %794

748:                                              ; preds = %747
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %136) #9
  store i32 543, ptr %137, align 4, !tbaa !14
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %136, ptr noundef nonnull align 4 dereferenceable(4) %137)
          to label %749 unwind label %796

749:                                              ; preds = %748
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %124, ptr noundef nonnull align 8 dereferenceable(32) %125, ptr noundef nonnull align 8 dereferenceable(32) %136)
          to label %750 unwind label %798

750:                                              ; preds = %749
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %139) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %140) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %140)
          to label %751 unwind label %800

751:                                              ; preds = %750
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %141) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %142) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %141, ptr noundef nonnull @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %142)
          to label %752 unwind label %802

752:                                              ; preds = %751
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %138, ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull align 8 dereferenceable(32) %141)
          to label %753 unwind label %804

753:                                              ; preds = %752
  %754 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %124, ptr noundef nonnull %138, i32 noundef 0)
          to label %.critedge1391 unwind label %806

755:                                              ; preds = %696
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %137) #9
  br label %.critedge1412

.critedge1391:                                    ; preds = %753
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %142) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %140) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %137) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %133) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %131) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #9
  br label %.critedge1412

.critedge1412:                                    ; preds = %755, %.critedge1391
  br i1 %5, label %768, label %756

756:                                              ; preds = %.critedge1412
  %757 = load double, ptr %381, align 8, !tbaa !23
  %758 = fsub double %702, %757
  %759 = call noundef double @_Z17dimLessCornerAreadd(double noundef %3, double noundef %758)
  %760 = fmul double %728, %759
  %761 = fmul double %728, %760
  %762 = load double, ptr %65, align 8, !tbaa !22
  %763 = call noundef double @_Z17dimLessCornerAreadd(double noundef %3, double noundef %762)
  %764 = load double, ptr %64, align 8, !tbaa !22
  %765 = fmul double %763, %764
  %766 = call double @llvm.fmuladd.f64(double %765, double %764, double -1.000000e-18)
  %767 = fcmp ogt double %761, %766
  br i1 %767, label %821, label %768

768:                                              ; preds = %756, %.critedge1412
  %769 = 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.41)
  %770 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %769, ptr noundef nonnull @.str.42)
  %771 = load ptr, ptr %300, align 8, !tbaa !19
  %772 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %771)
  %773 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEb(ptr noundef nonnull align 8 dereferenceable(8) %770, i1 noundef zeroext %772)
  %774 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %773, ptr noundef nonnull @.str.43)
  %775 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %774, double noundef %3)
  %776 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %775, ptr noundef nonnull @.str.44)
  %777 = load double, ptr %381, align 8, !tbaa !23
  %778 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %776, double noundef %777)
  %779 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %778, ptr noundef nonnull @.str.9)
  br label %821

780:                                              ; preds = %740
  %781 = landingpad { ptr, i32 }
          cleanup
  br label %820

782:                                              ; preds = %741
  %783 = landingpad { ptr, i32 }
          cleanup
  br label %819

784:                                              ; preds = %742
  %785 = landingpad { ptr, i32 }
          cleanup
  br label %818

786:                                              ; preds = %743
  %787 = landingpad { ptr, i32 }
          cleanup
  br label %817

788:                                              ; preds = %744
  %789 = landingpad { ptr, i32 }
          cleanup
  br label %816

790:                                              ; preds = %745
  %791 = landingpad { ptr, i32 }
          cleanup
  br label %815

792:                                              ; preds = %746
  %793 = landingpad { ptr, i32 }
          cleanup
  br label %814

794:                                              ; preds = %747
  %795 = landingpad { ptr, i32 }
          cleanup
  br label %813

796:                                              ; preds = %748
  %797 = landingpad { ptr, i32 }
          cleanup
  br label %812

798:                                              ; preds = %749
  %799 = landingpad { ptr, i32 }
          cleanup
  br label %811

800:                                              ; preds = %750
  %801 = landingpad { ptr, i32 }
          cleanup
  br label %810

802:                                              ; preds = %751
  %803 = landingpad { ptr, i32 }
          cleanup
  br label %809

804:                                              ; preds = %752
  %805 = landingpad { ptr, i32 }
          cleanup
  br label %808

806:                                              ; preds = %753
  %807 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #9
  br label %808

808:                                              ; preds = %804, %806
  %.pn1101 = phi { ptr, i32 } [ %807, %806 ], [ %805, %804 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #9
  br label %809

809:                                              ; preds = %802, %808
  %.pn1101.pn = phi { ptr, i32 } [ %.pn1101, %808 ], [ %803, %802 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %142) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %142) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %141) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #9
  br label %810

810:                                              ; preds = %800, %809
  %.pn1101.pn.pn = phi { ptr, i32 } [ %.pn1101.pn, %809 ], [ %801, %800 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %140) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %140) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %139) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #9
  br label %811

811:                                              ; preds = %798, %810
  %.pn1101.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn, %810 ], [ %799, %798 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %136) #9
  br label %812

812:                                              ; preds = %811, %796
  %.pn1101.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn.pn, %811 ], [ %797, %796 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %137) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %136) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %125) #9
  br label %813

813:                                              ; preds = %794, %812
  %.pn1101.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn.pn.pn, %812 ], [ %795, %794 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %126) #9
  br label %814

814:                                              ; preds = %792, %813
  %.pn1101.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn.pn.pn.pn, %813 ], [ %793, %792 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #9
  br label %815

815:                                              ; preds = %790, %814
  %.pn1101.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn.pn.pn.pn.pn, %814 ], [ %791, %790 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %135) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %135) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %134) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #9
  br label %816

816:                                              ; preds = %788, %815
  %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn.pn.pn.pn.pn.pn, %815 ], [ %789, %788 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %128) #9
  br label %817

817:                                              ; preds = %786, %816
  %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn, %816 ], [ %787, %786 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %132) #9
  br label %818

818:                                              ; preds = %784, %817
  %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn.pn, %817 ], [ %785, %784 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %133) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %133) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %132) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %129) #9
  br label %819

819:                                              ; preds = %782, %818
  %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %818 ], [ %783, %782 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %130) #9
  br label %820

820:                                              ; preds = %780, %819
  %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %819 ], [ %781, %780 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %131) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %131) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %130) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %129) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %128) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %127) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %126) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %125) #9
  br label %964

821:                                              ; preds = %768, %756
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %143) #9
  %822 = load ptr, ptr %300, align 8, !tbaa !19
  %823 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %822)
  store double %823, ptr %143, align 8, !tbaa !22
  %824 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %143)
  %825 = load double, ptr %824, align 8, !tbaa !22
  store double %825, ptr %123, align 8, !tbaa !22
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %143) #9
  %826 = getelementptr inbounds i8, ptr %0, i64 104
  store i32 21, ptr %826, align 8, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %144) #9
  %827 = load ptr, ptr %300, align 8, !tbaa !19
  %828 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %827)
  br i1 %828, label %829, label %838

829:                                              ; preds = %821
  %830 = load double, ptr %381, align 8, !tbaa !23
  %831 = fsub double %830, %3
  %832 = call double @cos(double noundef %831) #9
  %833 = fmul double %832, %4
  %834 = load double, ptr %64, align 8, !tbaa !22
  %835 = call double @sin(double noundef %3) #9
  %836 = fmul double %834, %835
  %837 = fdiv double %833, %836
  br label %841

838:                                              ; preds = %821
  %839 = load double, ptr %123, align 8, !tbaa !22
  %840 = fadd double %839, -1.000000e-01
  br label %841

841:                                              ; preds = %838, %829
  %842 = phi double [ %837, %829 ], [ %840, %838 ]
  store double %842, ptr %144, align 8, !tbaa !22
  br i1 %5, label %843, label %899

843:                                              ; preds = %841
  %844 = load double, ptr %381, align 8, !tbaa !23
  %845 = call double @cos(double noundef %844) #9
  %846 = call double @sin(double noundef %3) #9
  %847 = fdiv double %845, %846
  %848 = fadd double %847, 1.000000e+00
  %849 = fmul double %721, %848
  %850 = load i32, ptr %826, align 8, !tbaa !27
  %851 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef %850)
  %852 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %851, ptr noundef nonnull @.str.45)
  %853 = load double, ptr %65, align 8, !tbaa !22
  %854 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %852, double noundef %853)
  %855 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %854, ptr noundef nonnull @.str.28)
  %856 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %855, ptr noundef nonnull @.str.46)
  %857 = load double, ptr %381, align 8, !tbaa !23
  %858 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %856, double noundef %857)
  %859 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %858, ptr noundef nonnull @.str.47)
  %860 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %859, double noundef %2)
  %861 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %860, ptr noundef nonnull @.str.48)
  %862 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %861, double noundef %3)
  %863 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %862, ptr noundef nonnull @.str.49)
  %864 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %863, double noundef %721)
  %865 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %864, ptr noundef nonnull @.str.50)
  %866 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %865, double noundef %1)
  %867 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %866, ptr noundef nonnull @.str.51)
  %868 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %867, double noundef %307)
  %869 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %868, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %870 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %869, ptr noundef nonnull @.str.52)
  %871 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %870, double noundef %715)
  %872 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %871, ptr noundef nonnull @.str.53)
  %873 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %872, double noundef %849)
  %874 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %873, ptr noundef nonnull @.str.54)
  %875 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %874, ptr noundef nonnull @.str.55)
  %876 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %875, double noundef %1)
  %877 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %876, ptr noundef nonnull @.str.56)
  %878 = load ptr, ptr %300, align 8, !tbaa !19
  %879 = call noundef zeroext i1 @_ZNK10CornerApex12cornerExistsEv(ptr noundef nonnull align 8 dereferenceable(144) %878)
  br i1 %879, label %880, label %883

880:                                              ; preds = %843
  %881 = load ptr, ptr %300, align 8, !tbaa !19
  %882 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %881)
  br label %883

883:                                              ; preds = %843, %880
  %884 = phi double [ %882, %880 ], [ %299, %843 ]
  %885 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %877, double noundef %884)
  %886 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %885, ptr noundef nonnull @.str.57)
  %887 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %886, double noundef %299)
  %888 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %887, ptr noundef nonnull @.str.58)
  %889 = load double, ptr %123, align 8, !tbaa !22
  %890 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %888, double noundef %889)
  %891 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %890, ptr noundef nonnull @.str.59)
  %892 = load double, ptr %144, align 8, !tbaa !22
  %893 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %891, double noundef %892)
  %894 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %893, ptr noundef nonnull @.str.60)
  %895 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %144)
  %896 = load double, ptr %895, align 8, !tbaa !22
  %897 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %894, double noundef %896)
  %898 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %897, ptr noundef nonnull @.str.61)
  %.pr = load double, ptr %144, align 8, !tbaa !22
  br label %899

899:                                              ; preds = %883, %841
  %900 = phi double [ %.pr, %883 ], [ %842, %841 ]
  %901 = fcmp uge double %900, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %158) #9
  br i1 %901, label %902, label %917

902:                                              ; preds = %899
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %146) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %147) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %148) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %149) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %150) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %151) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %152) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %152)
          to label %903 unwind label %922

903:                                              ; preds = %902
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %150, ptr noundef nonnull align 8 dereferenceable(32) %151, ptr noundef nonnull @.str.1)
          to label %904 unwind label %924

904:                                              ; preds = %903
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %153) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %154) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex30layerCollapsePc_fromEitherSideEddddb, ptr noundef nonnull align 1 dereferenceable(1) %154)
          to label %905 unwind label %926

905:                                              ; preds = %904
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %149, ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull align 8 dereferenceable(32) %153)
          to label %906 unwind label %928

906:                                              ; preds = %905
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %148, ptr noundef nonnull align 8 dereferenceable(32) %149, ptr noundef nonnull @.str.2)
          to label %907 unwind label %930

907:                                              ; preds = %906
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %155) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %156) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %156)
          to label %908 unwind label %932

908:                                              ; preds = %907
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %147, ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(32) %155)
          to label %909 unwind label %934

909:                                              ; preds = %908
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %146, ptr noundef nonnull align 8 dereferenceable(32) %147, ptr noundef nonnull @.str.4)
          to label %910 unwind label %936

910:                                              ; preds = %909
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %157) #9
  store i32 577, ptr %158, align 4, !tbaa !14
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %157, ptr noundef nonnull align 4 dereferenceable(4) %158)
          to label %911 unwind label %938

911:                                              ; preds = %910
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %145, ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull align 8 dereferenceable(32) %157)
          to label %912 unwind label %940

912:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %160) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %161) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %161)
          to label %913 unwind label %942

913:                                              ; preds = %912
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %162) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %163) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef nonnull @.str.62, ptr noundef nonnull align 1 dereferenceable(1) %163)
          to label %914 unwind label %944

914:                                              ; preds = %913
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %159, ptr noundef nonnull align 8 dereferenceable(32) %160, ptr noundef nonnull align 8 dereferenceable(32) %162)
          to label %915 unwind label %946

915:                                              ; preds = %914
  %916 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %145, ptr noundef nonnull %159, i32 noundef 0)
          to label %.critedge1427 unwind label %948

917:                                              ; preds = %899
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %158) #9
  br label %.critedge1448

.critedge1427:                                    ; preds = %915
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %163) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %161) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %158) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %156) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %154) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #9
  %.pre1469 = load double, ptr %144, align 8, !tbaa !22
  br label %.critedge1448

.critedge1448:                                    ; preds = %917, %.critedge1427
  %918 = phi double [ %900, %917 ], [ %.pre1469, %.critedge1427 ]
  %919 = load double, ptr %123, align 8, !tbaa !22
  %920 = fcmp olt double %919, %918
  br i1 %920, label %921, label %963

921:                                              ; preds = %.critedge1448
  store i32 22, ptr %826, align 8, !tbaa !27
  br label %963

922:                                              ; preds = %902
  %923 = landingpad { ptr, i32 }
          cleanup
  br label %962

924:                                              ; preds = %903
  %925 = landingpad { ptr, i32 }
          cleanup
  br label %961

926:                                              ; preds = %904
  %927 = landingpad { ptr, i32 }
          cleanup
  br label %960

928:                                              ; preds = %905
  %929 = landingpad { ptr, i32 }
          cleanup
  br label %959

930:                                              ; preds = %906
  %931 = landingpad { ptr, i32 }
          cleanup
  br label %958

932:                                              ; preds = %907
  %933 = landingpad { ptr, i32 }
          cleanup
  br label %957

934:                                              ; preds = %908
  %935 = landingpad { ptr, i32 }
          cleanup
  br label %956

936:                                              ; preds = %909
  %937 = landingpad { ptr, i32 }
          cleanup
  br label %955

938:                                              ; preds = %910
  %939 = landingpad { ptr, i32 }
          cleanup
  br label %954

940:                                              ; preds = %911
  %941 = landingpad { ptr, i32 }
          cleanup
  br label %953

942:                                              ; preds = %912
  %943 = landingpad { ptr, i32 }
          cleanup
  br label %952

944:                                              ; preds = %913
  %945 = landingpad { ptr, i32 }
          cleanup
  br label %951

946:                                              ; preds = %914
  %947 = landingpad { ptr, i32 }
          cleanup
  br label %950

948:                                              ; preds = %915
  %949 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %159) #9
  br label %950

950:                                              ; preds = %946, %948
  %.pn1115 = phi { ptr, i32 } [ %949, %948 ], [ %947, %946 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %162) #9
  br label %951

951:                                              ; preds = %944, %950
  %.pn1115.pn = phi { ptr, i32 } [ %.pn1115, %950 ], [ %945, %944 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %163) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %163) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %162) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %160) #9
  br label %952

952:                                              ; preds = %942, %951
  %.pn1115.pn.pn = phi { ptr, i32 } [ %.pn1115.pn, %951 ], [ %943, %942 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %161) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %161) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %160) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %145) #9
  br label %953

953:                                              ; preds = %940, %952
  %.pn1115.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn, %952 ], [ %941, %940 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %157) #9
  br label %954

954:                                              ; preds = %953, %938
  %.pn1115.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn, %953 ], [ %939, %938 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %158) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %157) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #9
  br label %955

955:                                              ; preds = %936, %954
  %.pn1115.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn, %954 ], [ %937, %936 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %147) #9
  br label %956

956:                                              ; preds = %934, %955
  %.pn1115.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn.pn, %955 ], [ %935, %934 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #9
  br label %957

957:                                              ; preds = %932, %956
  %.pn1115.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn.pn.pn, %956 ], [ %933, %932 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %156) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %156) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %155) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %148) #9
  br label %958

958:                                              ; preds = %930, %957
  %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn.pn.pn.pn, %957 ], [ %931, %930 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %149) #9
  br label %959

959:                                              ; preds = %928, %958
  %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn, %958 ], [ %929, %928 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %153) #9
  br label %960

960:                                              ; preds = %926, %959
  %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn, %959 ], [ %927, %926 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %154) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %154) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %153) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #9
  br label %961

961:                                              ; preds = %924, %960
  %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %960 ], [ %925, %924 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %151) #9
  br label %962

962:                                              ; preds = %922, %961
  %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %961 ], [ %923, %922 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %152) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %152) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %151) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %150) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %149) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %148) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %147) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %146) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #9
  br label %964

963:                                              ; preds = %.critedge1448, %921
  %.3 = phi double [ %918, %921 ], [ %919, %.critedge1448 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %144) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #9
  br label %965

964:                                              ; preds = %820, %962
  %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %962 ], [ %.pn1101.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %820 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #9
  br label %966

965:                                              ; preds = %.thread1460, %963
  %.4 = phi double [ %.3, %963 ], [ %550, %.thread1460 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #9
  ret double %.4

966:                                              ; preds = %608, %649, %466, %964
  %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1115.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %964 ], [ %.pn1087.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %466 ], [ %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %649 ], [ %.pn1130.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %608 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #9
  br label %967

967:                                              ; preds = %966, %372, %291, %250
  %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1059.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %291 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %250 ], [ %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %966 ], [ %.pn1073.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %372 ]
  resume { ptr, i32 } %.pn1144.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #6

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_Z17dimLessCornerAreadd(double noundef, double noundef) local_unnamed_addr #2

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 = !{!12, !12, i64 0}
!15 = !{!6, !7, i64 82}
!16 = !{i8 0, i8 2}
!17 = !{}
!18 = !{!6, !7, i64 83}
!19 = !{!20, !11, i64 128}
!20 = !{!"_ZTS9LayerApex", !6, i64 0, !12, i64 104, !11, i64 112, !10, i64 120, !11, i64 128, !10, i64 136}
!21 = !{!20, !11, i64 112}
!22 = !{!10, !10, i64 0}
!23 = !{!20, !10, i64 136}
!24 = !{!20, !10, i64 120}
!25 = distinct !{!25, !26}
!26 = !{!"llvm.loop.mustprogress"}
!27 = !{!20, !12, i64 104}
!28 = !{!6, !10, i64 48}
!29 = !{!13, !12, i64 0}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass