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

; 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%class.Apex = type { ptr, i8, double, double, ptr, i32, double, double, double, double, i8, i8, i8, i8, %"struct.std::pair" }
%"struct.std::pair" = type { i32, double }
%class.LayerApex = type { %class.Apex, i32, ptr, double, ptr, double }

@_ZN4Apex9SMALL_NUME = external constant double, align 8
@_ZN4Apex2PIE = external constant double, align 8
@.str = external hidden unnamed_addr constant [11 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [5 x i8], align 1
@__FUNCTION__._ZNK9LayerApex21getCAApexDistUntrapedERdS0_RKdddb = external hidden unnamed_addr constant [22 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.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [29 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK9LayerApex21getCAApexDistUntrapedERdS0_RKdddb(ptr noundef nonnull align 8 dereferenceable(144) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %3, double noundef %4, double noundef %5, i1 noundef zeroext %6) #0 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca double, align 8
  %13 = alloca double, align 8
  %14 = alloca i8, align 1
  %15 = alloca double, align 8
  %16 = alloca double, align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca i1, align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca i1, align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i1, align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca i1, align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca i1, align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca i1, align 1
  %30 = alloca %"class.std::allocator", align 1
  %31 = alloca i1, align 1
  %32 = alloca i1, align 1
  %33 = alloca ptr, align 8
  %34 = alloca i32, align 4
  %35 = alloca i1, align 1
  %36 = alloca i1, align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca i1, align 1
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca i1, align 1
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca i1, align 1
  %44 = alloca i1, align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca i1, align 1
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca i1, align 1
  %49 = alloca i1, align 1
  %50 = alloca i1, align 1
  %51 = alloca i1, align 1
  %52 = alloca i1, align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca i1, align 1
  %55 = alloca i32, align 4
  %56 = alloca i1, align 1
  %57 = alloca i1, align 1
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca i1, align 1
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca i1, align 1
  %63 = alloca i1, align 1
  %64 = alloca i1, align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca i1, align 1
  %67 = alloca %"class.std::allocator", align 1
  %68 = alloca i1, align 1
  %69 = alloca i1, align 1
  %70 = alloca i1, align 1
  %71 = alloca i1, align 1
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca i1, align 1
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca i1, align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca i1, align 1
  %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::allocator", align 1
  %86 = alloca i1, align 1
  %87 = alloca i1, align 1
  %88 = alloca i1, align 1
  %89 = alloca i1, align 1
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca i1, align 1
  %92 = alloca %"class.std::allocator", align 1
  %93 = alloca i1, align 1
  %94 = alloca i1, align 1
  %95 = alloca i1, align 1
  %96 = alloca i1, align 1
  %97 = alloca i1, align 1
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca i1, align 1
  %100 = alloca %"class.std::allocator", align 1
  %101 = alloca i1, align 1
  %102 = alloca i1, align 1
  %103 = alloca i1, align 1
  %104 = alloca i1, align 1
  %105 = alloca i1, align 1
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca i1, align 1
  %108 = alloca i32, align 4
  %109 = alloca i1, align 1
  %110 = alloca i1, align 1
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca i1, align 1
  %114 = alloca %"class.std::allocator", align 1
  %115 = alloca i1, align 1
  %116 = alloca i1, align 1
  %117 = alloca i1, align 1
  %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 i1, align 1
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store double %4, ptr %12, align 8, !tbaa !9
  store double %5, ptr %13, align 8, !tbaa !9
  %125 = zext i1 %6 to i8
  store i8 %125, ptr %14, align 1, !tbaa !11
  %126 = load ptr, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  %127 = load i8, ptr %14, align 1, !tbaa !11, !range !13, !noundef !14
  %128 = trunc i8 %127 to i1
  br i1 %128, label %129, label %130

129:                                              ; preds = %7
  br label %132

130:                                              ; preds = %7
  %131 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8, !tbaa !9
  br label %132

132:                                              ; preds = %130, %129
  %133 = phi double [ 0.000000e+00, %129 ], [ %131, %130 ]
  store double %133, ptr %15, align 8, !tbaa !9
  %134 = load double, ptr %12, align 8, !tbaa !9
  %135 = getelementptr inbounds %class.Apex, ptr %126, i32 0, i32 6
  %136 = load double, ptr %135, align 8, !tbaa !15
  %137 = load double, ptr %15, align 8, !tbaa !9
  %138 = fsub double %136, %137
  %139 = fcmp ogt double %134, %138
  br i1 %139, label %140, label %171

140:                                              ; preds = %132
  %141 = load double, ptr %12, align 8, !tbaa !9
  %142 = getelementptr inbounds %class.Apex, ptr %126, i32 0, i32 7
  %143 = load double, ptr %142, align 8, !tbaa !19
  %144 = load double, ptr %15, align 8, !tbaa !9
  %145 = fadd double %143, %144
  %146 = fcmp olt double %141, %145
  br i1 %146, label %147, label %171

147:                                              ; preds = %140
  %148 = load double, ptr %12, align 8, !tbaa !9
  %149 = getelementptr inbounds %class.LayerApex, ptr %126, i32 0, i32 3
  %150 = load double, ptr %149, align 8, !tbaa !20
  %151 = fmul double %148, %150
  %152 = load ptr, ptr %11, align 8, !tbaa !5
  %153 = load double, ptr %152, align 8, !tbaa !9
  %154 = call double @sin(double noundef %153) #6
  %155 = fmul double %151, %154
  %156 = load double, ptr %13, align 8, !tbaa !9
  %157 = fdiv double %155, %156
  %158 = call double @acos(double noundef %157) #6
  %159 = load ptr, ptr %11, align 8, !tbaa !5
  %160 = load double, ptr %159, align 8, !tbaa !9
  %161 = fadd double %158, %160
  %162 = load ptr, ptr %10, align 8, !tbaa !5
  store double %161, ptr %162, align 8, !tbaa !9
  %163 = load ptr, ptr %10, align 8, !tbaa !5
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZN4Apex2PIE, ptr noundef nonnull align 8 dereferenceable(8) %163)
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  store double 0.000000e+00, ptr %16, align 8, !tbaa !9
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull align 8 dereferenceable(8) %16)
  %166 = load double, ptr %165, align 8, !tbaa !9
  %167 = load ptr, ptr %10, align 8, !tbaa !5
  store double %166, ptr %167, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  %168 = getelementptr inbounds %class.LayerApex, ptr %126, i32 0, i32 3
  %169 = load double, ptr %168, align 8, !tbaa !20
  %170 = load ptr, ptr %9, align 8, !tbaa !5
  store double %169, ptr %170, align 8, !tbaa !9
  br label %791

171:                                              ; preds = %140, %132
  %172 = load double, ptr %13, align 8, !tbaa !9
  %173 = load double, ptr %12, align 8, !tbaa !9
  %174 = fdiv double %172, %173
  %175 = load ptr, ptr %10, align 8, !tbaa !5
  %176 = load double, ptr %175, align 8, !tbaa !9
  %177 = load ptr, ptr %11, align 8, !tbaa !5
  %178 = load double, ptr %177, align 8, !tbaa !9
  %179 = fsub double %176, %178
  %180 = call double @cos(double noundef %179) #6
  %181 = fmul double %174, %180
  %182 = load ptr, ptr %11, align 8, !tbaa !5
  %183 = load double, ptr %182, align 8, !tbaa !9
  %184 = call double @sin(double noundef %183) #6
  %185 = fdiv double %181, %184
  %186 = load ptr, ptr %9, align 8, !tbaa !5
  store double %185, ptr %186, align 8, !tbaa !9
  %187 = load i8, ptr %14, align 1, !tbaa !11, !range !13, !noundef !14
  %188 = trunc i8 %187 to i1
  br i1 %188, label %189, label %195

189:                                              ; preds = %171
  %190 = load ptr, ptr %9, align 8, !tbaa !5
  %191 = load double, ptr %190, align 8, !tbaa !9
  %192 = fcmp ole double %191, 0.000000e+00
  br i1 %192, label %193, label %195

193:                                              ; preds = %189
  %194 = load ptr, ptr %9, align 8, !tbaa !5
  store double 1.000000e-15, ptr %194, align 8, !tbaa !9
  br label %195

195:                                              ; preds = %193, %189, %171
  %196 = load ptr, ptr %9, align 8, !tbaa !5
  %197 = load double, ptr %196, align 8, !tbaa !9
  %198 = fcmp ogt double %197, 0.000000e+00
  store i1 false, ptr %19, align 1
  store i1 false, ptr %21, align 1
  store i1 false, ptr %23, align 1
  store i1 false, ptr %25, align 1
  store i1 false, ptr %27, align 1
  store i1 false, ptr %29, align 1
  store i1 false, ptr %31, align 1
  store i1 false, ptr %32, align 1
  store i1 false, ptr %35, align 1
  store i1 false, ptr %36, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  store i1 false, ptr %43, align 1
  store i1 false, ptr %44, align 1
  store i1 false, ptr %46, align 1
  store i1 false, ptr %48, align 1
  store i1 false, ptr %49, align 1
  store i1 false, ptr %50, align 1
  store i1 false, ptr %51, align 1
  store i1 false, ptr %52, align 1
  store i1 false, ptr %54, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #6
  store i1 false, ptr %56, align 1
  store i1 false, ptr %57, align 1
  store i1 false, ptr %60, align 1
  store i1 false, ptr %62, align 1
  store i1 false, ptr %63, align 1
  store i1 false, ptr %64, align 1
  store i1 false, ptr %66, align 1
  store i1 false, ptr %68, align 1
  store i1 false, ptr %69, align 1
  store i1 false, ptr %70, align 1
  store i1 false, ptr %71, align 1
  br i1 %198, label %215, label %199

199:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #6
  store i1 true, ptr %19, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #6
  store i1 true, ptr %21, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #6
  store i1 true, ptr %23, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #6
  store i1 true, ptr %25, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #6
  store i1 true, ptr %27, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #6
  store i1 true, ptr %29, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #6
  store i1 true, ptr %31, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #6
  store i1 true, ptr %32, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %30)
          to label %200 unwind label %449

