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

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

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

@_ZN4Apex9SMALL_NUME = external constant double, align 8
@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@.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
@__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCornerEddddd = external hidden unnamed_addr constant [27 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [39 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4 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)) #2

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

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

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

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

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

195:                                              ; preds = %6
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #8
  store i1 true, ptr %16, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #8
  store i1 true, ptr %18, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  store i1 true, ptr %20, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #8
  store i1 true, ptr %22, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  store i1 true, ptr %24, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  store i1 true, ptr %26, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #8
  store i1 true, ptr %28, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  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 %196 unwind label %368

196:                                              ; preds = %195
  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 %197 unwind label %372

197:                                              ; preds = %196
  store i1 true, ptr %33, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #8
  store i1 true, ptr %35, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #8
  store i1 true, ptr %37, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  store i1 true, ptr %38, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCornerEddddd, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %198 unwind label %376

198:                                              ; preds = %197
  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 %199 unwind label %380

199:                                              ; preds = %198
  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 %200 unwind label %384

200:                                              ; preds = %199
  store i1 true, ptr %41, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #8
  store i1 true, ptr %43, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #8
  store i1 true, ptr %45, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  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 %201 unwind label %388

201:                                              ; preds = %200
  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 %202 unwind label %392

202:                                              ; preds = %201
  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 %203 unwind label %396

203:                                              ; preds = %202
  store i1 true, ptr %49, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #8
  store i1 true, ptr %51, align 1
  store i32 373, ptr %52, align 4, !tbaa !16
  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 %204 unwind label %400

204:                                              ; preds = %203
  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 %205 unwind label %404

205:                                              ; preds = %204
  store i1 true, ptr %54, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #8
  store i1 true, ptr %57, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #8
  store i1 true, ptr %59, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  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 %206 unwind label %408

206:                                              ; preds = %205
  store i1 true, ptr %61, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #8
  store i1 true, ptr %63, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #8
  store i1 true, ptr %65, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  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 %207 unwind label %412

207:                                              ; preds = %206
  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 %208 unwind label %416

208:                                              ; preds = %207
  store i1 true, ptr %68, align 1
  %209 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %14, ptr noundef %55, i32 noundef 0)
          to label %210 unwind label %420

210:                                              ; preds = %208
  br label %211

211:                                              ; preds = %210, %6
  %212 = phi i1 [ true, %6 ], [ %209, %210 ]
  %213 = xor i1 %212, true
  %214 = load i1, ptr %68, align 1
  br i1 %214, label %215, label %216

215:                                              ; preds = %211
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %216

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

218:                                              ; preds = %216
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %219

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

221:                                              ; preds = %219
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  br label %222

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

224:                                              ; preds = %222
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #8
  br label %225

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

227:                                              ; preds = %225
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  br label %228

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

230:                                              ; preds = %228
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %231

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

233:                                              ; preds = %231
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  br label %234

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

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

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

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

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

242:                                              ; preds = %240
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %243

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

245:                                              ; preds = %243
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %246

246:                                              ; preds = %245, %243
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  %247 = load i1, ptr %51, align 1
  br i1 %247, label %248, label %249

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

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

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

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

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

255:                                              ; preds = %254, %252
  %256 = load i1, ptr %47, align 1
  br i1 %256, label %257, label %258

257:                                              ; preds = %255
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %258

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

260:                                              ; preds = %258
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  br label %261

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

263:                                              ; preds = %261
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #8
  br label %264

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

266:                                              ; preds = %264
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  br label %267

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

269:                                              ; preds = %267
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %270

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

272:                                              ; preds = %270
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %273

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

275:                                              ; preds = %273
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %276

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

278:                                              ; preds = %276
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  br label %279

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

281:                                              ; preds = %279
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  br label %282

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

284:                                              ; preds = %282
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  br label %285

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

287:                                              ; preds = %285
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %288

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

290:                                              ; preds = %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %291

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

293:                                              ; preds = %291
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  br label %294

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

296:                                              ; preds = %294
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  br label %297

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

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

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

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

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

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

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

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

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

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

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

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

315:                                              ; preds = %314, %312
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  %316 = load double, ptr %11, align 8, !tbaa !9
  store double %316, ptr %69, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #8
  %317 = load double, ptr %9, align 8, !tbaa !9
  %318 = load double, ptr %13, align 8, !tbaa !9
  call void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144) %190, ptr noundef nonnull align 8 dereferenceable(8) %70, ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %12, double noundef %317, double noundef %318, i1 noundef zeroext false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #8
  %319 = load double, ptr %13, align 8, !tbaa !9
  %320 = load double, ptr %9, align 8, !tbaa !9
  %321 = fdiv double %319, %320
  %322 = load double, ptr %69, align 8, !tbaa !9
  %323 = call double @cos(double noundef %322) #8
  %324 = load double, ptr %12, align 8, !tbaa !9
  %325 = call double @sin(double noundef %324) #8
  %326 = fdiv double %323, %325
  %327 = fadd double %326, 1.000000e+00
  %328 = fmul double %321, %327
  store double %328, ptr %71, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #8
  %329 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 4
  %330 = load ptr, ptr %329, align 8, !tbaa !17
  %331 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %330)
  store double %331, ptr %72, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #8
  %332 = load double, ptr %13, align 8, !tbaa !9
  %333 = load double, ptr %72, align 8, !tbaa !9
  %334 = fdiv double %332, %333
  %335 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 5
  %336 = load double, ptr %335, align 8, !tbaa !19
  %337 = call double @cos(double noundef %336) #8
  %338 = load double, ptr %12, align 8, !tbaa !9
  %339 = call double @sin(double noundef %338) #8
  %340 = fdiv double %337, %339
  %341 = fsub double %340, 1.000000e+00
  %342 = fmul double %334, %341
  store double %342, ptr %73, align 8, !tbaa !9
  %343 = load double, ptr %71, align 8, !tbaa !9
  %344 = load double, ptr %73, align 8, !tbaa !9
  %345 = fsub double %343, %344
  %346 = load double, ptr @_ZN4Apex15NEG_ALMOST_ZEROE, align 8, !tbaa !9
  %347 = fcmp olt double %345, %346
  br i1 %347, label %348, label %1279

348:                                              ; preds = %315
  %349 = load double, ptr %10, align 8, !tbaa !9
  %350 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 4
  %351 = load ptr, ptr %350, align 8, !tbaa !17
  %352 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %351)
  %353 = fcmp olt double %349, %352
  br i1 %353, label %354, label %1279

354:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #8
  %355 = load double, ptr %13, align 8, !tbaa !9
  %356 = load double, ptr %72, align 8, !tbaa !9
  %357 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8, !tbaa !9
  %358 = fadd double %356, %357
  %359 = fdiv double %355, %358
  store double %359, ptr %74, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #8
  %360 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 4
  %361 = load ptr, ptr %360, align 8, !tbaa !17
  %362 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %361)
  store double %362, ptr %75, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  store i32 0, ptr %76, align 4, !tbaa !16
  br label %363

363:                                              ; preds = %1227, %354
  %364 = load i32, ptr %76, align 4, !tbaa !16
  %365 = load i32, ptr @_ZN4Apex7MAX_ITRE, align 4, !tbaa !16
  %366 = icmp slt i32 %364, %365
  br i1 %366, label %539, label %367

367:                                              ; preds = %363
  store i32 2, ptr %77, align 4
  br label %1230

368:                                              ; preds = %195
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %30, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %31, align 4
  br label %514

372:                                              ; preds = %196
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %30, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %31, align 4
  br label %510

376:                                              ; preds = %197
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %30, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %31, align 4
  br label %497

380:                                              ; preds = %198
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %30, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %31, align 4
  br label %493

384:                                              ; preds = %199
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %30, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %31, align 4
  br label %489

388:                                              ; preds = %200
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %30, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %31, align 4
  br label %476

392:                                              ; preds = %201
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %30, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %31, align 4
  br label %472

396:                                              ; preds = %202
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %30, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %31, align 4
  br label %468

400:                                              ; preds = %203
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %30, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %31, align 4
  br label %461

404:                                              ; preds = %204
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %30, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %31, align 4
  br label %457

408:                                              ; preds = %205
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %30, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %31, align 4
  br label %444

412:                                              ; preds = %206
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %30, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %31, align 4
  br label %431

416:                                              ; preds = %207
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %30, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %31, align 4
  br label %427

420:                                              ; preds = %208
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %30, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %31, align 4
  %424 = load i1, ptr %68, align 1
  br i1 %424, label %425, label %426

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

426:                                              ; preds = %425, %420
  br label %427

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

429:                                              ; preds = %427
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %430

430:                                              ; preds = %429, %427
  br label %431

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

433:                                              ; preds = %431
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  br label %434

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

436:                                              ; preds = %434
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #8
  br label %437

437:                                              ; preds = %436, %434
  %438 = load i1, ptr %63, align 1
  br i1 %438, label %439, label %440

439:                                              ; preds = %437
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  br label %440

440:                                              ; preds = %439, %437
  %441 = load i1, ptr %61, align 1
  br i1 %441, label %442, label %443

442:                                              ; preds = %440
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %443

443:                                              ; preds = %442, %440
  br label %444

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