200:                                              ; preds = %199
  store i1 true, ptr %35, 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 %26, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef @.str.1)
          to label %201 unwind label %453

201:                                              ; preds = %200
  store i1 true, ptr %36, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #6
  store i1 true, ptr %38, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #6
  store i1 true, ptr %40, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  store i1 true, ptr %41, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @__FUNCTION__._ZNK9LayerApex21getCAApexDistUntrapedERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %202 unwind label %457

202:                                              ; preds = %201
  store i1 true, ptr %42, 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 %24, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %203 unwind label %461

203:                                              ; preds = %202
  store i1 true, ptr %43, 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 %22, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.2)
          to label %204 unwind label %465

204:                                              ; preds = %203
  store i1 true, ptr %44, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #6
  store i1 true, ptr %46, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #6
  store i1 true, ptr %48, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  store i1 true, ptr %49, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %205 unwind label %469

205:                                              ; preds = %204
  store i1 true, ptr %50, 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 %20, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %206 unwind label %473

206:                                              ; preds = %205
  store i1 true, ptr %51, 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 %18, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.4)
          to label %207 unwind label %477

207:                                              ; preds = %206
  store i1 true, ptr %52, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #6
  store i1 true, ptr %54, align 1
  store i32 43, ptr %55, align 4, !tbaa !22
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 4 dereferenceable(4) %55)
          to label %208 unwind label %481