446:                                              ; preds = %444
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #8
  br label %447

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

449:                                              ; preds = %447
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #8
  br label %450

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

452:                                              ; preds = %450
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  br label %453

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

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

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

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

459:                                              ; preds = %457
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %460

460:                                              ; preds = %459, %457
  br label %461

461:                                              ; preds = %460, %400
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  %462 = load i1, ptr %51, align 1
  br i1 %462, label %463, label %464

463:                                              ; preds = %461
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  br label %464

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

466:                                              ; preds = %464
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %467

467:                                              ; preds = %466, %464
  br label %468

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

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

471:                                              ; preds = %470, %468
  br label %472

472:                                              ; preds = %471, %392
  %473 = load i1, ptr %47, align 1
  br i1 %473, label %474, label %475

474:                                              ; preds = %472
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %475

475:                                              ; preds = %474, %472
  br label %476

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

478:                                              ; preds = %476
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  br label %479

479:                                              ; preds = %478, %476
  %480 = load i1, ptr %45, align 1
  br i1 %480, label %481, label %482

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

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

484:                                              ; preds = %482
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #8
  br label %485

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

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

488:                                              ; preds = %487, %485
  br label %489

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

491:                                              ; preds = %489
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  br label %492

492:                                              ; preds = %491, %489
  br label %493

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

495:                                              ; preds = %493
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %496

496:                                              ; preds = %495, %493
  br label %497

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

499:                                              ; preds = %497
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  br label %500

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

502:                                              ; preds = %500
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  br label %503

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

505:                                              ; preds = %503
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #8
  br label %506

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

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

509:                                              ; preds = %508, %506
  br label %510

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

512:                                              ; preds = %510
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %513

513:                                              ; preds = %512, %510
  br label %514

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

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

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

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

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

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

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

525:                                              ; preds = %523
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %526

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

528:                                              ; preds = %526
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  br label %529

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

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

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

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

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

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

538:                                              ; preds = %537, %535
  br label %1284

539:                                              ; preds = %363
  %540 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 4
  %541 = load ptr, ptr %540, align 8, !tbaa !17
  %542 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %541)
  %543 = load double, ptr %12, align 8, !tbaa !9
  %544 = call double @sin(double noundef %543) #8
  %545 = fmul double %542, %544
  %546 = load double, ptr %74, align 8, !tbaa !9
  %547 = fdiv double %545, %546
  %548 = fcmp oge double %547, -1.000000e+00
  store i1 false, ptr %80, align 1
  store i1 false, ptr %82, align 1
  store i1 false, ptr %84, align 1
  store i1 false, ptr %86, align 1
  store i1 false, ptr %88, align 1
  store i1 false, ptr %90, align 1
  store i1 false, ptr %92, align 1
  store i1 false, ptr %93, align 1
  store i1 false, ptr %94, align 1
  store i1 false, ptr %95, align 1
  store i1 false, ptr %97, 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 %103, align 1
  store i1 false, ptr %105, align 1
  store i1 false, ptr %107, align 1
  store i1 false, ptr %108, align 1
  store i1 false, ptr %109, align 1
  store i1 false, ptr %110, align 1
  store i1 false, ptr %111, align 1
  store i1 false, ptr %113, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #8
  store i1 false, ptr %115, align 1
  store i1 false, ptr %116, align 1
  store i1 false, ptr %119, align 1
  store i1 false, ptr %121, align 1
  store i1 false, ptr %122, align 1
  store i1 false, ptr %123, align 1
  store i1 false, ptr %125, align 1
  store i1 false, ptr %127, align 1
  store i1 false, ptr %128, align 1
  store i1 false, ptr %129, align 1
  store i1 false, ptr %130, align 1
  br i1 %548, label %549, label %559

549:                                              ; preds = %539
  %550 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 4
  %551 = load ptr, ptr %550, align 8, !tbaa !17
  %552 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %551)
  %553 = load double, ptr %12, align 8, !tbaa !9
  %554 = call double @sin(double noundef %553) #8
  %555 = fmul double %552, %554
  %556 = load double, ptr %74, align 8, !tbaa !9
  %557 = fdiv double %555, %556
  %558 = fcmp ole double %557, 1.000000e+00
  br i1 %558, label %575, label %559

559:                                              ; preds = %549, %539
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #8
  store i1 true, ptr %80, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #8
  store i1 true, ptr %82, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #8
  store i1 true, ptr %84, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #8
  store i1 true, ptr %86, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %87) #8
  store i1 true, ptr %88, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #8
  store i1 true, ptr %90, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #8
  store i1 true, ptr %92, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  store i1 true, ptr %93, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %91)
          to label %560 unwind label %880

560:                                              ; preds = %559
  store i1 true, ptr %94, 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 %87, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef @.str.1)
          to label %561 unwind label %884

561:                                              ; preds = %560
  store i1 true, ptr %95, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #8
  store i1 true, ptr %97, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #8
  store i1 true, ptr %99, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  store i1 true, ptr %100, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCornerEddddd, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %562 unwind label %888

562:                                              ; preds = %561
  store i1 true, ptr %101, 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 %85, ptr noundef nonnull align 8 dereferenceable(32) %87, ptr noundef nonnull align 8 dereferenceable(32) %96)
          to label %563 unwind label %892

563:                                              ; preds = %562
  store i1 true, ptr %102, 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 %83, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef @.str.2)
          to label %564 unwind label %896

564:                                              ; preds = %563
  store i1 true, ptr %103, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #8
  store i1 true, ptr %105, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %106) #8
  store i1 true, ptr %107, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #8
  store i1 true, ptr %108, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %565 unwind label %900

565:                                              ; preds = %564
  store i1 true, ptr %109, 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 %81, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %566 unwind label %904

566:                                              ; preds = %565
  store i1 true, ptr %110, 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 %79, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.4)
          to label %567 unwind label %908

567:                                              ; preds = %566
  store i1 true, ptr %111, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #8
  store i1 true, ptr %113, align 1
  store i32 389, ptr %114, align 4, !tbaa !16
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 4 dereferenceable(4) %114)
          to label %568 unwind label %912

568:                                              ; preds = %567
  store i1 true, ptr %115, align 1
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %569 unwind label %916

569:                                              ; preds = %568
  store i1 true, ptr %116, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #8
  store i1 true, ptr %119, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %120) #8
  store i1 true, ptr %121, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #8
  store i1 true, ptr %122, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %570 unwind label %920

570:                                              ; preds = %569
  store i1 true, ptr %123, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %124) #8
  store i1 true, ptr %125, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %126) #8
  store i1 true, ptr %127, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %126) #8
  store i1 true, ptr %128, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %126)
          to label %571 unwind label %924

571:                                              ; preds = %570
  store i1 true, ptr %129, 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 %117, ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %124)
          to label %572 unwind label %928

572:                                              ; preds = %571
  store i1 true, ptr %130, align 1
  %573 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %78, ptr noundef %117, i32 noundef 0)
          to label %574 unwind label %932

574:                                              ; preds = %572
  br label %575

575:                                              ; preds = %574, %549
  %576 = phi i1 [ true, %549 ], [ %573, %574 ]
  %577 = xor i1 %576, true
  %578 = load i1, ptr %130, align 1
  br i1 %578, label %579, label %580

579:                                              ; preds = %575
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  br label %580

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

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

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

585:                                              ; preds = %583
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %126) #8
  br label %586

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

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

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

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

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

594:                                              ; preds = %592
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  br label %595

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

597:                                              ; preds = %595
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #8
  br label %598

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

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

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

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

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

606:                                              ; preds = %604
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %607

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

609:                                              ; preds = %607
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %610

610:                                              ; preds = %609, %607
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #8
  %611 = load i1, ptr %113, align 1
  br i1 %611, label %612, label %613

612:                                              ; preds = %610
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #8
  br label %613

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

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

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

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

619:                                              ; preds = %618, %616
  %620 = load i1, ptr %109, align 1
  br i1 %620, label %621, label %622

621:                                              ; preds = %619
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  br label %622

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

624:                                              ; preds = %622
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #8
  br label %625

625:                                              ; preds = %624, %622
  %626 = load i1, ptr %107, align 1
  br i1 %626, label %627, label %628

627:                                              ; preds = %625
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #8
  br label %628

628:                                              ; preds = %627, %625
  %629 = load i1, ptr %105, align 1
  br i1 %629, label %630, label %631

630:                                              ; preds = %628
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #8
  br label %631

631:                                              ; preds = %630, %628
  %632 = load i1, ptr %103, align 1
  br i1 %632, label %633, label %634

633:                                              ; preds = %631
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #8
  br label %634

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

636:                                              ; preds = %634
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #8
  br label %637

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

639:                                              ; preds = %637
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #8
  br label %640

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

642:                                              ; preds = %640
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #8
  br label %643

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

645:                                              ; preds = %643
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #8
  br label %646

646:                                              ; preds = %645, %643
  %647 = load i1, ptr %97, align 1
  br i1 %647, label %648, label %649

648:                                              ; preds = %646
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #8
  br label %649

649:                                              ; preds = %648, %646
  %650 = load i1, ptr %95, align 1
  br i1 %650, label %651, label %652

651:                                              ; preds = %649
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %652