208:                                              ; preds = %207
  store i1 true, ptr %56, 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) %18, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %209 unwind label %485

209:                                              ; preds = %208
  store i1 true, ptr %57, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #6
  store i1 true, ptr %60, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #6
  store i1 true, ptr %62, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #6
  store i1 true, ptr %63, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %210 unwind label %489

210:                                              ; preds = %209
  store i1 true, ptr %64, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #6
  store i1 true, ptr %66, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %67) #6
  store i1 true, ptr %68, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  store i1 true, ptr %69, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %67)
          to label %211 unwind label %493

211:                                              ; preds = %210
  store i1 true, ptr %70, 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 %58, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %212 unwind label %497

212:                                              ; preds = %211
  store i1 true, ptr %71, align 1
  %213 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %17, ptr noundef %58, i32 noundef 0)
          to label %214 unwind label %501

214:                                              ; preds = %212
  br label %215

215:                                              ; preds = %214, %195
  %216 = phi i1 [ true, %195 ], [ %213, %214 ]
  %217 = xor i1 %216, true
  %218 = load i1, ptr %71, align 1
  br i1 %218, label %219, label %220

219:                                              ; preds = %215
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  br label %220

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

222:                                              ; preds = %220
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %223

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

225:                                              ; preds = %223
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  br label %226

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

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

229:                                              ; preds = %228, %226
  %230 = load i1, ptr %66, align 1
  br i1 %230, label %231, label %232

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

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

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

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

237:                                              ; preds = %235
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #6
  br label %238

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

240:                                              ; preds = %238
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #6
  br label %241

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

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

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

246:                                              ; preds = %244
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %247

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

249:                                              ; preds = %247
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %250

250:                                              ; preds = %249, %247
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  %251 = load i1, ptr %54, align 1
  br i1 %251, label %252, label %253

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

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

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

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

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

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

261:                                              ; preds = %259
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %262

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

264:                                              ; preds = %262
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  br label %265

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

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

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

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

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

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

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

276:                                              ; preds = %274
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %277

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

279:                                              ; preds = %277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %280

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

282:                                              ; preds = %280
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  br label %283

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

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

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

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

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

291:                                              ; preds = %289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %292

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

294:                                              ; preds = %292
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %295

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

297:                                              ; preds = %295
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %30) #6
  br label %298

298:                                              ; preds = %297, %295
  %299 = load i1, ptr %31, align 1
  br i1 %299, label %300, label %301

300:                                              ; preds = %298
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #6
  br label %301

301:                                              ; preds = %300, %298
  %302 = load i1, ptr %29, align 1
  br i1 %302, label %303, label %304

303:                                              ; preds = %301
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #6
  br label %304

304:                                              ; preds = %303, %301
  %305 = load i1, ptr %27, align 1
  br i1 %305, label %306, label %307

306:                                              ; preds = %304
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #6
  br label %307

307:                                              ; preds = %306, %304
  %308 = load i1, ptr %25, align 1
  br i1 %308, label %309, label %310

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

310:                                              ; preds = %309, %307
  %311 = load i1, ptr %23, align 1
  br i1 %311, label %312, label %313

312:                                              ; preds = %310
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #6
  br label %313

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

315:                                              ; preds = %313
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %316

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

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

319:                                              ; preds = %318, %316
  %320 = load ptr, ptr %10, align 8, !tbaa !5
  %321 = load double, ptr %320, align 8, !tbaa !9
  %322 = fcmp oge double %321, 0.000000e+00
  store i1 false, ptr %74, align 1
  store i1 false, ptr %76, align 1
  store i1 false, ptr %78, align 1
  store i1 false, ptr %80, align 1
  store i1 false, ptr %82, align 1
  store i1 false, ptr %84, align 1
  store i1 false, ptr %86, align 1
  store i1 false, ptr %87, align 1
  store i1 false, ptr %88, align 1
  store i1 false, ptr %89, align 1
  store i1 false, ptr %91, align 1
  store i1 false, ptr %93, align 1
  store i1 false, ptr %94, align 1
  store i1 false, ptr %95, align 1
  store i1 false, ptr %96, align 1
  store i1 false, ptr %97, align 1
  store i1 false, ptr %99, align 1
  store i1 false, ptr %101, align 1
  store i1 false, ptr %102, align 1
  store i1 false, ptr %103, align 1
  store i1 false, ptr %104, align 1
  store i1 false, ptr %105, align 1
  store i1 false, ptr %107, align 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #6
  store i1 false, ptr %109, align 1
  store i1 false, ptr %110, align 1
  store i1 false, ptr %113, align 1
  store i1 false, ptr %115, align 1
  store i1 false, ptr %116, align 1
  store i1 false, ptr %117, 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 %124, align 1
  br i1 %322, label %323, label %328

323:                                              ; preds = %319
  %324 = load ptr, ptr %10, align 8, !tbaa !5
  %325 = load double, ptr %324, align 8, !tbaa !9
  %326 = load double, ptr @_ZN4Apex2PIE, align 8, !tbaa !9
  %327 = fcmp ole double %325, %326
  br i1 %327, label %344, label %328

328:                                              ; preds = %323, %319
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #6
  store i1 true, ptr %74, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #6
  store i1 true, ptr %76, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #6
  store i1 true, ptr %78, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #6
  store i1 true, ptr %80, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #6
  store i1 true, ptr %82, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %83) #6
  store i1 true, ptr %84, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #6
  store i1 true, ptr %86, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #6
  store i1 true, ptr %87, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %329 unwind label %620

329:                                              ; preds = %328
  store i1 true, ptr %88, 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 %81, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef @.str.1)
          to label %330 unwind label %624

330:                                              ; preds = %329
  store i1 true, ptr %89, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %90) #6
  store i1 true, ptr %91, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %92) #6
  store i1 true, ptr %93, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #6
  store i1 true, ptr %94, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef @__FUNCTION__._ZNK9LayerApex21getCAApexDistUntrapedERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %331 unwind label %628

331:                                              ; preds = %330
  store i1 true, ptr %95, 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 %79, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull align 8 dereferenceable(32) %90)
          to label %332 unwind label %632

332:                                              ; preds = %331
  store i1 true, ptr %96, 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 %77, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str.2)
          to label %333 unwind label %636

333:                                              ; preds = %332
  store i1 true, ptr %97, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %98) #6
  store i1 true, ptr %99, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #6
  store i1 true, ptr %101, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #6
  store i1 true, ptr %102, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %100)
          to label %334 unwind label %640

334:                                              ; preds = %333
  store i1 true, ptr %103, 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 %75, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %335 unwind label %644

335:                                              ; preds = %334
  store i1 true, ptr %104, 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 %73, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef @.str.4)
          to label %336 unwind label %648

336:                                              ; preds = %335
  store i1 true, ptr %105, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #6
  store i1 true, ptr %107, align 1
  store i32 44, ptr %108, align 4, !tbaa !22
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 4 dereferenceable(4) %108)
          to label %337 unwind label %652

337:                                              ; preds = %336
  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 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %338 unwind label %656

338:                                              ; preds = %337
  store i1 true, ptr %110, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #6
  store i1 true, ptr %113, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %114) #6
  store i1 true, ptr %115, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #6
  store i1 true, ptr %116, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %114)
          to label %339 unwind label %660

339:                                              ; preds = %338
  store i1 true, ptr %117, align 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %118) #6
  store i1 true, ptr %119, align 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %120) #6
  store i1 true, ptr %121, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #6
  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.7, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %340 unwind label %664

340:                                              ; preds = %339
  store i1 true, ptr %123, 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 %111, ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %341 unwind label %668

341:                                              ; preds = %340
  store i1 true, ptr %124, align 1
  %342 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef %72, ptr noundef %111, i32 noundef 0)
          to label %343 unwind label %672

343:                                              ; preds = %341
  br label %344

344:                                              ; preds = %343, %323
  %345 = phi i1 [ true, %323 ], [ %342, %343 ]
  %346 = xor i1 %345, true
  %347 = load i1, ptr %124, align 1
  br i1 %347, label %348, label %349

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

349:                                              ; preds = %348, %344
  %350 = load i1, ptr %123, align 1
  br i1 %350, label %351, label %352

351:                                              ; preds = %349
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #6
  br label %352

352:                                              ; preds = %351, %349
  %353 = load i1, ptr %122, align 1
  br i1 %353, label %354, label %355

354:                                              ; preds = %352
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #6
  br label %355

355:                                              ; preds = %354, %352
  %356 = load i1, ptr %121, align 1
  br i1 %356, label %357, label %358

357:                                              ; preds = %355
  call void @llvm.lifetime.end.p0(i64 1, ptr %120) #6
  br label %358

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

360:                                              ; preds = %358
  call void @llvm.lifetime.end.p0(i64 32, ptr %118) #6
  br label %361

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

363:                                              ; preds = %361
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #6
  br label %364

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

366:                                              ; preds = %364
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #6
  br label %367

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

369:                                              ; preds = %367
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #6
  br label %370

370:                                              ; preds = %369, %367
  %371 = load i1, ptr %113, align 1
  br i1 %371, label %372, label %373

372:                                              ; preds = %370
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #6
  br label %373

373:                                              ; preds = %372, %370
  %374 = load i1, ptr %110, align 1
  br i1 %374, label %375, label %376

375:                                              ; preds = %373
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  br label %376

376:                                              ; preds = %375, %373
  %377 = load i1, ptr %109, align 1
  br i1 %377, label %378, label %379

378:                                              ; preds = %376
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #6
  br label %379

379:                                              ; preds = %378, %376
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #6
  %380 = load i1, ptr %107, align 1
  br i1 %380, label %381, label %382

381:                                              ; preds = %379
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #6
  br label %382

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

384:                                              ; preds = %382
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %385

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

387:                                              ; preds = %385
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %388

388:                                              ; preds = %387, %385
  %389 = load i1, ptr %103, align 1
  br i1 %389, label %390, label %391

390:                                              ; preds = %388
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #6
  br label %391

391:                                              ; preds = %390, %388
  %392 = load i1, ptr %102, align 1
  br i1 %392, label %393, label %394

393:                                              ; preds = %391
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #6
  br label %394

394:                                              ; preds = %393, %391
  %395 = load i1, ptr %101, align 1
  br i1 %395, label %396, label %397

396:                                              ; preds = %394
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #6
  br label %397

397:                                              ; preds = %396, %394
  %398 = load i1, ptr %99, align 1
  br i1 %398, label %399, label %400

399:                                              ; preds = %397
  call void @llvm.lifetime.end.p0(i64 32, ptr %98) #6
  br label %400

400:                                              ; preds = %399, %397
  %401 = load i1, ptr %97, align 1
  br i1 %401, label %402, label %403

402:                                              ; preds = %400
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %403

403:                                              ; preds = %402, %400
  %404 = load i1, ptr %96, align 1
  br i1 %404, label %405, label %406

405:                                              ; preds = %403
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  br label %406

406:                                              ; preds = %405, %403
  %407 = load i1, ptr %95, align 1
  br i1 %407, label %408, label %409