652:                                              ; preds = %651, %649
  %653 = load i1, ptr %94, align 1
  br i1 %653, label %654, label %655

654:                                              ; preds = %652
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #8
  br label %655

655:                                              ; preds = %654, %652
  %656 = load i1, ptr %93, align 1
  br i1 %656, label %657, label %658

657:                                              ; preds = %655
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  br label %658

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

660:                                              ; preds = %658
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #8
  br label %661

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

663:                                              ; preds = %661
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #8
  br label %664

664:                                              ; preds = %663, %661
  %665 = load i1, ptr %88, align 1
  br i1 %665, label %666, label %667

666:                                              ; preds = %664
  call void @llvm.lifetime.end.p0(i64 32, ptr %87) #8
  br label %667

667:                                              ; preds = %666, %664
  %668 = load i1, ptr %86, align 1
  br i1 %668, label %669, label %670

669:                                              ; preds = %667
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #8
  br label %670

670:                                              ; preds = %669, %667
  %671 = load i1, ptr %84, align 1
  br i1 %671, label %672, label %673

672:                                              ; preds = %670
  call void @llvm.lifetime.end.p0(i64 32, ptr %83) #8
  br label %673

673:                                              ; preds = %672, %670
  %674 = load i1, ptr %82, align 1
  br i1 %674, label %675, label %676

675:                                              ; preds = %673
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #8
  br label %676

676:                                              ; preds = %675, %673
  %677 = load i1, ptr %80, align 1
  br i1 %677, label %678, label %679

678:                                              ; preds = %676
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #8
  br label %679

679:                                              ; preds = %678, %676
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #8
  %680 = load double, ptr %75, align 8, !tbaa !9
  %681 = load double, ptr %12, align 8, !tbaa !9
  %682 = call double @sin(double noundef %681) #8
  %683 = fmul double %680, %682
  %684 = load double, ptr %74, align 8, !tbaa !9
  %685 = fdiv double %683, %684
  %686 = call double @acos(double noundef %685) #8
  %687 = load double, ptr %12, align 8, !tbaa !9
  %688 = fsub double %686, %687
  store double %688, ptr %131, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #8
  %689 = load double, ptr %75, align 8, !tbaa !9
  %690 = load double, ptr %12, align 8, !tbaa !9
  %691 = call double @sin(double noundef %690) #8
  %692 = fmul double %689, %691
  %693 = load double, ptr %131, align 8, !tbaa !9
  %694 = load double, ptr %12, align 8, !tbaa !9
  %695 = fadd double %693, %694
  %696 = call double @sin(double noundef %695) #8
  %697 = load double, ptr %74, align 8, !tbaa !9
  %698 = fmul double %696, %697
  %699 = load double, ptr %74, align 8, !tbaa !9
  %700 = fmul double %698, %699
  %701 = fdiv double %692, %700
  store double %701, ptr %132, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #8
  %702 = load double, ptr %74, align 8, !tbaa !9
  %703 = load double, ptr %131, align 8, !tbaa !9
  %704 = call double @cos(double noundef %703) #8
  %705 = load double, ptr %12, align 8, !tbaa !9
  %706 = call double @sin(double noundef %705) #8
  %707 = fdiv double %704, %706
  %708 = fsub double %707, 1.000000e+00
  %709 = load double, ptr %71, align 8, !tbaa !9
  %710 = fneg double %709
  %711 = call double @llvm.fmuladd.f64(double %702, double %708, double %710)
  store double %711, ptr %133, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %134) #8
  %712 = load double, ptr %131, align 8, !tbaa !9
  %713 = call double @cos(double noundef %712) #8
  %714 = load double, ptr %74, align 8, !tbaa !9
  %715 = load double, ptr %132, align 8, !tbaa !9
  %716 = fmul double %714, %715
  %717 = load double, ptr %131, align 8, !tbaa !9
  %718 = call double @sin(double noundef %717) #8
  %719 = fneg double %716
  %720 = call double @llvm.fmuladd.f64(double %719, double %718, double %713)
  %721 = load double, ptr %12, align 8, !tbaa !9
  %722 = call double @sin(double noundef %721) #8
  %723 = fdiv double %720, %722
  %724 = fsub double %723, 1.000000e+00
  store double %724, ptr %134, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #8
  %725 = load double, ptr %74, align 8, !tbaa !9
  %726 = load double, ptr %133, align 8, !tbaa !9
  %727 = load double, ptr %134, align 8, !tbaa !9
  %728 = fdiv double %726, %727
  %729 = fsub double %725, %728
  store double %729, ptr %135, align 8, !tbaa !9
  %730 = load double, ptr %135, align 8, !tbaa !9
  %731 = load double, ptr %74, align 8, !tbaa !9
  %732 = fsub double %730, %731
  %733 = load double, ptr %135, align 8, !tbaa !9
  %734 = fdiv double %732, %733
  %735 = call double @llvm.fabs.f64(double %734)
  %736 = load double, ptr @_ZN4Apex7EPSILONE, align 8, !tbaa !9
  %737 = fcmp olt double %735, %736
  br i1 %737, label %738, label %1222

738:                                              ; preds = %679
  %739 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 1
  store i32 10, ptr %739, align 8, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 8, ptr %136) #8
  %740 = load double, ptr %13, align 8, !tbaa !9
  %741 = load double, ptr %135, align 8, !tbaa !9
  %742 = fdiv double %740, %741
  store double %742, ptr %136, align 8, !tbaa !9
  %743 = load double, ptr %71, align 8, !tbaa !9
  %744 = load double, ptr %13, align 8, !tbaa !9
  %745 = load double, ptr %136, align 8, !tbaa !9
  %746 = fdiv double %744, %745
  %747 = load double, ptr %131, align 8, !tbaa !9
  %748 = call double @cos(double noundef %747) #8
  %749 = load double, ptr %12, align 8, !tbaa !9
  %750 = call double @sin(double noundef %749) #8
  %751 = fdiv double %748, %750
  %752 = fsub double %751, 1.000000e+00
  %753 = fneg double %746
  %754 = call double @llvm.fmuladd.f64(double %753, double %752, double %743)
  %755 = call double @llvm.fabs.f64(double %754)
  %756 = load double, ptr @_ZN4Apex7EPSILONE, align 8, !tbaa !9
  %757 = fcmp olt double %755, %756
  store i1 false, ptr %139, 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 %147, align 1
  store i1 false, ptr %149, align 1
  store i1 false, ptr %151, align 1
  store i1 false, ptr %152, align 1
  store i1 false, ptr %153, align 1
  store i1 false, ptr %154, align 1
  store i1 false, ptr %156, align 1
  store i1 false, ptr %158, align 1
  store i1 false, ptr %159, align 1
  store i1 false, ptr %160, align 1
  store i1 false, ptr %161, align 1
  store i1 false, ptr %162, align 1
  store i1 false, ptr %164, align 1
  store i1 false, ptr %166, align 1
  store i1 false, ptr %167, align 1
  store i1 false, ptr %168, align 1
  store i1 false, ptr %169, align 1
  store i1 false, ptr %170, align 1
  store i1 false, ptr %172, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #8
  store i1 false, ptr %174, align 1
  store i1 false, ptr %175, align 1
  store i1 false, ptr %178, align 1
  store i1 false, ptr %180, align 1
  store i1 false, ptr %181, align 1
  store i1 false, ptr %182, align 1
  store i1 false, ptr %184, align 1
  store i1 false, ptr %186, align 1
  store i1 false, ptr %187, align 1
  store i1 false, ptr %188, align 1
  store i1 false, ptr %189, align 1
  br i1 %757, label %774, label %758

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

759:                                              ; preds = %758
  store i1 true, ptr %153, 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 %146, ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef @.str.1)
          to label %760 unwind label %1055

760:                                              ; preds = %759
  store i1 true, ptr %154, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %155) #8
  store i1 true, ptr %156, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %157) #8
  store i1 true, ptr %158, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #8
  store i1 true, ptr %159, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCornerEddddd, ptr noundef nonnull align 1 dereferenceable(1) %157)
          to label %761 unwind label %1059

761:                                              ; preds = %760
  store i1 true, ptr %160, 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 %144, ptr noundef nonnull align 8 dereferenceable(32) %146, ptr noundef nonnull align 8 dereferenceable(32) %155)
          to label %762 unwind label %1063

762:                                              ; preds = %761
  store i1 true, ptr %161, 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 %142, ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef @.str.2)
          to label %763 unwind label %1067

763:                                              ; preds = %762
  store i1 true, ptr %162, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %163) #8
  store i1 true, ptr %164, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %165) #8
  store i1 true, ptr %166, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #8
  store i1 true, ptr %167, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %163, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %165)
          to label %764 unwind label %1071

764:                                              ; preds = %763
  store i1 true, ptr %168, 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 %140, ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(32) %163)
          to label %765 unwind label %1075

765:                                              ; preds = %764
  store i1 true, ptr %169, 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 %138, ptr noundef nonnull align 8 dereferenceable(32) %140, ptr noundef @.str.4)
          to label %766 unwind label %1079

766:                                              ; preds = %765
  store i1 true, ptr %170, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %171) #8
  store i1 true, ptr %172, align 1
  store i32 400, ptr %173, align 4, !tbaa !16
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %171, ptr noundef nonnull align 4 dereferenceable(4) %173)
          to label %767 unwind label %1083

767:                                              ; preds = %766
  store i1 true, ptr %174, 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 %137, ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull align 8 dereferenceable(32) %171)
          to label %768 unwind label %1087

768:                                              ; preds = %767
  store i1 true, ptr %175, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %177) #8
  store i1 true, ptr %178, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %179) #8
  store i1 true, ptr %180, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #8
  store i1 true, ptr %181, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %177, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %179)
          to label %769 unwind label %1091

769:                                              ; preds = %768
  store i1 true, ptr %182, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %183) #8
  store i1 true, ptr %184, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %185) #8
  store i1 true, ptr %186, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #8
  store i1 true, ptr %187, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %183, ptr noundef @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %185)
          to label %770 unwind label %1095

770:                                              ; preds = %769
  store i1 true, ptr %188, 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 %176, ptr noundef nonnull align 8 dereferenceable(32) %177, ptr noundef nonnull align 8 dereferenceable(32) %183)
          to label %771 unwind label %1099

771:                                              ; preds = %770
  store i1 true, ptr %189, align 1
  %772 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %137, ptr noundef %176, i32 noundef 0)
          to label %773 unwind label %1103

773:                                              ; preds = %771
  br label %774

774:                                              ; preds = %773, %738
  %775 = phi i1 [ true, %738 ], [ %772, %773 ]
  %776 = xor i1 %775, true
  %777 = load i1, ptr %189, align 1
  br i1 %777, label %778, label %779

778:                                              ; preds = %774
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #8
  br label %779

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

781:                                              ; preds = %779
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  br label %782

782:                                              ; preds = %781, %779
  %783 = load i1, ptr %187, align 1
  br i1 %783, label %784, label %785

784:                                              ; preds = %782
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #8
  br label %785

785:                                              ; preds = %784, %782
  %786 = load i1, ptr %186, align 1
  br i1 %786, label %787, label %788

787:                                              ; preds = %785
  call void @llvm.lifetime.end.p0(i64 1, ptr %185) #8
  br label %788

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

790:                                              ; preds = %788
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #8
  br label %791

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

793:                                              ; preds = %791
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  br label %794

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

796:                                              ; preds = %794
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #8
  br label %797

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

799:                                              ; preds = %797
  call void @llvm.lifetime.end.p0(i64 1, ptr %179) #8
  br label %800

800:                                              ; preds = %799, %797
  %801 = load i1, ptr %178, align 1
  br i1 %801, label %802, label %803

802:                                              ; preds = %800
  call void @llvm.lifetime.end.p0(i64 32, ptr %177) #8
  br label %803

803:                                              ; preds = %802, %800
  %804 = load i1, ptr %175, align 1
  br i1 %804, label %805, label %806

805:                                              ; preds = %803
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %806

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

808:                                              ; preds = %806
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #8
  br label %809

809:                                              ; preds = %808, %806
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #8
  %810 = load i1, ptr %172, align 1
  br i1 %810, label %811, label %812

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

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

814:                                              ; preds = %812
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #8
  br label %815

815:                                              ; preds = %814, %812
  %816 = load i1, ptr %169, 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) %140) #8
  br label %818

818:                                              ; preds = %817, %815
  %819 = load i1, ptr %168, align 1
  br i1 %819, label %820, label %821

820:                                              ; preds = %818
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  br label %821

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

823:                                              ; preds = %821
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %165) #8
  br label %824

824:                                              ; preds = %823, %821
  %825 = load i1, ptr %166, align 1
  br i1 %825, label %826, label %827

826:                                              ; preds = %824
  call void @llvm.lifetime.end.p0(i64 1, ptr %165) #8
  br label %827

827:                                              ; preds = %826, %824
  %828 = load i1, ptr %164, align 1
  br i1 %828, label %829, label %830

829:                                              ; preds = %827
  call void @llvm.lifetime.end.p0(i64 32, ptr %163) #8
  br label %830

830:                                              ; preds = %829, %827
  %831 = load i1, ptr %162, 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) %142) #8
  br label %833

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

835:                                              ; preds = %833
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  br label %836

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

838:                                              ; preds = %836
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #8
  br label %839

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

841:                                              ; preds = %839
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #8
  br label %842

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

844:                                              ; preds = %842
  call void @llvm.lifetime.end.p0(i64 1, ptr %157) #8
  br label %845

845:                                              ; preds = %844, %842
  %846 = load i1, ptr %156, align 1
  br i1 %846, label %847, label %848

847:                                              ; preds = %845
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #8
  br label %848

848:                                              ; preds = %847, %845
  %849 = load i1, ptr %154, align 1
  br i1 %849, label %850, label %851

850:                                              ; preds = %848
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %146) #8
  br label %851

851:                                              ; preds = %850, %848
  %852 = load i1, ptr %153, 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) %148) #8
  br label %854

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

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

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

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

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

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

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

865:                                              ; preds = %863
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #8
  br label %866

866:                                              ; preds = %865, %863
  %867 = load i1, ptr %145, align 1
  br i1 %867, label %868, label %869

868:                                              ; preds = %866
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #8
  br label %869

869:                                              ; preds = %868, %866
  %870 = load i1, ptr %143, align 1
  br i1 %870, label %871, label %872

871:                                              ; preds = %869
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #8
  br label %872

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

874:                                              ; preds = %872
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #8
  br label %875

875:                                              ; preds = %874, %872
  %876 = load i1, ptr %139, align 1
  br i1 %876, label %877, label %878

877:                                              ; preds = %875
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #8
  br label %878

878:                                              ; preds = %877, %875
  %879 = load double, ptr %136, align 8, !tbaa !9
  store double %879, ptr %7, align 8
  store i32 1, ptr %77, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  br label %1224

880:                                              ; preds = %559
  %881 = landingpad { ptr, i32 }
          cleanup
  %882 = extractvalue { ptr, i32 } %881, 0
  store ptr %882, ptr %30, align 8
  %883 = extractvalue { ptr, i32 } %881, 1
  store i32 %883, ptr %31, align 4
  br label %1026

884:                                              ; preds = %560
  %885 = landingpad { ptr, i32 }
          cleanup
  %886 = extractvalue { ptr, i32 } %885, 0
  store ptr %886, ptr %30, align 8
  %887 = extractvalue { ptr, i32 } %885, 1
  store i32 %887, ptr %31, align 4
  br label %1022

888:                                              ; preds = %561
  %889 = landingpad { ptr, i32 }
          cleanup
  %890 = extractvalue { ptr, i32 } %889, 0
  store ptr %890, ptr %30, align 8
  %891 = extractvalue { ptr, i32 } %889, 1
  store i32 %891, ptr %31, align 4
  br label %1009

892:                                              ; preds = %562
  %893 = landingpad { ptr, i32 }
          cleanup
  %894 = extractvalue { ptr, i32 } %893, 0
  store ptr %894, ptr %30, align 8
  %895 = extractvalue { ptr, i32 } %893, 1
  store i32 %895, ptr %31, align 4
  br label %1005

896:                                              ; preds = %563
  %897 = landingpad { ptr, i32 }
          cleanup
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %30, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %31, align 4
  br label %1001

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

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

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

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

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

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

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

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

932:                                              ; preds = %572
  %933 = landingpad { ptr, i32 }
          cleanup
  %934 = extractvalue { ptr, i32 } %933, 0
  store ptr %934, ptr %30, align 8
  %935 = extractvalue { ptr, i32 } %933, 1
  store i32 %935, ptr %31, align 4
  %936 = load i1, ptr %130, align 1
  br i1 %936, label %937, label %938

937:                                              ; preds = %932
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #8
  br label %938

938:                                              ; preds = %937, %932
  br label %939

939:                                              ; preds = %938, %928
  %940 = load i1, ptr %129, align 1
  br i1 %940, label %941, label %942

941:                                              ; preds = %939
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %124) #8
  br label %942

942:                                              ; preds = %941, %939
  br label %943

943:                                              ; preds = %942, %924
  %944 = load i1, ptr %128, align 1
  br i1 %944, label %945, label %946

945:                                              ; preds = %943
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %126) #8
  br label %946

946:                                              ; preds = %945, %943
  %947 = load i1, ptr %127, align 1
  br i1 %947, label %948, label %949

948:                                              ; preds = %946
  call void @llvm.lifetime.end.p0(i64 1, ptr %126) #8
  br label %949

949:                                              ; preds = %948, %946
  %950 = load i1, ptr %125, align 1
  br i1 %950, label %951, label %952

951:                                              ; preds = %949
  call void @llvm.lifetime.end.p0(i64 32, ptr %124) #8
  br label %952

952:                                              ; preds = %951, %949
  %953 = load i1, ptr %123, align 1
  br i1 %953, label %954, label %955

954:                                              ; preds = %952
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #8
  br label %955

955:                                              ; preds = %954, %952
  br label %956

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

958:                                              ; preds = %956
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #8
  br label %959

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

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

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

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

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

967:                                              ; preds = %965
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #8
  br label %968

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

969:                                              ; preds = %968, %916
  %970 = load i1, ptr %115, align 1
  br i1 %970, label %971, label %972

971:                                              ; preds = %969
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %972