408:                                              ; preds = %406
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  br label %409

409:                                              ; preds = %408, %406
  %410 = load i1, ptr %94, align 1
  br i1 %410, label %411, label %412

411:                                              ; preds = %409
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #6
  br label %412

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

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

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

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

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

420:                                              ; preds = %418
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %421

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

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

424:                                              ; preds = %423, %421
  %425 = load i1, ptr %87, align 1
  br i1 %425, label %426, label %427

426:                                              ; preds = %424
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #6
  br label %427

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

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

430:                                              ; preds = %429, %427
  %431 = load i1, ptr %84, align 1
  br i1 %431, label %432, label %433

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

433:                                              ; preds = %432, %430
  %434 = load i1, ptr %82, align 1
  br i1 %434, label %435, label %436

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

436:                                              ; preds = %435, %433
  %437 = load i1, ptr %80, align 1
  br i1 %437, label %438, label %439

438:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #6
  br label %439

439:                                              ; preds = %438, %436
  %440 = load i1, ptr %78, align 1
  br i1 %440, label %441, label %442

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

442:                                              ; preds = %441, %439
  %443 = load i1, ptr %76, align 1
  br i1 %443, label %444, label %445

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

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

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

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

449:                                              ; preds = %199
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %33, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %34, align 4
  br label %595

453:                                              ; preds = %200
  %454 = landingpad { ptr, i32 }
          cleanup
  %455 = extractvalue { ptr, i32 } %454, 0
  store ptr %455, ptr %33, align 8
  %456 = extractvalue { ptr, i32 } %454, 1
  store i32 %456, ptr %34, align 4
  br label %591

457:                                              ; preds = %201
  %458 = landingpad { ptr, i32 }
          cleanup
  %459 = extractvalue { ptr, i32 } %458, 0
  store ptr %459, ptr %33, align 8
  %460 = extractvalue { ptr, i32 } %458, 1
  store i32 %460, ptr %34, align 4
  br label %578

461:                                              ; preds = %202
  %462 = landingpad { ptr, i32 }
          cleanup
  %463 = extractvalue { ptr, i32 } %462, 0
  store ptr %463, ptr %33, align 8
  %464 = extractvalue { ptr, i32 } %462, 1
  store i32 %464, ptr %34, align 4
  br label %574

465:                                              ; preds = %203
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %33, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %34, align 4
  br label %570

469:                                              ; preds = %204
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %33, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %34, align 4
  br label %557

473:                                              ; preds = %205
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %33, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %34, align 4
  br label %553

477:                                              ; preds = %206
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %33, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %34, align 4
  br label %549

481:                                              ; preds = %207
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %33, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %34, align 4
  br label %542

485:                                              ; preds = %208
  %486 = landingpad { ptr, i32 }
          cleanup
  %487 = extractvalue { ptr, i32 } %486, 0
  store ptr %487, ptr %33, align 8
  %488 = extractvalue { ptr, i32 } %486, 1
  store i32 %488, ptr %34, align 4
  br label %538

489:                                              ; preds = %209
  %490 = landingpad { ptr, i32 }
          cleanup
  %491 = extractvalue { ptr, i32 } %490, 0
  store ptr %491, ptr %33, align 8
  %492 = extractvalue { ptr, i32 } %490, 1
  store i32 %492, ptr %34, align 4
  br label %525

493:                                              ; preds = %210
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %33, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %34, align 4
  br label %512

497:                                              ; preds = %211
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %33, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %34, align 4
  br label %508

501:                                              ; preds = %212
  %502 = landingpad { ptr, i32 }
          cleanup
  %503 = extractvalue { ptr, i32 } %502, 0
  store ptr %503, ptr %33, align 8
  %504 = extractvalue { ptr, i32 } %502, 1
  store i32 %504, ptr %34, align 4
  %505 = load i1, ptr %71, align 1
  br i1 %505, label %506, label %507

506:                                              ; preds = %501
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #6
  br label %507

507:                                              ; preds = %506, %501
  br label %508

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

510:                                              ; preds = %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #6
  br label %511

511:                                              ; preds = %510, %508
  br label %512

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

514:                                              ; preds = %512
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %67) #6
  br label %515

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

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

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

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

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

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

524:                                              ; preds = %523, %521
  br label %525

525:                                              ; preds = %524, %489
  %526 = load i1, ptr %63, align 1
  br i1 %526, label %527, label %528

527:                                              ; preds = %525
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #6
  br label %528

528:                                              ; preds = %527, %525
  %529 = load i1, ptr %62, align 1
  br i1 %529, label %530, label %531

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

531:                                              ; preds = %530, %528
  %532 = load i1, ptr %60, align 1
  br i1 %532, label %533, label %534

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

534:                                              ; preds = %533, %531
  %535 = load i1, ptr %57, align 1
  br i1 %535, label %536, label %537

536:                                              ; preds = %534
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  br label %537

537:                                              ; preds = %536, %534
  br label %538

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

540:                                              ; preds = %538
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #6
  br label %541

541:                                              ; preds = %540, %538
  br label %542

542:                                              ; preds = %541, %481
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  %543 = load i1, ptr %54, align 1
  br i1 %543, label %544, label %545

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

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

547:                                              ; preds = %545
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #6
  br label %548

548:                                              ; preds = %547, %545
  br label %549

549:                                              ; preds = %548, %477
  %550 = load i1, ptr %51, align 1
  br i1 %550, label %551, label %552

551:                                              ; preds = %549
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #6
  br label %552

552:                                              ; preds = %551, %549
  br label %553

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

555:                                              ; preds = %553
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %556

556:                                              ; preds = %555, %553
  br label %557

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