972:                                              ; preds = %971, %969
  br label %973

973:                                              ; preds = %972, %912
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #8
  %974 = load i1, ptr %113, align 1
  br i1 %974, label %975, label %976

975:                                              ; preds = %973
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #8
  br label %976

976:                                              ; preds = %975, %973
  %977 = load i1, ptr %111, align 1
  br i1 %977, label %978, label %979

978:                                              ; preds = %976
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  br label %979

979:                                              ; preds = %978, %976
  br label %980

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

982:                                              ; preds = %980
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %983

983:                                              ; preds = %982, %980
  br label %984

984:                                              ; preds = %983, %904
  %985 = load i1, ptr %109, align 1
  br i1 %985, label %986, label %987

986:                                              ; preds = %984
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #8
  br label %987

987:                                              ; preds = %986, %984
  br label %988

988:                                              ; preds = %987, %900
  %989 = load i1, ptr %108, align 1
  br i1 %989, label %990, label %991

990:                                              ; preds = %988
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #8
  br label %991

991:                                              ; preds = %990, %988
  %992 = load i1, ptr %107, align 1
  br i1 %992, label %993, label %994

993:                                              ; preds = %991
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #8
  br label %994

994:                                              ; preds = %993, %991
  %995 = load i1, ptr %105, align 1
  br i1 %995, label %996, label %997

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

997:                                              ; preds = %996, %994
  %998 = load i1, ptr %103, 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) %83) #8
  br label %1000

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

1001:                                             ; preds = %1000, %896
  %1002 = load i1, ptr %102, 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) %85) #8
  br label %1004

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

1005:                                             ; preds = %1004, %892
  %1006 = load i1, ptr %101, 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) %96) #8
  br label %1008

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

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

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

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

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

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

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

1018:                                             ; preds = %1017, %1015
  %1019 = load i1, ptr %95, 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) %87) #8
  br label %1021

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

1022:                                             ; preds = %1021, %884
  %1023 = load i1, ptr %94, 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) %89) #8
  br label %1025

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

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

1028:                                             ; preds = %1026
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %91) #8
  br label %1029

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

1031:                                             ; preds = %1029
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #8
  br label %1032

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

1034:                                             ; preds = %1032
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #8
  br label %1035

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

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

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

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

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

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

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

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

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

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

1050:                                             ; preds = %1049, %1047
  br label %1232

1051:                                             ; preds = %758
  %1052 = landingpad { ptr, i32 }
          cleanup
  %1053 = extractvalue { ptr, i32 } %1052, 0
  store ptr %1053, ptr %30, align 8
  %1054 = extractvalue { ptr, i32 } %1052, 1
  store i32 %1054, ptr %31, align 4
  br label %1197

1055:                                             ; preds = %759
  %1056 = landingpad { ptr, i32 }
          cleanup
  %1057 = extractvalue { ptr, i32 } %1056, 0
  store ptr %1057, ptr %30, align 8
  %1058 = extractvalue { ptr, i32 } %1056, 1
  store i32 %1058, ptr %31, align 4
  br label %1193

1059:                                             ; preds = %760
  %1060 = landingpad { ptr, i32 }
          cleanup
  %1061 = extractvalue { ptr, i32 } %1060, 0
  store ptr %1061, ptr %30, align 8
  %1062 = extractvalue { ptr, i32 } %1060, 1
  store i32 %1062, ptr %31, align 4
  br label %1180

1063:                                             ; preds = %761
  %1064 = landingpad { ptr, i32 }
          cleanup
  %1065 = extractvalue { ptr, i32 } %1064, 0
  store ptr %1065, ptr %30, align 8
  %1066 = extractvalue { ptr, i32 } %1064, 1
  store i32 %1066, ptr %31, align 4
  br label %1176

1067:                                             ; preds = %762
  %1068 = landingpad { ptr, i32 }
          cleanup
  %1069 = extractvalue { ptr, i32 } %1068, 0
  store ptr %1069, ptr %30, align 8
  %1070 = extractvalue { ptr, i32 } %1068, 1
  store i32 %1070, ptr %31, align 4
  br label %1172

1071:                                             ; preds = %763
  %1072 = landingpad { ptr, i32 }
          cleanup
  %1073 = extractvalue { ptr, i32 } %1072, 0
  store ptr %1073, ptr %30, align 8
  %1074 = extractvalue { ptr, i32 } %1072, 1
  store i32 %1074, ptr %31, align 4
  br label %1159

1075:                                             ; preds = %764
  %1076 = landingpad { ptr, i32 }
          cleanup
  %1077 = extractvalue { ptr, i32 } %1076, 0
  store ptr %1077, ptr %30, align 8
  %1078 = extractvalue { ptr, i32 } %1076, 1
  store i32 %1078, ptr %31, align 4
  br label %1155

1079:                                             ; preds = %765
  %1080 = landingpad { ptr, i32 }
          cleanup
  %1081 = extractvalue { ptr, i32 } %1080, 0
  store ptr %1081, ptr %30, align 8
  %1082 = extractvalue { ptr, i32 } %1080, 1
  store i32 %1082, ptr %31, align 4
  br label %1151

1083:                                             ; preds = %766
  %1084 = landingpad { ptr, i32 }
          cleanup
  %1085 = extractvalue { ptr, i32 } %1084, 0
  store ptr %1085, ptr %30, align 8
  %1086 = extractvalue { ptr, i32 } %1084, 1
  store i32 %1086, ptr %31, align 4
  br label %1144

1087:                                             ; preds = %767
  %1088 = landingpad { ptr, i32 }
          cleanup
  %1089 = extractvalue { ptr, i32 } %1088, 0
  store ptr %1089, ptr %30, align 8
  %1090 = extractvalue { ptr, i32 } %1088, 1
  store i32 %1090, ptr %31, align 4
  br label %1140

1091:                                             ; preds = %768
  %1092 = landingpad { ptr, i32 }
          cleanup
  %1093 = extractvalue { ptr, i32 } %1092, 0
  store ptr %1093, ptr %30, align 8
  %1094 = extractvalue { ptr, i32 } %1092, 1
  store i32 %1094, ptr %31, align 4
  br label %1127

1095:                                             ; preds = %769
  %1096 = landingpad { ptr, i32 }
          cleanup
  %1097 = extractvalue { ptr, i32 } %1096, 0
  store ptr %1097, ptr %30, align 8
  %1098 = extractvalue { ptr, i32 } %1096, 1
  store i32 %1098, ptr %31, align 4
  br label %1114

1099:                                             ; preds = %770
  %1100 = landingpad { ptr, i32 }
          cleanup
  %1101 = extractvalue { ptr, i32 } %1100, 0
  store ptr %1101, ptr %30, align 8
  %1102 = extractvalue { ptr, i32 } %1100, 1
  store i32 %1102, ptr %31, align 4
  br label %1110

1103:                                             ; preds = %771
  %1104 = landingpad { ptr, i32 }
          cleanup
  %1105 = extractvalue { ptr, i32 } %1104, 0
  store ptr %1105, ptr %30, align 8
  %1106 = extractvalue { ptr, i32 } %1104, 1
  store i32 %1106, ptr %31, align 4
  %1107 = load i1, ptr %189, align 1
  br i1 %1107, label %1108, label %1109

1108:                                             ; preds = %1103
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %176) #8
  br label %1109

1109:                                             ; preds = %1108, %1103
  br label %1110

1110:                                             ; preds = %1109, %1099
  %1111 = load i1, ptr %188, align 1
  br i1 %1111, label %1112, label %1113

1112:                                             ; preds = %1110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %183) #8
  br label %1113

1113:                                             ; preds = %1112, %1110
  br label %1114

1114:                                             ; preds = %1113, %1095
  %1115 = load i1, ptr %187, align 1
  br i1 %1115, label %1116, label %1117

1116:                                             ; preds = %1114
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %185) #8
  br label %1117

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

1119:                                             ; preds = %1117
  call void @llvm.lifetime.end.p0(i64 1, ptr %185) #8
  br label %1120

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

1122:                                             ; preds = %1120
  call void @llvm.lifetime.end.p0(i64 32, ptr %183) #8
  br label %1123

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

1125:                                             ; preds = %1123
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %177) #8
  br label %1126

1126:                                             ; preds = %1125, %1123
  br label %1127

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

1129:                                             ; preds = %1127
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %179) #8
  br label %1130

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

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

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

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

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

1138:                                             ; preds = %1136
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %137) #8
  br label %1139

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

1140:                                             ; preds = %1139, %1087
  %1141 = load i1, ptr %174, align 1
  br i1 %1141, label %1142, label %1143

1142:                                             ; preds = %1140
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %171) #8
  br label %1143

1143:                                             ; preds = %1142, %1140
  br label %1144

1144:                                             ; preds = %1143, %1083
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #8
  %1145 = load i1, ptr %172, align 1
  br i1 %1145, label %1146, label %1147

1146:                                             ; preds = %1144
  call void @llvm.lifetime.end.p0(i64 32, ptr %171) #8
  br label %1147

1147:                                             ; preds = %1146, %1144
  %1148 = load i1, ptr %170, align 1
  br i1 %1148, label %1149, label %1150

1149:                                             ; preds = %1147
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %138) #8
  br label %1150