559:                                              ; preds = %557
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #6
  br label %560

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

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

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

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

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

568:                                              ; preds = %566
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  br label %569

569:                                              ; preds = %568, %566
  br label %570

570:                                              ; preds = %569, %465
  %571 = load i1, ptr %43, align 1
  br i1 %571, label %572, label %573

572:                                              ; preds = %570
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #6
  br label %573

573:                                              ; preds = %572, %570
  br label %574

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

576:                                              ; preds = %574
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #6
  br label %577

577:                                              ; preds = %576, %574
  br label %578

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

580:                                              ; preds = %578
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  br label %581

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

583:                                              ; preds = %581
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #6
  br label %584

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

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

587:                                              ; preds = %586, %584
  %588 = load i1, ptr %36, align 1
  br i1 %588, label %589, label %590

589:                                              ; preds = %587
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #6
  br label %590

590:                                              ; preds = %589, %587
  br label %591

591:                                              ; preds = %590, %453
  %592 = load i1, ptr %35, align 1
  br i1 %592, label %593, label %594

593:                                              ; preds = %591
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %594

594:                                              ; preds = %593, %591
  br label %595

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

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

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

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

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

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

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

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

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

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

610:                                              ; preds = %609, %607
  %611 = load i1, ptr %23, align 1
  br i1 %611, label %612, label %613

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

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

615:                                              ; preds = %613
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #6
  br label %616

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

618:                                              ; preds = %616
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #6
  br label %619

619:                                              ; preds = %618, %616
  br label %792

620:                                              ; preds = %328
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %33, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %34, align 4
  br label %766

624:                                              ; preds = %329
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %33, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %34, align 4
  br label %762

628:                                              ; preds = %330
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %33, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %34, align 4
  br label %749

632:                                              ; preds = %331
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %33, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %34, align 4
  br label %745

636:                                              ; preds = %332
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %33, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %34, align 4
  br label %741

640:                                              ; preds = %333
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %33, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %34, align 4
  br label %728

644:                                              ; preds = %334
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %33, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %34, align 4
  br label %724

648:                                              ; preds = %335
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %33, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %34, align 4
  br label %720

652:                                              ; preds = %336
  %653 = landingpad { ptr, i32 }
          cleanup
  %654 = extractvalue { ptr, i32 } %653, 0
  store ptr %654, ptr %33, align 8
  %655 = extractvalue { ptr, i32 } %653, 1
  store i32 %655, ptr %34, align 4
  br label %713

656:                                              ; preds = %337
  %657 = landingpad { ptr, i32 }
          cleanup
  %658 = extractvalue { ptr, i32 } %657, 0
  store ptr %658, ptr %33, align 8
  %659 = extractvalue { ptr, i32 } %657, 1
  store i32 %659, ptr %34, align 4
  br label %709

660:                                              ; preds = %338
  %661 = landingpad { ptr, i32 }
          cleanup
  %662 = extractvalue { ptr, i32 } %661, 0
  store ptr %662, ptr %33, align 8
  %663 = extractvalue { ptr, i32 } %661, 1
  store i32 %663, ptr %34, align 4
  br label %696

664:                                              ; preds = %339
  %665 = landingpad { ptr, i32 }
          cleanup
  %666 = extractvalue { ptr, i32 } %665, 0
  store ptr %666, ptr %33, align 8
  %667 = extractvalue { ptr, i32 } %665, 1
  store i32 %667, ptr %34, align 4
  br label %683

668:                                              ; preds = %340
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %33, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %34, align 4
  br label %679

672:                                              ; preds = %341
  %673 = landingpad { ptr, i32 }
          cleanup
  %674 = extractvalue { ptr, i32 } %673, 0
  store ptr %674, ptr %33, align 8
  %675 = extractvalue { ptr, i32 } %673, 1
  store i32 %675, ptr %34, align 4
  %676 = load i1, ptr %124, align 1
  br i1 %676, label %677, label %678

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

698:                                              ; preds = %696
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %114) #6
  br label %699

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

701:                                              ; preds = %699
  call void @llvm.lifetime.end.p0(i64 1, ptr %114) #6
  br label %702

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

704:                                              ; preds = %702
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #6
  br label %705

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

707:                                              ; preds = %705
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #6
  br label %708

708:                                              ; preds = %707, %705
  br label %709

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

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

712:                                              ; preds = %711, %709
  br label %713

713:                                              ; preds = %712, %652
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #6
  %714 = load i1, ptr %107, align 1
  br i1 %714, label %715, label %716

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

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

718:                                              ; preds = %716
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #6
  br label %719

719:                                              ; preds = %718, %716
  br label %720

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

722:                                              ; preds = %720
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #6
  br label %723

723:                                              ; preds = %722, %720
  br label %724

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

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

727:                                              ; preds = %726, %724
  br label %728

728:                                              ; preds = %727, %640
  %729 = load i1, ptr %102, align 1
  br i1 %729, label %730, label %731

730:                                              ; preds = %728
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %100) #6
  br label %731

731:                                              ; preds = %730, %728
  %732 = load i1, ptr %101, align 1
  br i1 %732, label %733, label %734

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

734:                                              ; preds = %733, %731
  %735 = load i1, ptr %99, align 1
  br i1 %735, label %736, label %737

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

737:                                              ; preds = %736, %734
  %738 = load i1, ptr %97, align 1
  br i1 %738, label %739, label %740

739:                                              ; preds = %737
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #6
  br label %740

740:                                              ; preds = %739, %737
  br label %741

741:                                              ; preds = %740, %636
  %742 = load i1, ptr %96, align 1
  br i1 %742, label %743, label %744

743:                                              ; preds = %741
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #6
  br label %744

744:                                              ; preds = %743, %741
  br label %745

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

747:                                              ; preds = %745
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #6
  br label %748

748:                                              ; preds = %747, %745
  br label %749

749:                                              ; preds = %748, %628
  %750 = load i1, ptr %94, align 1
  br i1 %750, label %751, label %752

751:                                              ; preds = %749
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #6
  br label %752

752:                                              ; preds = %751, %749
  %753 = load i1, ptr %93, align 1
  br i1 %753, label %754, label %755

754:                                              ; preds = %752
  call void @llvm.lifetime.end.p0(i64 1, ptr %92) #6
  br label %755

755:                                              ; preds = %754, %752
  %756 = load i1, ptr %91, align 1
  br i1 %756, label %757, label %758

757:                                              ; preds = %755
  call void @llvm.lifetime.end.p0(i64 32, ptr %90) #6
  br label %758

758:                                              ; preds = %757, %755
  %759 = load i1, ptr %89, align 1
  br i1 %759, label %760, label %761

760:                                              ; preds = %758
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #6
  br label %761

761:                                              ; preds = %760, %758
  br label %762

762:                                              ; preds = %761, %624
  %763 = load i1, ptr %88, align 1
  br i1 %763, label %764, label %765

764:                                              ; preds = %762
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #6
  br label %765

765:                                              ; preds = %764, %762
  br label %766

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

768:                                              ; preds = %766
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #6
  br label %769

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

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

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

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

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

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

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

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

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

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

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

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

787:                                              ; preds = %786, %784
  %788 = load i1, ptr %74, align 1
  br i1 %788, label %789, label %790

789:                                              ; preds = %787
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #6
  br label %790

790:                                              ; preds = %789, %787
  br label %792

791:                                              ; preds = %448, %147
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  ret void

792:                                              ; preds = %790, %619
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  br label %793

793:                                              ; preds = %792
  %794 = load ptr, ptr %33, align 8
  %795 = load i32, ptr %34, align 4
  %796 = insertvalue { ptr, i32 } poison, ptr %794, 0
  %797 = insertvalue { ptr, i32 } %796, i32 %795, 1
  resume { ptr, i32 } %797
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

@_ZN4Apex9SMALL_NUME = external local_unnamed_addr constant double, align 8
@_ZN4Apex2PIE = external 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
@__FUNCTION__._ZNK9LayerApex21getCAApexDistUntrapedERdS0_RKdddb = external hidden unnamed_addr constant [22 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.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [29 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_ZNK9LayerApex21getCAApexDistUntrapedERdS0_RKdddb(ptr nocapture noundef nonnull readonly align 8 dereferenceable(144) %0, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %3, double noundef %4, double noundef %5, i1 noundef zeroext %6) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca double, 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::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca i32, align 4
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca i32, align 4
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = load double, ptr @_ZN4Apex9SMALL_NUME, align 8
  %48 = select i1 %6, double 0.000000e+00, double %47
  %49 = getelementptr inbounds i8, ptr %0, i64 48
  %50 = load double, ptr %49, align 8, !tbaa !5
  %51 = fsub double %50, %48
  %52 = fcmp olt double %51, %4
  br i1 %52, label %53, label %73

53:                                               ; preds = %7
  %54 = getelementptr inbounds i8, ptr %0, i64 56
  %55 = load double, ptr %54, align 8, !tbaa !14
  %56 = fadd double %48, %55
  %57 = fcmp ogt double %56, %4
  br i1 %57, label %58, label %73

58:                                               ; preds = %53
  %59 = getelementptr inbounds i8, ptr %0, i64 120
  %60 = load double, ptr %59, align 8, !tbaa !15
  %61 = fmul double %60, %4
  %62 = load double, ptr %3, align 8, !tbaa !17
  %63 = tail call double @sin(double noundef %62) #6
  %64 = fmul double %61, %63
  %65 = fdiv double %64, %5
  %66 = tail call double @acos(double noundef %65) #6
  %67 = load double, ptr %3, align 8, !tbaa !17
  %68 = fadd double %66, %67
  store double %68, ptr %2, align 8, !tbaa !17
  %69 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) @_ZN4Apex2PIE, ptr noundef nonnull align 8 dereferenceable(8) %2)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  store double 0.000000e+00, ptr %8, align 8, !tbaa !17
  %70 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIdERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %71 = load double, ptr %70, align 8, !tbaa !17
  store double %71, ptr %2, align 8, !tbaa !17
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  %72 = load double, ptr %59, align 8, !tbaa !15
  store double %72, ptr %1, align 8, !tbaa !17
  br label %.critedge355

73:                                               ; preds = %53, %7
  %74 = fdiv double %5, %4
  %75 = load double, ptr %2, align 8, !tbaa !17
  %76 = load double, ptr %3, align 8, !tbaa !17
  %77 = fsub double %75, %76
  %78 = tail call double @cos(double noundef %77) #6
  %79 = fmul double %74, %78
  %80 = load double, ptr %3, align 8, !tbaa !17
  %81 = tail call double @sin(double noundef %80) #6
  %82 = fdiv double %79, %81
  %83 = fcmp ole double %82, 0.000000e+00
  %or.cond.not = select i1 %6, i1 %83, i1 false
  %spec.store.select = select i1 %or.cond.not, double 1.000000e-15, double %82
  store double %spec.store.select, ptr %1, align 8
  %84 = fcmp ule double %spec.store.select, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #6
  br i1 %84, label %85, label %100

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

86:                                               ; preds = %85
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.1)
          to label %87 unwind label %123

87:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex21getCAApexDistUntrapedERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %88 unwind label %125

88:                                               ; preds = %87
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(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 align 8 dereferenceable(32) %17)
          to label %89 unwind label %127