1150:                                             ; preds = %1149, %1147
  br label %1151

1151:                                             ; preds = %1150, %1079
  %1152 = load i1, ptr %169, align 1
  br i1 %1152, label %1153, label %1154

1153:                                             ; preds = %1151
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %140) #8
  br label %1154

1154:                                             ; preds = %1153, %1151
  br label %1155

1155:                                             ; preds = %1154, %1075
  %1156 = load i1, ptr %168, align 1
  br i1 %1156, label %1157, label %1158

1157:                                             ; preds = %1155
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %163) #8
  br label %1158

1158:                                             ; preds = %1157, %1155
  br label %1159

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

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

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

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

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

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

1168:                                             ; preds = %1167, %1165
  %1169 = load i1, ptr %162, 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) %142) #8
  br label %1171

1171:                                             ; preds = %1170, %1168
  br label %1172

1172:                                             ; preds = %1171, %1067
  %1173 = load i1, ptr %161, align 1
  br i1 %1173, label %1174, label %1175

1174:                                             ; preds = %1172
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #8
  br label %1175

1175:                                             ; preds = %1174, %1172
  br label %1176

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

1178:                                             ; preds = %1176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #8
  br label %1179

1179:                                             ; preds = %1178, %1176
  br label %1180

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

1182:                                             ; preds = %1180
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #8
  br label %1183

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

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

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

1188:                                             ; preds = %1186
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #8
  br label %1189

1189:                                             ; preds = %1188, %1186
  %1190 = load i1, ptr %154, 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) %146) #8
  br label %1192

1192:                                             ; preds = %1191, %1189
  br label %1193

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

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

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

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

1199:                                             ; preds = %1197
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %150) #8
  br label %1200

1200:                                             ; preds = %1199, %1197
  %1201 = load i1, ptr %151, align 1
  br i1 %1201, label %1202, label %1203

1202:                                             ; preds = %1200
  call void @llvm.lifetime.end.p0(i64 1, ptr %150) #8
  br label %1203

1203:                                             ; preds = %1202, %1200
  %1204 = load i1, ptr %149, align 1
  br i1 %1204, label %1205, label %1206

1205:                                             ; preds = %1203
  call void @llvm.lifetime.end.p0(i64 32, ptr %148) #8
  br label %1206

1206:                                             ; preds = %1205, %1203
  %1207 = load i1, ptr %147, align 1
  br i1 %1207, label %1208, label %1209

1208:                                             ; preds = %1206
  call void @llvm.lifetime.end.p0(i64 32, ptr %146) #8
  br label %1209

1209:                                             ; preds = %1208, %1206
  %1210 = load i1, ptr %145, align 1
  br i1 %1210, label %1211, label %1212

1211:                                             ; preds = %1209
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #8
  br label %1212

1212:                                             ; preds = %1211, %1209
  %1213 = load i1, ptr %143, align 1
  br i1 %1213, label %1214, label %1215

1214:                                             ; preds = %1212
  call void @llvm.lifetime.end.p0(i64 32, ptr %142) #8
  br label %1215

1215:                                             ; preds = %1214, %1212
  %1216 = load i1, ptr %141, align 1
  br i1 %1216, label %1217, label %1218

1217:                                             ; preds = %1215
  call void @llvm.lifetime.end.p0(i64 32, ptr %140) #8
  br label %1218

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

1220:                                             ; preds = %1218
  call void @llvm.lifetime.end.p0(i64 32, ptr %138) #8
  br label %1221

1221:                                             ; preds = %1220, %1218
  call void @llvm.lifetime.end.p0(i64 8, ptr %136) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #8
  br label %1232

1222:                                             ; preds = %679
  %1223 = load double, ptr %135, align 8, !tbaa !9
  store double %1223, ptr %74, align 8, !tbaa !9
  store i32 0, ptr %77, align 4
  br label %1224

1224:                                             ; preds = %1222, %878
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %134) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #8
  %1225 = load i32, ptr %77, align 4
  switch i32 %1225, label %1230 [
    i32 0, label %1226
  ]

1226:                                             ; preds = %1224
  br label %1227

1227:                                             ; preds = %1226
  %1228 = load i32, ptr %76, align 4, !tbaa !16
  %1229 = add nsw i32 %1228, 1
  store i32 %1229, ptr %76, align 4, !tbaa !16
  br label %363, !llvm.loop !21

1230:                                             ; preds = %1224, %367
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  %1231 = load i32, ptr %77, align 4
  switch i32 %1231, label %1278 [
    i32 2, label %1233
  ]

1232:                                             ; preds = %1221, %1050
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  br label %1284

1233:                                             ; preds = %1230
  %1234 = 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_)
  %1235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1234, ptr noundef @.str.22)
  %1236 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1235, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1237 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1236, ptr noundef @.str.32)
  %1238 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1237, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1239 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1238, ptr noundef @.str.33)
  %1240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1239, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1241 = load double, ptr %9, align 8, !tbaa !9
  %1242 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1240, double noundef %1241)
  %1243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1242, ptr noundef @.str.9)
  %1244 = load double, ptr %10, align 8, !tbaa !9
  %1245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1243, double noundef %1244)
  %1246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1245, ptr noundef @.str.9)
  %1247 = getelementptr inbounds %class.Apex, ptr %190, i32 0, i32 6
  %1248 = load double, ptr %1247, align 8, !tbaa !23
  %1249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1246, double noundef %1248)
  %1250 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1249, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1251 = load double, ptr %75, align 8, !tbaa !9
  %1252 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1250, double noundef %1251)
  %1253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1252, ptr noundef @.str.9)
  %1254 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1253, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1255 = load double, ptr %11, align 8, !tbaa !9
  %1256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1254, double noundef %1255)
  %1257 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1256, ptr noundef @.str.9)
  %1258 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 5
  %1259 = load double, ptr %1258, align 8, !tbaa !19
  %1260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1257, double noundef %1259)
  %1261 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1260, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1261, ptr noundef @.str.9)
  %1263 = load double, ptr %12, align 8, !tbaa !9
  %1264 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1262, double noundef %1263)
  %1265 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1264, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1266 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 4
  %1267 = load ptr, ptr %1266, align 8, !tbaa !17
  %1268 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %1267)
  %1269 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1265, double noundef %1268)
  %1270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1269, ptr noundef @.str.9)
  %1271 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 4
  %1272 = load ptr, ptr %1271, align 8, !tbaa !17
  %1273 = call noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %1272)
  %1274 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %1270, double noundef %1273)
  %1275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1274, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %1276 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1275, ptr noundef @.str.22)
  %1277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1276, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #9
  unreachable

1278:                                             ; preds = %1230
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  br label %1282

1279:                                             ; preds = %348, %315
  %1280 = getelementptr inbounds %class.LayerApex, ptr %190, i32 0, i32 1
  store i32 11, ptr %1280, align 8, !tbaa !20
  %1281 = load double, ptr %72, align 8, !tbaa !9
  store double %1281, ptr %7, align 8
  store i32 1, ptr %77, align 4
  br label %1282

1282:                                             ; preds = %1279, %1278
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  %1283 = load double, ptr %7, align 8
  ret double %1283

1284:                                             ; preds = %1232, %538
  %1285 = load ptr, ptr %30, align 8
  %1286 = load i32, ptr %31, align 4
  %1287 = insertvalue { ptr, i32 } poison, ptr %1285, 0
  %1288 = insertvalue { ptr, i32 } %1287, i32 %1286, 1
  resume { ptr, i32 } %1288
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104)) #7 align 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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #7 = { 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 #8 = { nounwind }
attributes #9 = { noreturn nounwind }

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

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


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

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

@_ZN4Apex9SMALL_NUME = external local_unnamed_addr constant double, align 8
@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [4 x i8], align 1
@.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
@__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCornerEddddd = external hidden unnamed_addr constant [27 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [39 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: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #4 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)) #2

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

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

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

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

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

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

71:                                               ; preds = %70
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.1)
          to label %72 unwind label %132

72:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCornerEddddd, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %73 unwind label %134

73:                                               ; preds = %72
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %74 unwind label %136

74:                                               ; preds = %73
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.2)
          to label %75 unwind label %138

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

76:                                               ; preds = %75
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %77 unwind label %142

77:                                               ; preds = %76
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.4)
          to label %78 unwind label %144

78:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  store i32 373, ptr %21, align 4, !tbaa !15
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %79 unwind label %146

79:                                               ; preds = %78
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %20)
          to label %80 unwind label %148

80:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %81 unwind label %150

81:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %82 unwind label %152

82:                                               ; preds = %81
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %83 unwind label %154

83:                                               ; preds = %82
  %84 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %8, ptr noundef nonnull %22, i32 noundef 0)
          to label %.critedge466 unwind label %156

85:                                               ; preds = %6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  br label %.critedge487

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