89:                                               ; preds = %88
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull @.str.2)
          to label %90 unwind label %129

90:                                               ; preds = %89
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %91 unwind label %131

91:                                               ; preds = %90
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %92 unwind label %133

92:                                               ; preds = %91
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.4)
          to label %93 unwind label %135

93:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #6
  store i32 43, ptr %22, align 4, !tbaa !18
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %94 unwind label %137

94:                                               ; preds = %93
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %95 unwind label %139

95:                                               ; preds = %94
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %96 unwind label %141

96:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %97 unwind label %143

97:                                               ; preds = %96
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %98 unwind label %145

98:                                               ; preds = %97
  %99 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %9, ptr noundef nonnull %23, i32 noundef 0)
          to label %.critedge299 unwind label %147

100:                                              ; preds = %73
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  br label %.critedge320

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

.critedge320:                                     ; preds = %100, %.critedge299
  %101 = load double, ptr %2, align 8, !tbaa !17
  %102 = fcmp ult double %101, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #6
  %103 = load double, ptr @_ZN4Apex2PIE, align 8
  %104 = fcmp ugt double %101, %103
  %or.cond363 = select i1 %102, i1 true, i1 %104
  br i1 %or.cond363, label %105, label %120

105:                                              ; preds = %.critedge320
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %106 unwind label %162

106:                                              ; preds = %105
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull @.str.1)
          to label %107 unwind label %164

107:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @__FUNCTION__._ZNK9LayerApex21getCAApexDistUntrapedERdS0_RKdddb, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %108 unwind label %166

108:                                              ; preds = %107
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %109 unwind label %168

109:                                              ; preds = %108
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.2)
          to label %110 unwind label %170

110:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %111 unwind label %172

111:                                              ; preds = %110
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %112 unwind label %174

112:                                              ; preds = %111
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.4)
          to label %113 unwind label %176

113:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #6
  store i32 44, ptr %41, align 4, !tbaa !18
  invoke void @_Z2_sIiENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %114 unwind label %178

114:                                              ; preds = %113
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %115 unwind label %180

115:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %116 unwind label %182

116:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #6
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #6
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %117 unwind label %184

117:                                              ; preds = %116
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %118 unwind label %186

118:                                              ; preds = %117
  %119 = invoke noundef zeroext i1 @_Z6_cerr_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES4_i(ptr noundef nonnull %28, ptr noundef nonnull %42, i32 noundef 0)
          to label %.critedge334 unwind label %188

120:                                              ; preds = %.critedge320
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  br label %.critedge355

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

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

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

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

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

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

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

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

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

137:                                              ; preds = %93
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %153

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

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

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

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

147:                                              ; preds = %98
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #6
  br label %149

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

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

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

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

153:                                              ; preds = %152, %137
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %152 ], [ %138, %137 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #6
  br label %154

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

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

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

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

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

159:                                              ; preds = %125, %158
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %158 ], [ %126, %125 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #6
  br label %160

160:                                              ; preds = %123, %159
  %.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, %159 ], [ %124, %123 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #6
  br label %161

161:                                              ; preds = %121, %160
  %.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, %160 ], [ %122, %121 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #6
  br label %203

162:                                              ; preds = %105
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %202

164:                                              ; preds = %106
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %201

166:                                              ; preds = %107
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %200

168:                                              ; preds = %108
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %199

170:                                              ; preds = %109
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %198

172:                                              ; preds = %110
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %197

174:                                              ; preds = %111
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %196

176:                                              ; preds = %112
  %177 = landingpad { ptr, i32 }
          cleanup
  br label %195

178:                                              ; preds = %113
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %194

180:                                              ; preds = %114
  %181 = landingpad { ptr, i32 }
          cleanup
  br label %193

182:                                              ; preds = %115
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %192

184:                                              ; preds = %116
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %191

186:                                              ; preds = %117
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %190

188:                                              ; preds = %118
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #6
  br label %190

190:                                              ; preds = %186, %188
  %.pn272 = phi { ptr, i32 } [ %189, %188 ], [ %187, %186 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #6
  br label %191

191:                                              ; preds = %184, %190
  %.pn272.pn = phi { ptr, i32 } [ %.pn272, %190 ], [ %185, %184 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #6
  br label %192

192:                                              ; preds = %182, %191
  %.pn272.pn.pn = phi { ptr, i32 } [ %.pn272.pn, %191 ], [ %183, %182 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #6
  br label %193

193:                                              ; preds = %180, %192
  %.pn272.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn, %192 ], [ %181, %180 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #6
  br label %194

194:                                              ; preds = %193, %178
  %.pn272.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn, %193 ], [ %179, %178 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #6
  br label %195

195:                                              ; preds = %176, %194
  %.pn272.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn.pn, %194 ], [ %177, %176 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %196

196:                                              ; preds = %174, %195
  %.pn272.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn.pn.pn, %195 ], [ %175, %174 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #6
  br label %197

197:                                              ; preds = %172, %196
  %.pn272.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn.pn.pn.pn, %196 ], [ %173, %172 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %198

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

199:                                              ; preds = %168, %198
  %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn.pn.pn.pn.pn.pn, %198 ], [ %169, %168 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #6
  br label %200

200:                                              ; preds = %166, %199
  %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn, %199 ], [ %167, %166 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #6
  br label %201

201:                                              ; preds = %164, %200
  %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %200 ], [ %165, %164 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #6
  br label %202

202:                                              ; preds = %162, %201
  %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %201 ], [ %163, %162 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #6
  br label %203

.critedge355:                                     ; preds = %120, %.critedge334, %58
  ret void

203:                                              ; preds = %202, %161
  %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %202 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %161 ]
  resume { ptr, i32 } %.pn272.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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