.critedge487:                                     ; preds = %85, %.critedge466
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  store double %3, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  call void @_ZNK9LayerApex13getCAApexDistERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144) %0, ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %7, double noundef %1, double noundef %5, i1 noundef zeroext false)
  %86 = load double, ptr %27, align 8, !tbaa !5
  %87 = call double @cos(double noundef %86) #8
  %88 = load double, ptr %7, align 8, !tbaa !5
  %89 = call double @sin(double noundef %88) #8
  %90 = getelementptr inbounds i8, ptr %0, i64 128
  %91 = load ptr, ptr %90, align 8, !tbaa !16
  %92 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %91)
  %93 = getelementptr inbounds i8, ptr %0, i64 136
  %94 = load double, ptr %93, align 8, !tbaa !18
  %95 = call double @cos(double noundef %94) #8
  %96 = load double, ptr %7, align 8, !tbaa !5
  %97 = call double @sin(double noundef %96) #8
  %98 = insertelement <2 x double> poison, double %5, i64 0
  %99 = shufflevector <2 x double> %98, <2 x double> poison, <2 x i32> zeroinitializer
  %100 = insertelement <2 x double> poison, double %1, i64 0
  %101 = insertelement <2 x double> %100, double %92, i64 1
  %102 = fdiv <2 x double> %99, %101
  %103 = insertelement <2 x double> poison, double %87, i64 0
  %104 = insertelement <2 x double> %103, double %95, i64 1
  %105 = insertelement <2 x double> poison, double %89, i64 0
  %106 = insertelement <2 x double> %105, double %97, i64 1
  %107 = fdiv <2 x double> %104, %106
  %108 = fadd <2 x double> %107, <double 1.000000e+00, double -1.000000e+00>
  %109 = fmul <2 x double> %102, %108
  %110 = extractelement <2 x double> %109, i64 0
  %shift = shufflevector <2 x double> %109, <2 x double> poison, <2 x i32> <i32 1, i32 poison>
  %111 = fsub <2 x double> %109, %shift
  %112 = extractelement <2 x double> %111, i64 0
  %113 = load double, ptr @_ZN4Apex15NEG_ALMOST_ZEROE, align 8, !tbaa !5
  %114 = fcmp olt double %112, %113
  br i1 %114, label %115, label %388

115:                                              ; preds = %.critedge487
  %116 = load ptr, ptr %90, align 8, !tbaa !16
  %117 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %116)
  %118 = fcmp ogt double %117, %2
  br i1 %118, label %119, label %388

119:                                              ; preds = %115
  %120 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8, !tbaa !5
  %121 = load ptr, ptr %90, align 8, !tbaa !16
  %122 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %121)
  %123 = load i32, ptr @_ZN4Apex7MAX_ITRE, align 4, !tbaa !15
  %.not572 = icmp sgt i32 %123, 0
  br i1 %.not572, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %119
  %124 = fadd double %92, %120
  %125 = fdiv double %5, %124
  %126 = fneg double %110
  %127 = load double, ptr @_ZN4Apex7EPSILONE, align 8
  br label %171

128:                                              ; preds = %.critedge522
  %129 = add nuw nsw i32 %.0333574, 1
  %exitcond.not = icmp eq i32 %129, %123
  br i1 %exitcond.not, label %._crit_edge, label %171, !llvm.loop !19

130:                                              ; preds = %70
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %170

132:                                              ; preds = %71
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %169

134:                                              ; preds = %72
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %168

136:                                              ; preds = %73
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %167

138:                                              ; preds = %74
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %166

140:                                              ; preds = %75
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %165

142:                                              ; preds = %76
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %164

144:                                              ; preds = %77
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %163

146:                                              ; preds = %78
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %162

148:                                              ; preds = %79
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %161

150:                                              ; preds = %80
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %160

152:                                              ; preds = %81
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %159

154:                                              ; preds = %82
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %158

156:                                              ; preds = %83
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  br label %158

158:                                              ; preds = %154, %156
  %.pn = phi { ptr, i32 } [ %157, %156 ], [ %155, %154 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %159

159:                                              ; preds = %152, %158
  %.pn.pn = phi { ptr, i32 } [ %.pn, %158 ], [ %153, %152 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %160

160:                                              ; preds = %150, %159
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %159 ], [ %151, %150 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %161

161:                                              ; preds = %148, %160
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %160 ], [ %149, %148 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %162

162:                                              ; preds = %161, %146
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %161 ], [ %147, %146 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  br label %163

163:                                              ; preds = %144, %162
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %162 ], [ %145, %144 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  br label %164

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

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

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

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

168:                                              ; preds = %134, %167
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %167 ], [ %135, %134 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %169

169:                                              ; preds = %132, %168
  %.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, %168 ], [ %133, %132 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %170

170:                                              ; preds = %130, %169
  %.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, %169 ], [ %131, %130 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  br label %390

171:                                              ; preds = %.lr.ph, %128
  %.0333574 = phi i32 [ 0, %.lr.ph ], [ %129, %128 ]
  %.0335573 = phi double [ %125, %.lr.ph ], [ %234, %128 ]
  %172 = load ptr, ptr %90, align 8, !tbaa !16
  %173 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %172)
  %174 = load double, ptr %7, align 8, !tbaa !5
  %175 = call double @sin(double noundef %174) #8
  %176 = fmul double %173, %175
  %177 = fdiv double %176, %.0335573
  %178 = fcmp ult double %177, -1.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %42) #8
  br i1 %178, label %187, label %179

179:                                              ; preds = %171
  %180 = load ptr, ptr %90, align 8, !tbaa !16
  %181 = call noundef double @_ZNK10CornerApex14pinnedApexDistEv(ptr noundef nonnull align 8 dereferenceable(144) %180)
  %182 = load double, ptr %7, align 8, !tbaa !5
  %183 = call double @sin(double noundef %182) #8
  %184 = fmul double %181, %183
  %185 = fdiv double %184, %.0335573
  %186 = fcmp ugt double %185, 1.000000e+00
  br i1 %186, label %187, label %202

187:                                              ; preds = %179, %171
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %188 unwind label %268

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

189:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCornerEddddd, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %190 unwind label %272

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

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

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

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

194:                                              ; preds = %193
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.4)
          to label %195 unwind label %282

195:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  store i32 389, ptr %42, align 4, !tbaa !15
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 4 dereferenceable(4) %42)
          to label %196 unwind label %284

196:                                              ; preds = %195
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %197 unwind label %286

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

198:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %199 unwind label %290

199:                                              ; preds = %198
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %200 unwind label %292

200:                                              ; preds = %199
  %201 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %29, ptr noundef nonnull %43, i32 noundef 0)
          to label %.critedge501 unwind label %294

202:                                              ; preds = %179
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #8
  br label %.critedge522

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

.critedge522:                                     ; preds = %202, %.critedge501
  %203 = load double, ptr %7, align 8, !tbaa !5
  %204 = call double @sin(double noundef %203) #8
  %205 = fmul double %122, %204
  %206 = fdiv double %205, %.0335573
  %207 = call double @acos(double noundef %206) #8
  %208 = load double, ptr %7, align 8, !tbaa !5
  %209 = fsub double %207, %208
  %210 = call double @sin(double noundef %208) #8
  %211 = fmul double %122, %210
  %212 = load double, ptr %7, align 8, !tbaa !5
  %213 = fadd double %209, %212
  %214 = call double @sin(double noundef %213) #8
  %215 = fmul double %.0335573, %214
  %216 = fmul double %.0335573, %215
  %217 = fdiv double %211, %216
  %218 = call double @cos(double noundef %209) #8
  %219 = load double, ptr %7, align 8, !tbaa !5
  %220 = call double @sin(double noundef %219) #8
  %221 = fdiv double %218, %220
  %222 = fadd double %221, -1.000000e+00
  %223 = call double @llvm.fmuladd.f64(double %.0335573, double %222, double %126)
  %224 = call double @cos(double noundef %209) #8
  %225 = call double @sin(double noundef %209) #8
  %226 = fneg double %.0335573
  %227 = fmul double %217, %226
  %228 = call double @llvm.fmuladd.f64(double %227, double %225, double %224)
  %229 = load double, ptr %7, align 8, !tbaa !5
  %230 = call double @sin(double noundef %229) #8
  %231 = fdiv double %228, %230
  %232 = fadd double %231, -1.000000e+00
  %233 = fdiv double %223, %232
  %234 = fsub double %.0335573, %233
  %235 = fsub double %234, %.0335573
  %236 = fdiv double %235, %234
  %237 = call double @llvm.fabs.f64(double %236)
  %238 = fcmp uge double %237, %127
  br i1 %238, label %128, label %239

239:                                              ; preds = %.critedge522
  %240 = getelementptr inbounds i8, ptr %0, i64 104
  store i32 10, ptr %240, align 8, !tbaa !21
  %241 = fdiv double %5, %234
  %242 = call double @cos(double noundef %209) #8
  %243 = load double, ptr %7, align 8, !tbaa !5
  %244 = call double @sin(double noundef %243) #8
  %245 = fdiv double %242, %244
  %246 = fadd double %245, -1.000000e+00
  %247 = fneg double %5
  %248 = fdiv double %247, %241
  %249 = call double @llvm.fmuladd.f64(double %248, double %246, double %110)
  %250 = call double @llvm.fabs.f64(double %249)
  %251 = fcmp uge double %250, %127
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %61) #8
  br i1 %251, label %252, label %267

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

253:                                              ; preds = %252
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.1)
          to label %254 unwind label %311

254:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %57) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex26layerCollapsePc_FromCornerEddddd, ptr noundef nonnull align 1 dereferenceable(1) %57)
          to label %255 unwind label %313

255:                                              ; preds = %254
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %256 unwind label %315

256:                                              ; preds = %255
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.2)
          to label %257 unwind label %317

257:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %59) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %258 unwind label %319

258:                                              ; preds = %257
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %58)
          to label %259 unwind label %321

259:                                              ; preds = %258
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.4)
          to label %260 unwind label %323

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #8
  store i32 400, ptr %61, align 4, !tbaa !15
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 4 dereferenceable(4) %61)
          to label %261 unwind label %325

261:                                              ; preds = %260
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %60)
          to label %262 unwind label %327

262:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %263 unwind label %329

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %66) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull @.str.31, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %264 unwind label %331

264:                                              ; preds = %263
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %265 unwind label %333

265:                                              ; preds = %264
  %266 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %48, ptr noundef nonnull %62, i32 noundef 0)
          to label %.critedge537 unwind label %335

267:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %61) #8
  br label %.thread568

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

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

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

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

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

276:                                              ; preds = %191
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %304

278:                                              ; preds = %192
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %303

280:                                              ; preds = %193
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %302

282:                                              ; preds = %194
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %301

284:                                              ; preds = %195
  %285 = landingpad { ptr, i32 }
          cleanup
  br label %300

286:                                              ; preds = %196
  %287 = landingpad { ptr, i32 }
          cleanup
  br label %299

288:                                              ; preds = %197
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %298

290:                                              ; preds = %198
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %297

292:                                              ; preds = %199
  %293 = landingpad { ptr, i32 }
          cleanup
  br label %296

294:                                              ; preds = %200
  %295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %296

296:                                              ; preds = %292, %294
  %.pn424 = phi { ptr, i32 } [ %295, %294 ], [ %293, %292 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %297

297:                                              ; preds = %290, %296
  %.pn424.pn = phi { ptr, i32 } [ %.pn424, %296 ], [ %291, %290 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %298

298:                                              ; preds = %288, %297
  %.pn424.pn.pn = phi { ptr, i32 } [ %.pn424.pn, %297 ], [ %289, %288 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #8
  br label %299

299:                                              ; preds = %286, %298
  %.pn424.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn, %298 ], [ %287, %286 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %300

300:                                              ; preds = %299, %284
  %.pn424.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn, %299 ], [ %285, %284 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %301

301:                                              ; preds = %282, %300
  %.pn424.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn, %300 ], [ %283, %282 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %302

302:                                              ; preds = %280, %301
  %.pn424.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn, %301 ], [ %281, %280 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #8
  br label %303

303:                                              ; preds = %278, %302
  %.pn424.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn, %302 ], [ %279, %278 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %304

304:                                              ; preds = %276, %303
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn, %303 ], [ %277, %276 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %305

305:                                              ; preds = %274, %304
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn, %304 ], [ %275, %274 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #8
  br label %306

306:                                              ; preds = %272, %305
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn, %305 ], [ %273, %272 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  br label %307

307:                                              ; preds = %270, %306
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %306 ], [ %271, %270 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %308

308:                                              ; preds = %268, %307
  %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %307 ], [ %269, %268 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %350

309:                                              ; preds = %252
  %310 = landingpad { ptr, i32 }
          cleanup
  br label %349

311:                                              ; preds = %253
  %312 = landingpad { ptr, i32 }
          cleanup
  br label %348

313:                                              ; preds = %254
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %347

315:                                              ; preds = %255
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %346

317:                                              ; preds = %256
  %318 = landingpad { ptr, i32 }
          cleanup
  br label %345

319:                                              ; preds = %257
  %320 = landingpad { ptr, i32 }
          cleanup
  br label %344

321:                                              ; preds = %258
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %343

323:                                              ; preds = %259
  %324 = landingpad { ptr, i32 }
          cleanup
  br label %342

325:                                              ; preds = %260
  %326 = landingpad { ptr, i32 }
          cleanup
  br label %341

327:                                              ; preds = %261
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %340

329:                                              ; preds = %262
  %330 = landingpad { ptr, i32 }
          cleanup
  br label %339

331:                                              ; preds = %263
  %332 = landingpad { ptr, i32 }
          cleanup
  br label %338

333:                                              ; preds = %264
  %334 = landingpad { ptr, i32 }
          cleanup
  br label %337

335:                                              ; preds = %265
  %336 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %337

337:                                              ; preds = %333, %335
  %.pn438 = phi { ptr, i32 } [ %336, %335 ], [ %334, %333 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %338

338:                                              ; preds = %331, %337
  %.pn438.pn = phi { ptr, i32 } [ %.pn438, %337 ], [ %332, %331 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %339

339:                                              ; preds = %329, %338
  %.pn438.pn.pn = phi { ptr, i32 } [ %.pn438.pn, %338 ], [ %330, %329 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %340

340:                                              ; preds = %327, %339
  %.pn438.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn, %339 ], [ %328, %327 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %341

341:                                              ; preds = %340, %325
  %.pn438.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn, %340 ], [ %326, %325 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %342

342:                                              ; preds = %323, %341
  %.pn438.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn, %341 ], [ %324, %323 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %343

343:                                              ; preds = %321, %342
  %.pn438.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn.pn, %342 ], [ %322, %321 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %344

344:                                              ; preds = %319, %343
  %.pn438.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn.pn.pn, %343 ], [ %320, %319 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %345

345:                                              ; preds = %317, %344
  %.pn438.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn.pn.pn.pn, %344 ], [ %318, %317 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %346

346:                                              ; preds = %315, %345
  %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn.pn.pn.pn.pn, %345 ], [ %316, %315 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %347

347:                                              ; preds = %313, %346
  %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn, %346 ], [ %314, %313 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %57) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %348

348:                                              ; preds = %311, %347
  %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %347 ], [ %312, %311 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %349

349:                                              ; preds = %309, %348
  %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %348 ], [ %310, %309 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %55) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  br label %350

350:                                              ; preds = %308, %349
  %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %349 ], [ %.pn424.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %308 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  br label %390

._crit_edge:                                      ; preds = %128, %119
  %351 = 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_)
  %352 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %351, ptr noundef nonnull @.str.22)
  %353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %352, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %354 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %353, ptr noundef nonnull @.str.32)
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %356 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef nonnull @.str.33)
  %357 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %356, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %358 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %357, double noundef %1)
  %359 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull @.str.9)
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %359, double noundef %2)
  %361 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %360, ptr noundef nonnull @.str.9)
  %362 = getelementptr inbounds i8, ptr %0, i64 48
  %363 = load double, ptr %362, align 8, !tbaa !22
  %364 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %361, double noundef %363)
  %365 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %366 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %365, double noundef %122)
  %367 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %366, ptr noundef nonnull @.str.9)
  %368 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %367, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %369 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %368, double noundef %3)
  %370 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %369, ptr noundef nonnull @.str.9)
  %371 = load double, ptr %93, align 8, !tbaa !18
  %372 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %370, double noundef %371)
  %373 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %372, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %374 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %373, ptr noundef nonnull @.str.9)
  %375 = load double, ptr %7, align 8, !tbaa !5
  %376 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %374, double noundef %375)
  %377 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %376, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %378 = load ptr, ptr %90, align 8, !tbaa !16
  %379 = call noundef double @_ZNK4Apex11advancingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %378)
  %380 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %377, double noundef %379)
  %381 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %380, ptr noundef nonnull @.str.9)
  %382 = load ptr, ptr %90, align 8, !tbaa !16
  %383 = call noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104) %382)
  %384 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEd(ptr noundef nonnull align 8 dereferenceable(8) %381, double noundef %383)
  %385 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %384, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  %386 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %385, ptr noundef nonnull @.str.22)
  %387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %386, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @exit(i32 noundef -1) #9
  unreachable

388:                                              ; preds = %115, %.critedge487
  %389 = getelementptr inbounds i8, ptr %0, i64 104
  store i32 11, ptr %389, align 8, !tbaa !21
  br label %.thread568

.thread568:                                       ; preds = %267, %.critedge537, %388
  %.3 = phi double [ %92, %388 ], [ %241, %.critedge537 ], [ %241, %267 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  ret double %.3

390:                                              ; preds = %170, %350
  %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %350 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %170 ]
  resume { ptr, i32 } %.pn438.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZNK4Apex11receedingPcEv(ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #7 align 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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { 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 #7 = { 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 #8 = { nounwind }
attributes #9 = { 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 = !{!"double", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !13, i64 88}
!10 = !{!"_ZTS4Apex", !11, i64 8, !6, i64 16, !6, i64 24, !12, i64 32, !13, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !11, i64 80, !11, i64 81, !11, i64 82, !11, i64 83, !14, i64 88}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTSSt4pairIidE", !13, i64 0, !6, i64 8}
!15 = !{!13, !13, i64 0}
!16 = !{!17, !12, i64 128}
!17 = !{!"_ZTS9LayerApex", !10, i64 0, !13, i64 104, !12, i64 112, !6, i64 120, !12, i64 128, !6, i64 136}
!18 = !{!17, !6, i64 136}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = !{!17, !13, i64 104}
!22 = !{!10, !6, i64 48}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,VectorCombinePass