; LLVM IR from EricZinda/InductorHtn :: src/FXPlatform/Prolog (HtnGoalResolver)

; 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::shared_ptr.25" = type { %"class.std::__shared_ptr.26" }
%"class.std::__shared_ptr.26" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::shared_ptr.28" = type { %"class.std::__shared_ptr.29" }
%"class.std::__shared_ptr.29" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator" = type { i8 }
%"class.std::shared_ptr.12" = type { %"class.std::__shared_ptr.13" }
%"class.std::__shared_ptr.13" = type { ptr, %"class.std::__shared_count" }
%"class.__gnu_cxx::__normal_iterator.68" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.153" = type { ptr }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.154" = type { ptr, i64 }
%"struct.std::pair" = type { %"class.std::shared_ptr.28", %"class.std::shared_ptr.28" }
%"class.std::allocator.22" = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.ResolveState = type <{ i8, [3 x i8], i32, %"class.std::shared_ptr.28", i32, i32, i32, [4 x i8], %"class.std::vector", %"class.std::__cxx11::basic_string", i8, [7 x i8], i64, %"class.std::__cxx11::basic_string", %"class.std::shared_ptr", i32, i32, ptr, %"class.std::shared_ptr.71", i64, %"class.std::shared_ptr.9", i64, ptr, i64, i32, [4 x i8] }>
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.71" = type { %"class.std::__shared_ptr.72" }
%"class.std::__shared_ptr.72" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.9" = type { %"class.std::__shared_ptr.10" }
%"class.std::__shared_ptr.10" = type { ptr, %"class.std::__shared_count" }
%class.ResolveNode = type { i32, %"class.std::vector", i32, i32, %"class.std::shared_ptr.6", %"class.std::shared_ptr.0", i64, i8, i8, %"class.std::shared_ptr.9", %"class.std::shared_ptr.12", i8, i8, %"class.std::shared_ptr" }
%"class.std::shared_ptr.6" = type { %"class.std::__shared_ptr.7" }
%"class.std::__shared_ptr.7" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }

@.str.4 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [35 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #3

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.25") align 8, ptr noundef nonnull align 8 dereferenceable(144), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) #5 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE6rbeginEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4rendEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11ResolveNode21PushStandaloneResolveEP12ResolveStateSt10shared_ptrISt3setIS2_I7HtnTermE15HtnTermComparerSaIS5_EEESt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKS5_St6vectorIS5_S7_EEEESI_20ResolveContinuePoint(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv() #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i8 noundef signext, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2IS5_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef nonnull align 8 dereferenceable(144)) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

declare void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(72), i1 noundef zeroext, i1 noundef zeroext) #7

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15HtnGoalResolver13RuleAggregateEP12ResolveState(ptr noundef %0) #5 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::shared_ptr.25", align 8
  %4 = alloca %"class.std::shared_ptr.28", align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::shared_ptr.12", align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %24 = alloca %"class.std::shared_ptr.28", align 8
  %25 = alloca %"class.std::shared_ptr.12", align 8
  %26 = alloca %"class.std::reverse_iterator", align 8
  %27 = alloca %"class.std::reverse_iterator", align 8
  %28 = alloca %"class.std::reverse_iterator", align 8
  %29 = alloca %"class.std::shared_ptr.28", align 8
  %30 = alloca %"class.std::shared_ptr.28", align 8
  %31 = alloca %"class.std::shared_ptr.28", align 8
  %32 = alloca %"class.std::shared_ptr.25", align 8
  %33 = alloca %"class.std::shared_ptr.28", align 8
  %34 = alloca ptr, align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator.153", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.153", align 8
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::vector.20", align 8
  %39 = alloca %"class.std::shared_ptr.28", align 8
  %40 = alloca %"class.std::shared_ptr.28", align 8
  %41 = alloca %"class.std::shared_ptr.28", align 8
  %42 = alloca %"class.std::shared_ptr.28", align 8
  %43 = alloca %"class.std::shared_ptr.28", align 8
  %44 = alloca %"class.std::shared_ptr.28", align 8
  %45 = alloca %"class.std::shared_ptr.28", align 8
  %46 = alloca %"class.std::shared_ptr.28", align 8
  %47 = alloca %"class.std::shared_ptr.28", align 8
  %48 = alloca %"class.std::shared_ptr.28", align 8
  %49 = alloca %"class.std::shared_ptr.28", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::shared_ptr.28", align 8
  %60 = alloca %"class.std::shared_ptr.25", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::allocator", align 1
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::shared_ptr.28", align 8
  %70 = alloca %"class.std::shared_ptr.25", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::vector.20", align 8
  %79 = alloca %"class.std::initializer_list.154", align 8
  %80 = alloca [1 x %"struct.std::pair"], align 8
  %81 = alloca ptr, align 8
  %82 = alloca %"class.std::allocator.22", align 1
  %83 = alloca %"class.std::shared_ptr.25", align 8
  %84 = alloca %"class.std::vector", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #8
  %85 = load ptr, ptr %2, align 8, !tbaa !5
  %86 = getelementptr inbounds %class.ResolveState, ptr %85, i32 0, i32 18
  %87 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %86) #8
  %88 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %87) #8
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %88) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %4) #8
  %89 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  invoke void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %4, ptr noundef nonnull align 8 dereferenceable(144) %89)
          to label %90 unwind label %103

90:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  %91 = load ptr, ptr %2, align 8, !tbaa !5
  %92 = getelementptr inbounds %class.ResolveState, ptr %91, i32 0, i32 20
  store ptr %92, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  %93 = load ptr, ptr %2, align 8, !tbaa !5
  %94 = getelementptr inbounds %class.ResolveState, ptr %93, i32 0, i32 18
  store ptr %94, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  %95 = load ptr, ptr %2, align 8, !tbaa !5
  %96 = getelementptr inbounds %class.ResolveState, ptr %95, i32 0, i32 22
  %97 = load ptr, ptr %96, align 8, !tbaa !9
  store ptr %97, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #8
  %98 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(72) %98)
          to label %99 unwind label %107

99:                                               ; preds = %90
  %100 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %101 = getelementptr inbounds %class.ResolveNode, ptr %100, i32 0, i32 0
  %102 = load i32, ptr %101, align 8, !tbaa !29
  switch i32 %102, label %794 [
    i32 0, label %111
    i32 1, label %302
  ]

103:                                              ; preds = %1
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %5, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %6, align 4
  br label %799

107:                                              ; preds = %90
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %5, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %6, align 4
  br label %798

111:                                              ; preds = %99
  %112 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %113 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %112)
          to label %114 unwind label %179

114:                                              ; preds = %111
  %115 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %113) #8
  %116 = icmp ult i64 %115, 3
  br i1 %116, label %133, label %117

117:                                              ; preds = %114
  %118 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %119 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %118)
          to label %120 unwind label %179

120:                                              ; preds = %117
  %121 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %119, i64 noundef 0) #8
  %122 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %121) #8
  %123 = invoke noundef zeroext i1 @_ZNK7HtnTerm10isVariableEv(ptr noundef nonnull align 8 dereferenceable(72) %122)
          to label %124 unwind label %179

124:                                              ; preds = %120
  br i1 %123, label %125, label %133

125:                                              ; preds = %124
  %126 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %127 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %126)
          to label %128 unwind label %179

128:                                              ; preds = %125
  %129 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %127, i64 noundef 1) #8
  %130 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %129) #8
  %131 = invoke noundef zeroext i1 @_ZNK7HtnTerm10isVariableEv(ptr noundef nonnull align 8 dereferenceable(72) %130)
          to label %132 unwind label %179

132:                                              ; preds = %128
  br i1 %131, label %239, label %133

133:                                              ; preds = %132, %124, %114
  %134 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %135 unwind label %179

135:                                              ; preds = %133
  %136 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %134)
          to label %137 unwind label %179

137:                                              ; preds = %135
  %138 = and i64 8388608, %136
  %139 = icmp ne i64 %138, 0
  br i1 %139, label %140, label %217

140:                                              ; preds = %137
  %141 = load ptr, ptr %2, align 8, !tbaa !5
  %142 = getelementptr inbounds %class.ResolveState, ptr %141, i32 0, i32 10
  %143 = load i8, ptr %142, align 8, !tbaa !38, !range !39, !noundef !40
  %144 = trunc i8 %143 to i1
  %145 = zext i1 %144 to i64
  %146 = select i1 %144, i32 0, i32 2
  %147 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %148 unwind label %179

148:                                              ; preds = %140
  %149 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %147)
          to label %150 unwind label %179

150:                                              ; preds = %148
  %151 = icmp sle i32 %146, %149
  br i1 %151, label %152, label %217

152:                                              ; preds = %150
  %153 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %154 unwind label %179

154:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #8
  %155 = load ptr, ptr %2, align 8, !tbaa !5
  %156 = getelementptr inbounds %class.ResolveState, ptr %155, i32 0, i32 15
  %157 = load i32, ptr %156, align 8, !tbaa !41
  %158 = sext i32 %157 to i64
  %159 = load ptr, ptr %8, align 8, !tbaa !5
  %160 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %159) #8
  %161 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %160) #8
  %162 = add i64 %158, %161
  %163 = mul i64 %162, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef %163, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %164 unwind label %183

164:                                              ; preds = %154
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %165 unwind label %187

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

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

167:                                              ; preds = %166
  %168 = load ptr, ptr %2, align 8, !tbaa !5
  %169 = getelementptr inbounds %class.ResolveState, ptr %168, i32 0, i32 10
  %170 = load i8, ptr %169, align 8, !tbaa !38, !range !39, !noundef !40
  %171 = trunc i8 %170 to i1
  %172 = zext i1 %171 to i64
  %173 = select i1 %171, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %174 unwind label %199

174:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #8
  %175 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(72) %175, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %176 unwind label %203

176:                                              ; preds = %174
  %177 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %153, ptr noundef nonnull align 8 dereferenceable(32) %11, i32 noundef 8388608, i32 noundef %173, ptr noundef %16, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %178 unwind label %207

178:                                              ; preds = %176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  br label %217

179:                                              ; preds = %794, %152, %148, %140, %135, %133, %128, %125, %120, %117, %111
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %5, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %6, align 4
  br label %797

183:                                              ; preds = %154
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %5, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %6, align 4
  br label %216

187:                                              ; preds = %164
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %5, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %6, align 4
  br label %215

191:                                              ; preds = %165
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %5, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %6, align 4
  br label %214

195:                                              ; preds = %166
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %5, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %6, align 4
  br label %213

199:                                              ; preds = %167
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %5, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %6, align 4
  br label %212

203:                                              ; preds = %174
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %5, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %6, align 4
  br label %211

207:                                              ; preds = %176
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %5, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %211

211:                                              ; preds = %207, %203
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %212

212:                                              ; preds = %211, %199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  br label %213

213:                                              ; preds = %212, %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %214

214:                                              ; preds = %213, %191
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %215

215:                                              ; preds = %214, %187
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %216

216:                                              ; preds = %215, %183
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  br label %797

217:                                              ; preds = %178, %150, %137
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  %218 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(72) %218, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %219 unwind label %225

219:                                              ; preds = %217
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef @.str.76, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %220 unwind label %229

220:                                              ; preds = %219
  %221 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcS0_l(i1 noundef zeroext false, ptr noundef %221, ptr noundef @.str.4, i64 noundef 1045)
          to label %222 unwind label %233

222:                                              ; preds = %220
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  %223 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %224 = getelementptr inbounds %class.ResolveNode, ptr %223, i32 0, i32 0
  store i32 8, ptr %224, align 8, !tbaa !29
  br label %301

225:                                              ; preds = %217
  %226 = landingpad { ptr, i32 }
          cleanup
  %227 = extractvalue { ptr, i32 } %226, 0
  store ptr %227, ptr %5, align 8
  %228 = extractvalue { ptr, i32 } %226, 1
  store i32 %228, ptr %6, align 4
  br label %238

229:                                              ; preds = %219
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %5, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %6, align 4
  br label %237

233:                                              ; preds = %220
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %5, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %237

237:                                              ; preds = %233, %229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #8
  br label %238

238:                                              ; preds = %237, %225
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #8
  br label %797

239:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #8
  %240 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #9
          to label %241 unwind label %256

241:                                              ; preds = %239
  call void @llvm.memset.p0.i64(ptr align 16 %240, i8 0, i64 48, i1 false)
  call void @_ZNSt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %240) #8
  invoke void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2IS5_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef %240)
          to label %242 unwind label %256

242:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %243 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %244 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %243)
          to label %245 unwind label %260

245:                                              ; preds = %242
  %246 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %244) #8
  store ptr %246, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %247 = load ptr, ptr %21, align 8, !tbaa !5
  %248 = call ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %247) #8
  %249 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %22, i32 0, i32 0
  store ptr %248, ptr %249, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %250 = load ptr, ptr %21, align 8, !tbaa !5
  %251 = call ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %250) #8
  %252 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %23, i32 0, i32 0
  store ptr %251, ptr %252, align 8
  br label %253

253:                                              ; preds = %269, %245
  %254 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  br i1 %254, label %264, label %255

255:                                              ; preds = %253
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %276

256:                                              ; preds = %241, %239
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %5, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %6, align 4
  br label %300

260:                                              ; preds = %242
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %5, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %6, align 4
  br label %275

264:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #8
  %265 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %265) #8
  %266 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %24) #8
  %267 = call noundef ptr @_ZNKSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  invoke void @_ZN7HtnTerm15GetAllVariablesEPSt3setISt10shared_ptrIS_E15HtnTermComparerSaIS2_EE(ptr noundef nonnull align 8 dereferenceable(72) %266, ptr noundef %267)
          to label %268 unwind label %271

268:                                              ; preds = %264
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #8
  br label %269

269:                                              ; preds = %268
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  br label %253

271:                                              ; preds = %264
  %272 = landingpad { ptr, i32 }
          cleanup
  %273 = extractvalue { ptr, i32 } %272, 0
  store ptr %273, ptr %5, align 8
  %274 = extractvalue { ptr, i32 } %272, 1
  store i32 %274, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %275

275:                                              ; preds = %271, %260
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %299

276:                                              ; preds = %255
  %277 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %278 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  %279 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %280 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %279)
          to label %281 unwind label %290

281:                                              ; preds = %276
  call void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE6rbeginEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %26, ptr noundef nonnull align 8 dereferenceable(24) %280) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %282 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %283 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %282)
          to label %284 unwind label %294

284:                                              ; preds = %281
  call void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4rendEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %28, ptr noundef nonnull align 8 dereferenceable(24) %283) #8
  %285 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %286 unwind label %294

286:                                              ; preds = %284
  %287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %285)
          to label %288 unwind label %294

288:                                              ; preds = %286
  call void @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %287) #8
  invoke void @_ZN11ResolveNode21PushStandaloneResolveEP12ResolveStateSt10shared_ptrISt3setIS2_I7HtnTermE15HtnTermComparerSaIS5_EEESt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKS5_St6vectorIS5_S7_EEEESI_20ResolveContinuePoint(ptr noundef nonnull align 8 dereferenceable(144) %277, ptr noundef %278, ptr noundef %25, ptr noundef %26, ptr noundef %27, i32 noundef 1)
          to label %289 unwind label %294

289:                                              ; preds = %288
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #8
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #8
  br label %301

290:                                              ; preds = %276
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %5, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %6, align 4
  br label %298

294:                                              ; preds = %288, %286, %284, %281
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %5, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %298

298:                                              ; preds = %294, %290
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #8
  br label %299

299:                                              ; preds = %298, %275
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  br label %300

300:                                              ; preds = %299, %256
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #8
  br label %797

301:                                              ; preds = %289, %222
  br label %796

302:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #8
  %303 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %304 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %303)
          to label %305 unwind label %318

305:                                              ; preds = %302
  %306 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %304, i64 noundef 0) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull align 8 dereferenceable(16) %306) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #8
  %307 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %308 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %307)
          to label %309 unwind label %322

309:                                              ; preds = %305
  %310 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %308, i64 noundef 1) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef nonnull align 8 dereferenceable(16) %310) #8
  %311 = load ptr, ptr %7, align 8, !tbaa !5
  %312 = call noundef zeroext i1 @_ZSteqISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EEEbRKS2_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %311, ptr null) #8
  br i1 %312, label %313, label %330

313:                                              ; preds = %309
  %314 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %314, ptr noundef %31, ptr noundef %32)
          to label %315 unwind label %326

315:                                              ; preds = %313
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  %316 = load ptr, ptr %8, align 8, !tbaa !5
  %317 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %316) #8
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %317) #8
  br label %783

318:                                              ; preds = %302
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %5, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %6, align 4
  br label %793

322:                                              ; preds = %305
  %323 = landingpad { ptr, i32 }
          cleanup
  %324 = extractvalue { ptr, i32 } %323, 0
  store ptr %324, ptr %5, align 8
  %325 = extractvalue { ptr, i32 } %323, 1
  store i32 %325, ptr %6, align 4
  br label %792

326:                                              ; preds = %313
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %5, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  br label %791

330:                                              ; preds = %309
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %331 = load ptr, ptr %7, align 8, !tbaa !5
  %332 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %331) #8
  store ptr %332, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %333 = load ptr, ptr %34, align 8, !tbaa !5
  %334 = call ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %333) #8
  %335 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.153", ptr %35, i32 0, i32 0
  store ptr %334, ptr %335, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  %336 = load ptr, ptr %34, align 8, !tbaa !5
  %337 = call ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %336) #8
  %338 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.153", ptr %36, i32 0, i32 0
  store ptr %337, ptr %338, align 8
  br label %339

339:                                              ; preds = %627, %330
  %340 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorISt4pairISt10shared_ptrI7HtnTermES5_ESaIS6_EES1_IS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  br i1 %340, label %342, label %341

341:                                              ; preds = %339
  store i32 5, ptr %37, align 4
  br label %632

342:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #8
  %343 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorISt4pairISt10shared_ptrI7HtnTermES5_ESaIS6_EES1_IS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  invoke void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %38, ptr noundef nonnull align 8 dereferenceable(24) %343)
          to label %344 unwind label %357

344:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #8
  %345 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZN15HtnGoalResolver19FindTermEquivalenceERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EERKS3_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %39, ptr noundef nonnull align 8 dereferenceable(24) %38, ptr noundef nonnull align 8 dereferenceable(72) %345)
          to label %346 unwind label %361

346:                                              ; preds = %344
  %347 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr null) #8
  br i1 %347, label %348, label %521

348:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #8
  %349 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  %350 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN7HtnTerm4EvalEP14HtnTermFactory(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %40, ptr noundef nonnull align 8 dereferenceable(72) %349, ptr noundef %350)
          to label %351 unwind label %365

351:                                              ; preds = %348
  %352 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr null) #8
  br i1 %352, label %353, label %412

353:                                              ; preds = %351
  %354 = call noundef zeroext i1 @_ZSteqI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr null) #8
  br i1 %354, label %355, label %369

355:                                              ; preds = %353
  %356 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  br label %411

357:                                              ; preds = %342
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %5, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %6, align 4
  br label %631

361:                                              ; preds = %344
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %5, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %6, align 4
  br label %630

365:                                              ; preds = %348
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %5, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %6, align 4
  br label %520

369:                                              ; preds = %353
  %370 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.34)
          to label %371 unwind label %376

371:                                              ; preds = %369
  br i1 %370, label %372, label %384

372:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 16, ptr %41) #8
  %373 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  invoke void @_ZN22HtnArithmeticOperators4PlusEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %41, ptr noundef %373, ptr noundef %42, ptr noundef %43)
          to label %374 unwind label %380

374:                                              ; preds = %372
  %375 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %41) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %41) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #8
  br label %410

376:                                              ; preds = %431, %427, %419, %414, %412, %406, %395, %384, %369
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %5, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %6, align 4
  br label %519

380:                                              ; preds = %372
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %5, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %41) #8
  br label %519

384:                                              ; preds = %371
  %385 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.29)
          to label %386 unwind label %376

386:                                              ; preds = %384
  br i1 %385, label %387, label %395

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #8
  %388 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  invoke void @_ZN22HtnArithmeticOperators3MinEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %44, ptr noundef %388, ptr noundef %45, ptr noundef %46)
          to label %389 unwind label %391

389:                                              ; preds = %387
  %390 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %44) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #8
  br label %409

391:                                              ; preds = %387
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %5, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #8
  br label %519

395:                                              ; preds = %386
  %396 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.28)
          to label %397 unwind label %376

397:                                              ; preds = %395
  br i1 %396, label %398, label %406

398:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #8
  %399 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  invoke void @_ZN22HtnArithmeticOperators3MaxEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %47, ptr noundef %399, ptr noundef %48, ptr noundef %49)
          to label %400 unwind label %402

400:                                              ; preds = %398
  %401 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %47) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #8
  br label %408

402:                                              ; preds = %398
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %5, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %49) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #8
  br label %519

406:                                              ; preds = %397
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext false, ptr noundef @.str.4, i64 noundef 1110)
          to label %407 unwind label %376

407:                                              ; preds = %406
  br label %408

408:                                              ; preds = %407, %400
  br label %409

409:                                              ; preds = %408, %389
  br label %410

410:                                              ; preds = %409, %374
  br label %411

411:                                              ; preds = %410, %355
  br label %515

412:                                              ; preds = %351
  %413 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %414 unwind label %376

414:                                              ; preds = %412
  %415 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %413)
          to label %416 unwind label %376

416:                                              ; preds = %414
  %417 = and i64 8388608, %415
  %418 = icmp ne i64 %417, 0
  br i1 %418, label %419, label %506

419:                                              ; preds = %416
  %420 = load ptr, ptr %2, align 8, !tbaa !5
  %421 = getelementptr inbounds %class.ResolveState, ptr %420, i32 0, i32 10
  %422 = load i8, ptr %421, align 8, !tbaa !38, !range !39, !noundef !40
  %423 = trunc i8 %422 to i1
  %424 = zext i1 %423 to i64
  %425 = select i1 %423, i32 0, i32 2
  %426 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %427 unwind label %376

427:                                              ; preds = %419
  %428 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %426)
          to label %429 unwind label %376

429:                                              ; preds = %427
  %430 = icmp sle i32 %425, %428
  br i1 %430, label %431, label %506

431:                                              ; preds = %429
  %432 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %433 unwind label %376

433:                                              ; preds = %431
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  %434 = load ptr, ptr %2, align 8, !tbaa !5
  %435 = getelementptr inbounds %class.ResolveState, ptr %434, i32 0, i32 15
  %436 = load i32, ptr %435, align 8, !tbaa !41
  %437 = sext i32 %436 to i64
  %438 = load ptr, ptr %8, align 8, !tbaa !5
  %439 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %438) #8
  %440 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %439) #8
  %441 = add i64 %437, %440
  %442 = mul i64 %441, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, i64 noundef %442, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %443 unwind label %462

443:                                              ; preds = %433
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %444 unwind label %466

444:                                              ; preds = %443
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef @.str.6)
          to label %445 unwind label %470

445:                                              ; preds = %444
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.77)
          to label %446 unwind label %474

446:                                              ; preds = %445
  %447 = load ptr, ptr %2, align 8, !tbaa !5
  %448 = getelementptr inbounds %class.ResolveState, ptr %447, i32 0, i32 10
  %449 = load i8, ptr %448, align 8, !tbaa !38, !range !39, !noundef !40
  %450 = trunc i8 %449 to i1
  %451 = zext i1 %450 to i64
  %452 = select i1 %450, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %453 unwind label %478

453:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #8
  %454 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(72) %454, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %455 unwind label %482

455:                                              ; preds = %453
  %456 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(72) %456, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %457 unwind label %486

457:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #8
  %458 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(72) %458, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %459 unwind label %490

459:                                              ; preds = %457
  %460 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_(ptr noundef nonnull align 8 dereferenceable(12) %432, ptr noundef nonnull align 8 dereferenceable(32) %50, i32 noundef 8388608, i32 noundef %452, ptr noundef %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef %57, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %461 unwind label %494

461:                                              ; preds = %459
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  br label %506

462:                                              ; preds = %433
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %5, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %6, align 4
  br label %505

466:                                              ; preds = %443
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %5, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %6, align 4
  br label %504

470:                                              ; preds = %444
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %5, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %6, align 4
  br label %503

474:                                              ; preds = %445
  %475 = landingpad { ptr, i32 }
          cleanup
  %476 = extractvalue { ptr, i32 } %475, 0
  store ptr %476, ptr %5, align 8
  %477 = extractvalue { ptr, i32 } %475, 1
  store i32 %477, ptr %6, align 4
  br label %502

478:                                              ; preds = %446
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %5, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %6, align 4
  br label %501

482:                                              ; preds = %453
  %483 = landingpad { ptr, i32 }
          cleanup
  %484 = extractvalue { ptr, i32 } %483, 0
  store ptr %484, ptr %5, align 8
  %485 = extractvalue { ptr, i32 } %483, 1
  store i32 %485, ptr %6, align 4
  br label %500

486:                                              ; preds = %455
  %487 = landingpad { ptr, i32 }
          cleanup
  %488 = extractvalue { ptr, i32 } %487, 0
  store ptr %488, ptr %5, align 8
  %489 = extractvalue { ptr, i32 } %487, 1
  store i32 %489, ptr %6, align 4
  br label %499

490:                                              ; preds = %457
  %491 = landingpad { ptr, i32 }
          cleanup
  %492 = extractvalue { ptr, i32 } %491, 0
  store ptr %492, ptr %5, align 8
  %493 = extractvalue { ptr, i32 } %491, 1
  store i32 %493, ptr %6, align 4
  br label %498

494:                                              ; preds = %459
  %495 = landingpad { ptr, i32 }
          cleanup
  %496 = extractvalue { ptr, i32 } %495, 0
  store ptr %496, ptr %5, align 8
  %497 = extractvalue { ptr, i32 } %495, 1
  store i32 %497, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %498

498:                                              ; preds = %494, %490
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %499

499:                                              ; preds = %498, %486
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %500

500:                                              ; preds = %499, %482
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %501

501:                                              ; preds = %500, %478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %502

502:                                              ; preds = %501, %474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %503

503:                                              ; preds = %502, %470
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %504

504:                                              ; preds = %503, %466
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %505

505:                                              ; preds = %504, %462
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  br label %519

506:                                              ; preds = %461, %429, %416
  %507 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %507, ptr noundef %59, ptr noundef %60)
          to label %508 unwind label %511

508:                                              ; preds = %506
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #8
  %509 = load ptr, ptr %8, align 8, !tbaa !5
  %510 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %509) #8
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %510) #8
  store i32 5, ptr %37, align 4
  br label %516

511:                                              ; preds = %506
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %5, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %59) #8
  br label %519

515:                                              ; preds = %411
  store i32 0, ptr %37, align 4
  br label %516

516:                                              ; preds = %515, %508
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  %517 = load i32, ptr %37, align 4
  switch i32 %517, label %621 [
    i32 0, label %518
  ]

518:                                              ; preds = %516
  br label %620

519:                                              ; preds = %511, %505, %402, %391, %380, %376
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  br label %520

520:                                              ; preds = %519, %365
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  br label %629

521:                                              ; preds = %346
  %522 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %523 unwind label %568

523:                                              ; preds = %521
  %524 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %522)
          to label %525 unwind label %568

525:                                              ; preds = %523
  %526 = and i64 8388608, %524
  %527 = icmp ne i64 %526, 0
  br i1 %527, label %528, label %611

528:                                              ; preds = %525
  %529 = load ptr, ptr %2, align 8, !tbaa !5
  %530 = getelementptr inbounds %class.ResolveState, ptr %529, i32 0, i32 10
  %531 = load i8, ptr %530, align 8, !tbaa !38, !range !39, !noundef !40
  %532 = trunc i8 %531 to i1
  %533 = zext i1 %532 to i64
  %534 = select i1 %532, i32 0, i32 2
  %535 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %536 unwind label %568

536:                                              ; preds = %528
  %537 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %535)
          to label %538 unwind label %568

538:                                              ; preds = %536
  %539 = icmp sle i32 %534, %537
  br i1 %539, label %540, label %611

540:                                              ; preds = %538
  %541 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %542 unwind label %568

542:                                              ; preds = %540
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #8
  %543 = load ptr, ptr %2, align 8, !tbaa !5
  %544 = getelementptr inbounds %class.ResolveState, ptr %543, i32 0, i32 15
  %545 = load i32, ptr %544, align 8, !tbaa !41
  %546 = sext i32 %545 to i64
  %547 = load ptr, ptr %8, align 8, !tbaa !5
  %548 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %547) #8
  %549 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %548) #8
  %550 = add i64 %546, %549
  %551 = mul i64 %550, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %64, i64 noundef %551, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %65)
          to label %552 unwind label %572

552:                                              ; preds = %542
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %553 unwind label %576

553:                                              ; preds = %552
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.6)
          to label %554 unwind label %580

554:                                              ; preds = %553
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.78)
          to label %555 unwind label %584

555:                                              ; preds = %554
  %556 = load ptr, ptr %2, align 8, !tbaa !5
  %557 = getelementptr inbounds %class.ResolveState, ptr %556, i32 0, i32 10
  %558 = load i8, ptr %557, align 8, !tbaa !38, !range !39, !noundef !40
  %559 = trunc i8 %558 to i1
  %560 = zext i1 %559 to i64
  %561 = select i1 %559, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %562 unwind label %588

562:                                              ; preds = %555
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #8
  %563 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(72) %563, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %564 unwind label %592

564:                                              ; preds = %562
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(24) %38, i1 noundef zeroext false)
          to label %565 unwind label %596

565:                                              ; preds = %564
  %566 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %541, ptr noundef nonnull align 8 dereferenceable(32) %61, i32 noundef 8388608, i32 noundef %561, ptr noundef %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef %68)
          to label %567 unwind label %600

567:                                              ; preds = %565
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  br label %611

568:                                              ; preds = %540, %536, %528, %523, %521
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %5, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %6, align 4
  br label %629

572:                                              ; preds = %542
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %5, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %6, align 4
  br label %610

576:                                              ; preds = %552
  %577 = landingpad { ptr, i32 }
          cleanup
  %578 = extractvalue { ptr, i32 } %577, 0
  store ptr %578, ptr %5, align 8
  %579 = extractvalue { ptr, i32 } %577, 1
  store i32 %579, ptr %6, align 4
  br label %609

580:                                              ; preds = %553
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %5, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %6, align 4
  br label %608

584:                                              ; preds = %554
  %585 = landingpad { ptr, i32 }
          cleanup
  %586 = extractvalue { ptr, i32 } %585, 0
  store ptr %586, ptr %5, align 8
  %587 = extractvalue { ptr, i32 } %585, 1
  store i32 %587, ptr %6, align 4
  br label %607

588:                                              ; preds = %555
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %5, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %6, align 4
  br label %606

592:                                              ; preds = %562
  %593 = landingpad { ptr, i32 }
          cleanup
  %594 = extractvalue { ptr, i32 } %593, 0
  store ptr %594, ptr %5, align 8
  %595 = extractvalue { ptr, i32 } %593, 1
  store i32 %595, ptr %6, align 4
  br label %605

596:                                              ; preds = %564
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %5, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %6, align 4
  br label %604

600:                                              ; preds = %565
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %5, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %604

604:                                              ; preds = %600, %596
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %605

605:                                              ; preds = %604, %592
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  br label %606

606:                                              ; preds = %605, %588
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %607

607:                                              ; preds = %606, %584
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %608

608:                                              ; preds = %607, %580
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %609

609:                                              ; preds = %608, %576
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %610

610:                                              ; preds = %609, %572
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  br label %629

611:                                              ; preds = %567, %538, %525
  %612 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %612, ptr noundef %69, ptr noundef %70)
          to label %613 unwind label %616

613:                                              ; preds = %611
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #8
  %614 = load ptr, ptr %8, align 8, !tbaa !5
  %615 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %614) #8
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %615) #8
  store i32 5, ptr %37, align 4
  br label %621

616:                                              ; preds = %611
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %5, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %70) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #8
  br label %629

620:                                              ; preds = %518
  store i32 0, ptr %37, align 4
  br label %621

621:                                              ; preds = %620, %613, %516
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  %622 = load i32, ptr %37, align 4
  switch i32 %622, label %624 [
    i32 0, label %623
  ]

623:                                              ; preds = %621
  store i32 0, ptr %37, align 4
  br label %624

624:                                              ; preds = %623, %621
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #8
  %625 = load i32, ptr %37, align 4
  switch i32 %625, label %632 [
    i32 0, label %626
  ]

626:                                              ; preds = %624
  br label %627

627:                                              ; preds = %626
  %628 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt6vectorISt4pairISt10shared_ptrI7HtnTermES5_ESaIS6_EES1_IS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  br label %339

629:                                              ; preds = %616, %610, %568, %520
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  br label %630

630:                                              ; preds = %629, %361
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  br label %631

631:                                              ; preds = %630, %357
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %782

632:                                              ; preds = %624, %341
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %633

633:                                              ; preds = %632
  %634 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr null) #8
  br i1 %634, label %635, label %781

635:                                              ; preds = %633
  %636 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %637 unwind label %681

637:                                              ; preds = %635
  %638 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %636)
          to label %639 unwind label %681

639:                                              ; preds = %637
  %640 = and i64 8388608, %638
  %641 = icmp ne i64 %640, 0
  br i1 %641, label %642, label %719

642:                                              ; preds = %639
  %643 = load ptr, ptr %2, align 8, !tbaa !5
  %644 = getelementptr inbounds %class.ResolveState, ptr %643, i32 0, i32 10
  %645 = load i8, ptr %644, align 8, !tbaa !38, !range !39, !noundef !40
  %646 = trunc i8 %645 to i1
  %647 = zext i1 %646 to i64
  %648 = select i1 %646, i32 0, i32 2
  %649 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %650 unwind label %681

650:                                              ; preds = %642
  %651 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %649)
          to label %652 unwind label %681

652:                                              ; preds = %650
  %653 = icmp sle i32 %648, %651
  br i1 %653, label %654, label %719

654:                                              ; preds = %652
  %655 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %656 unwind label %681

656:                                              ; preds = %654
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #8
  %657 = load ptr, ptr %2, align 8, !tbaa !5
  %658 = getelementptr inbounds %class.ResolveState, ptr %657, i32 0, i32 15
  %659 = load i32, ptr %658, align 8, !tbaa !41
  %660 = sext i32 %659 to i64
  %661 = load ptr, ptr %8, align 8, !tbaa !5
  %662 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %661) #8
  %663 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %662) #8
  %664 = add i64 %660, %663
  %665 = mul i64 %664, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, i64 noundef %665, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %666 unwind label %685

666:                                              ; preds = %656
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %667 unwind label %689

667:                                              ; preds = %666
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.6)
          to label %668 unwind label %693

668:                                              ; preds = %667
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str.79)
          to label %669 unwind label %697

669:                                              ; preds = %668
  %670 = load ptr, ptr %2, align 8, !tbaa !5
  %671 = getelementptr inbounds %class.ResolveState, ptr %670, i32 0, i32 10
  %672 = load i8, ptr %671, align 8, !tbaa !38, !range !39, !noundef !40
  %673 = trunc i8 %672 to i1
  %674 = zext i1 %673 to i64
  %675 = select i1 %673, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %676 unwind label %701

676:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #8
  %677 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(72) %677, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %678 unwind label %705

678:                                              ; preds = %676
  %679 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %655, ptr noundef nonnull align 8 dereferenceable(32) %71, i32 noundef 8388608, i32 noundef %675, ptr noundef %76, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %680 unwind label %709

680:                                              ; preds = %678
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  br label %719

681:                                              ; preds = %654, %650, %642, %637, %635
  %682 = landingpad { ptr, i32 }
          cleanup
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %5, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %6, align 4
  br label %782

685:                                              ; preds = %656
  %686 = landingpad { ptr, i32 }
          cleanup
  %687 = extractvalue { ptr, i32 } %686, 0
  store ptr %687, ptr %5, align 8
  %688 = extractvalue { ptr, i32 } %686, 1
  store i32 %688, ptr %6, align 4
  br label %718

689:                                              ; preds = %666
  %690 = landingpad { ptr, i32 }
          cleanup
  %691 = extractvalue { ptr, i32 } %690, 0
  store ptr %691, ptr %5, align 8
  %692 = extractvalue { ptr, i32 } %690, 1
  store i32 %692, ptr %6, align 4
  br label %717

693:                                              ; preds = %667
  %694 = landingpad { ptr, i32 }
          cleanup
  %695 = extractvalue { ptr, i32 } %694, 0
  store ptr %695, ptr %5, align 8
  %696 = extractvalue { ptr, i32 } %694, 1
  store i32 %696, ptr %6, align 4
  br label %716

697:                                              ; preds = %668
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %5, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %6, align 4
  br label %715

701:                                              ; preds = %669
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %5, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %6, align 4
  br label %714

705:                                              ; preds = %676
  %706 = landingpad { ptr, i32 }
          cleanup
  %707 = extractvalue { ptr, i32 } %706, 0
  store ptr %707, ptr %5, align 8
  %708 = extractvalue { ptr, i32 } %706, 1
  store i32 %708, ptr %6, align 4
  br label %713

709:                                              ; preds = %678
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %5, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %713

713:                                              ; preds = %709, %705
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %714

714:                                              ; preds = %713, %701
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #8
  br label %715

715:                                              ; preds = %714, %697
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  br label %716

716:                                              ; preds = %715, %693
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #8
  br label %717

717:                                              ; preds = %716, %689
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %718

718:                                              ; preds = %717, %685
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #8
  br label %782

719:                                              ; preds = %680, %652, %639
  call void @llvm.lifetime.start.p0(i64 24, ptr %78) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #8
  store ptr %80, ptr %81, align 8
  invoke void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_EC2IRS2_S5_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS7_S8_EEEbE4typeELb1EEEOS7_OS8_(ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull align 8 dereferenceable(16) %33)
          to label %720 unwind label %748

720:                                              ; preds = %719
  %721 = getelementptr inbounds %"class.std::initializer_list.154", ptr %79, i32 0, i32 0
  store ptr %80, ptr %721, align 8, !tbaa !42
  %722 = getelementptr inbounds %"class.std::initializer_list.154", ptr %79, i32 0, i32 1
  store i64 1, ptr %722, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 1, ptr %82) #8
  call void @_ZNSaISt4pairISt10shared_ptrI7HtnTermES2_EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  %723 = getelementptr inbounds { ptr, i64 }, ptr %79, i32 0, i32 0
  %724 = load ptr, ptr %723, align 8
  %725 = getelementptr inbounds { ptr, i64 }, ptr %79, i32 0, i32 1
  %726 = load i64, ptr %725, align 8
  invoke void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2ESt16initializer_listIS4_ERKS5_(ptr noundef nonnull align 8 dereferenceable(24) %78, ptr %724, i64 %726, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %727 unwind label %759

727:                                              ; preds = %720
  call void @_ZNSt15__new_allocatorISt4pairISt10shared_ptrI7HtnTermES3_EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #8
  %728 = getelementptr inbounds [1 x %"struct.std::pair"], ptr %80, i32 0, i32 0
  %729 = getelementptr inbounds %"struct.std::pair", ptr %728, i64 1
  br label %730

730:                                              ; preds = %730, %727
  %731 = phi ptr [ %729, %727 ], [ %732, %730 ]
  %732 = getelementptr inbounds %"struct.std::pair", ptr %731, i64 -1
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %732) #8
  %733 = icmp eq ptr %732, %728
  br i1 %733, label %734, label %730

734:                                              ; preds = %730
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  %735 = load ptr, ptr %8, align 8, !tbaa !5
  %736 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %735) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %83) #8
  %737 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %738 = load ptr, ptr %9, align 8, !tbaa !5
  %739 = load ptr, ptr %2, align 8, !tbaa !5
  %740 = getelementptr inbounds %class.ResolveState, ptr %739, i32 0, i32 14
  %741 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %740) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %84) #8
  call void @llvm.memset.p0.i64(ptr align 8 %84, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #8
  %742 = load ptr, ptr %2, align 8, !tbaa !5
  %743 = getelementptr inbounds %class.ResolveState, ptr %742, i32 0, i32 24
  invoke void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.25") align 8 %83, ptr noundef nonnull align 8 dereferenceable(144) %737, ptr noundef %738, ptr noundef nonnull align 8 dereferenceable(24) %741, ptr noundef nonnull align 8 dereferenceable(24) %84, ptr noundef nonnull align 8 dereferenceable(24) %78, ptr noundef %743)
          to label %744 unwind label %771

744:                                              ; preds = %734
  invoke void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %736, ptr noundef nonnull align 8 dereferenceable(16) %83)
          to label %745 unwind label %775

745:                                              ; preds = %744
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #8
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #8
  %746 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %747 = getelementptr inbounds %class.ResolveNode, ptr %746, i32 0, i32 0
  store i32 9, ptr %747, align 8, !tbaa !29
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #8
  br label %781

748:                                              ; preds = %719
  %749 = landingpad { ptr, i32 }
          cleanup
  %750 = extractvalue { ptr, i32 } %749, 0
  store ptr %750, ptr %5, align 8
  %751 = extractvalue { ptr, i32 } %749, 1
  store i32 %751, ptr %6, align 4
  %752 = load ptr, ptr %81, align 8
  %753 = icmp eq ptr %80, %752
  br i1 %753, label %758, label %754

754:                                              ; preds = %754, %748
  %755 = phi ptr [ %752, %748 ], [ %756, %754 ]
  %756 = getelementptr inbounds %"struct.std::pair", ptr %755, i64 -1
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %756) #8
  %757 = icmp eq ptr %756, %80
  br i1 %757, label %758, label %754

758:                                              ; preds = %754, %748
  br label %770

759:                                              ; preds = %720
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %5, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %6, align 4
  call void @_ZNSt15__new_allocatorISt4pairISt10shared_ptrI7HtnTermES3_EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %82) #8
  %763 = getelementptr inbounds [1 x %"struct.std::pair"], ptr %80, i32 0, i32 0
  %764 = getelementptr inbounds %"struct.std::pair", ptr %763, i64 1
  br label %765

765:                                              ; preds = %765, %759
  %766 = phi ptr [ %764, %759 ], [ %767, %765 ]
  %767 = getelementptr inbounds %"struct.std::pair", ptr %766, i64 -1
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %767) #8
  %768 = icmp eq ptr %767, %763
  br i1 %768, label %769, label %765

769:                                              ; preds = %765
  br label %770

770:                                              ; preds = %769, %758
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #8
  br label %780

771:                                              ; preds = %734
  %772 = landingpad { ptr, i32 }
          cleanup
  %773 = extractvalue { ptr, i32 } %772, 0
  store ptr %773, ptr %5, align 8
  %774 = extractvalue { ptr, i32 } %772, 1
  store i32 %774, ptr %6, align 4
  br label %779

775:                                              ; preds = %744
  %776 = landingpad { ptr, i32 }
          cleanup
  %777 = extractvalue { ptr, i32 } %776, 0
  store ptr %777, ptr %5, align 8
  %778 = extractvalue { ptr, i32 } %776, 1
  store i32 %778, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #8
  br label %779

779:                                              ; preds = %775, %771
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %84) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %84) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #8
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %78) #8
  br label %780

780:                                              ; preds = %779, %770
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #8
  br label %782

781:                                              ; preds = %745, %633
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #8
  br label %783

782:                                              ; preds = %780, %718, %681, %631
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #8
  br label %791

783:                                              ; preds = %781, %315
  %784 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %785 = load ptr, ptr %2, align 8, !tbaa !5
  invoke void @_ZN11ResolveNode20PopStandaloneResolveEP12ResolveState(ptr noundef nonnull align 8 dereferenceable(144) %784, ptr noundef %785)
          to label %786 unwind label %787

786:                                              ; preds = %783
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #8
  br label %796

787:                                              ; preds = %783
  %788 = landingpad { ptr, i32 }
          cleanup
  %789 = extractvalue { ptr, i32 } %788, 0
  store ptr %789, ptr %5, align 8
  %790 = extractvalue { ptr, i32 } %788, 1
  store i32 %790, ptr %6, align 4
  br label %791

791:                                              ; preds = %787, %782, %326
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #8
  br label %792

792:                                              ; preds = %791, %322
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #8
  br label %793

793:                                              ; preds = %792, %318
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #8
  br label %797

794:                                              ; preds = %99
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext false, ptr noundef @.str.4, i64 noundef 1153)
          to label %795 unwind label %179

795:                                              ; preds = %794
  br label %796

796:                                              ; preds = %795, %786, %301
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %4) #8
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #8
  ret void

797:                                              ; preds = %793, %300, %238, %216, %179
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  br label %798

798:                                              ; preds = %797, %107
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  br label %799

799:                                              ; preds = %798, %103
  call void @llvm.lifetime.end.p0(i64 16, ptr %4) #8
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #8
  br label %800

800:                                              ; preds = %799
  %801 = load ptr, ptr %5, align 8
  %802 = load i32, ptr %6, align 4
  %803 = insertvalue { ptr, i32 } poison, ptr %801, 0
  %804 = insertvalue { ptr, i32 } %803, i32 %802, 1
  resume { ptr, i32 } %804
}

declare void @_ZN7HtnTerm4EvalEP14HtnTermFactory(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef nonnull align 8 dereferenceable(72), ptr noundef) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15HtnGoalResolver19FindTermEquivalenceERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EERKS3_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(72)) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(72) ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1)) #1 align 2

declare void @_Z35failfast_uncaught_exception_handlerbPKcS0_l(i1 noundef zeroext, ptr noundef, ptr noundef, i64 noundef) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

declare void @_ZN7HtnTerm15GetAllVariablesEPSt3setISt10shared_ptrIS_E15HtnTermComparerSaIS2_EE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

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

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

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

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

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

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

declare void @_ZN22HtnArithmeticOperators4PlusEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef, ptr noundef, ptr noundef) #7

declare void @_ZN22HtnArithmeticOperators3MinEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef, ptr noundef, ptr noundef) #7

declare void @_ZN22HtnArithmeticOperators3MaxEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef, ptr noundef, ptr noundef) #7

declare void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext, ptr noundef, i64 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2ESt16initializer_listIS4_ERKS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

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

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

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

!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, !6, i64 224}
!10 = !{!"_ZTS12ResolveState", !11, i64 0, !12, i64 4, !13, i64 8, !12, i64 24, !12, i64 28, !12, i64 32, !16, i64 40, !20, i64 64, !11, i64 96, !22, i64 104, !20, i64 112, !23, i64 144, !12, i64 160, !12, i64 164, !6, i64 168, !25, i64 176, !22, i64 192, !27, i64 200, !22, i64 216, !6, i64 224, !22, i64 232, !12, i64 240}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"_ZTSSt10shared_ptrI7HtnTermE", !14, i64 0}
!14 = !{!"_ZTSSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!15 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!16 = !{!"_ZTSSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !22, i64 8, !7, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!22 = !{!"long", !7, i64 0}
!23 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEE", !24, i64 0}
!24 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!25 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I11ResolveNodeESaIS2_EEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!27 = !{!"_ZTSSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEE", !28, i64 0}
!28 = !{!"_ZTSSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!29 = !{!30, !31, i64 0}
!30 = !{!"_ZTS11ResolveNode", !31, i64 0, !16, i64 8, !12, i64 32, !12, i64 36, !32, i64 40, !34, i64 56, !22, i64 72, !11, i64 80, !11, i64 81, !27, i64 88, !36, i64 104, !11, i64 120, !11, i64 121, !23, i64 128}
!31 = !{!"_ZTS20ResolveContinuePoint", !7, i64 0}
!32 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEE", !33, i64 0}
!33 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!34 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEE", !35, i64 0}
!35 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!36 = !{!"_ZTSSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEE", !37, i64 0}
!37 = !{!"_ZTSSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!38 = !{!10, !11, i64 96}
!39 = !{i8 0, i8 2}
!40 = !{}
!41 = !{!10, !12, i64 160}
!42 = !{!43, !6, i64 0}
!43 = !{!"_ZTSSt16initializer_listISt4pairISt10shared_ptrI7HtnTermES3_EE", !6, i64 0, !22, i64 8}
!44 = !{!43, !22, i64 8}


; 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::shared_ptr.25" = type { %"class.std::__shared_ptr.26" }
%"class.std::__shared_ptr.26" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::shared_ptr.28" = type { %"class.std::__shared_ptr.29" }
%"class.std::__shared_ptr.29" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator" = type { i8 }
%"class.std::shared_ptr.12" = type { %"class.std::__shared_ptr.13" }
%"class.std::__shared_ptr.13" = type { ptr, %"class.std::__shared_count" }
%"class.__gnu_cxx::__normal_iterator.68" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.153" = type { ptr }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair" = type { %"class.std::shared_ptr.28", %"class.std::shared_ptr.28" }
%"class.std::allocator.22" = type { i8 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.4 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [35 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #5 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.25") align 8, ptr noundef nonnull align 8 dereferenceable(144), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE6rbeginEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4rendEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11ResolveNode21PushStandaloneResolveEP12ResolveStateSt10shared_ptrISt3setIS2_I7HtnTermE15HtnTermComparerSaIS5_EEESt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKS5_St6vectorIS5_S7_EEEESI_20ResolveContinuePoint(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv() local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i8 noundef signext, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2IS5_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

declare void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(72), i1 noundef zeroext, i1 noundef zeroext) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15HtnGoalResolver13RuleAggregateEP12ResolveState(ptr noundef %0) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::shared_ptr.25", align 8
  %3 = alloca %"class.std::shared_ptr.28", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %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::shared_ptr.12", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %17 = alloca %"class.std::shared_ptr.28", align 8
  %18 = alloca %"class.std::shared_ptr.12", align 8
  %19 = alloca %"class.std::reverse_iterator", align 8
  %20 = alloca %"class.std::reverse_iterator", align 8
  %21 = alloca %"class.std::reverse_iterator", align 8
  %22 = alloca %"class.std::shared_ptr.28", align 8
  %23 = alloca %"class.std::shared_ptr.28", align 8
  %24 = alloca %"class.std::shared_ptr.28", align 8
  %25 = alloca %"class.std::shared_ptr.25", align 8
  %26 = alloca %"class.std::shared_ptr.28", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.153", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.153", align 8
  %29 = alloca %"class.std::vector.20", align 8
  %30 = alloca %"class.std::shared_ptr.28", align 8
  %31 = alloca %"class.std::shared_ptr.28", align 8
  %32 = alloca %"class.std::shared_ptr.28", align 8
  %33 = alloca %"class.std::shared_ptr.28", align 8
  %34 = alloca %"class.std::shared_ptr.28", align 8
  %35 = alloca %"class.std::shared_ptr.28", align 8
  %36 = alloca %"class.std::shared_ptr.28", align 8
  %37 = alloca %"class.std::shared_ptr.28", align 8
  %38 = alloca %"class.std::shared_ptr.28", align 8
  %39 = alloca %"class.std::shared_ptr.28", align 8
  %40 = alloca %"class.std::shared_ptr.28", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::shared_ptr.28", align 8
  %51 = alloca %"class.std::shared_ptr.25", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::shared_ptr.28", align 8
  %61 = alloca %"class.std::shared_ptr.25", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::vector.20", align 8
  %70 = alloca [1 x %"struct.std::pair"], align 8
  %71 = alloca %"class.std::allocator.22", align 1
  %72 = alloca %"class.std::shared_ptr.25", align 8
  %73 = alloca %"class.std::vector", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #8
  %74 = getelementptr inbounds i8, ptr %0, i64 176
  %75 = tail call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  %76 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %75) #8
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull align 8 dereferenceable(16) %76) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #8
  %77 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  call void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %3, ptr noundef nonnull align 8 dereferenceable(144) %77)
  %78 = getelementptr inbounds i8, ptr %0, i64 200
  %79 = getelementptr inbounds i8, ptr %0, i64 224
  %80 = load ptr, ptr %79, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #8
  %81 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(72) %81)
          to label %82 unwind label %85

82:                                               ; preds = %1
  %83 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  %84 = load i32, ptr %83, align 8, !tbaa !28
  switch i32 %84, label %482 [
    i32 0, label %87
    i32 1, label %205
  ]

85:                                               ; preds = %1
  %86 = landingpad { ptr, i32 }
          cleanup
  br label %485

87:                                               ; preds = %82
  %88 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %89 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %88)
  %90 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %89) #8
  %91 = icmp ult i64 %90, 3
  br i1 %91, label %104, label %92

92:                                               ; preds = %87
  %93 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %94 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %93)
  %95 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %94, i64 noundef 0) #8
  %96 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %95) #8
  %97 = call noundef zeroext i1 @_ZNK7HtnTerm10isVariableEv(ptr noundef nonnull align 8 dereferenceable(72) %96)
  br i1 %97, label %98, label %104

98:                                               ; preds = %92
  %99 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %100 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %99)
  %101 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %100, i64 noundef 1) #8
  %102 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %101) #8
  %103 = call noundef zeroext i1 @_ZNK7HtnTerm10isVariableEv(ptr noundef nonnull align 8 dereferenceable(72) %102)
  br i1 %103, label %173, label %104

104:                                              ; preds = %98, %92, %87
  %105 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %106 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %105)
  %107 = and i64 %106, 8388608
  %.not138 = icmp eq i64 %107, 0
  br i1 %.not138, label %158, label %108

108:                                              ; preds = %104
  %109 = getelementptr inbounds i8, ptr %0, i64 96
  %110 = load i8, ptr %109, align 8, !tbaa !37, !range !38, !noundef !39
  %111 = trunc nuw i8 %110 to i1
  %112 = select i1 %111, i32 0, i32 2
  %113 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %114 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %113)
  %.not139 = icmp sgt i32 %112, %114
  br i1 %.not139, label %158, label %115

115:                                              ; preds = %108
  %116 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  %117 = getelementptr inbounds i8, ptr %0, i64 160
  %118 = load i32, ptr %117, align 8, !tbaa !40
  %119 = sext i32 %118 to i64
  %120 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  %121 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %120) #8
  %122 = add i64 %121, %119
  %123 = mul i64 %122, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, i64 noundef %123, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %124 unwind label %138

124:                                              ; preds = %115
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %125 unwind label %140

125:                                              ; preds = %124
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.68)
          to label %126 unwind label %142

126:                                              ; preds = %125
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.75)
          to label %127 unwind label %144

127:                                              ; preds = %126
  %128 = load i8, ptr %109, align 8, !tbaa !37, !range !38, !noundef !39
  %129 = trunc nuw i8 %128 to i1
  %130 = select i1 %129, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %131 unwind label %146

131:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  %132 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(72) %132, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %133 unwind label %148

133:                                              ; preds = %131
  %134 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %116, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef 8388608, i32 noundef %130, ptr noundef nonnull %10, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %135 unwind label %150

135:                                              ; preds = %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  br label %158

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

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

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

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

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

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

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

150:                                              ; preds = %133
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  br label %152

152:                                              ; preds = %150, %148
  %.pn140 = phi { ptr, i32 } [ %151, %150 ], [ %149, %148 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  br label %153

153:                                              ; preds = %152, %146
  %.pn140.pn = phi { ptr, i32 } [ %.pn140, %152 ], [ %147, %146 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  br label %154

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

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

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

157:                                              ; preds = %156, %138
  %.pn140.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn140.pn.pn.pn.pn, %156 ], [ %139, %138 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  br label %484

158:                                              ; preds = %135, %108, %104
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  %159 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(72) %159, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %160 unwind label %165

160:                                              ; preds = %158
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull @.str.76, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %161 unwind label %167

161:                                              ; preds = %160
  %162 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcS0_l(i1 noundef zeroext false, ptr noundef %162, ptr noundef nonnull @.str.4, i64 noundef 1045)
          to label %163 unwind label %169

163:                                              ; preds = %161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  %164 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  store i32 8, ptr %164, align 8, !tbaa !28
  br label %483

165:                                              ; preds = %158
  %166 = landingpad { ptr, i32 }
          cleanup
  br label %172

167:                                              ; preds = %160
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %171

169:                                              ; preds = %161
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %171

171:                                              ; preds = %169, %167
  %.pn147 = phi { ptr, i32 } [ %170, %169 ], [ %168, %167 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %172

172:                                              ; preds = %171, %165
  %.pn147.pn = phi { ptr, i32 } [ %.pn147, %171 ], [ %166, %165 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  br label %484

173:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #8
  %174 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #9
          to label %175 unwind label %190

175:                                              ; preds = %173
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %174, i8 0, i64 48, i1 false)
  call void @_ZNSt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %174) #8
  invoke void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2IS5_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull %174)
          to label %176 unwind label %190

176:                                              ; preds = %175
  %177 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  %178 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %177)
  %179 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %178) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  %180 = call ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  store ptr %180, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  %181 = call ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #8
  store ptr %181, ptr %16, align 8
  %182 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  br i1 %182, label %.lr.ph155, label %._crit_edge156

._crit_edge156:                                   ; preds = %195, %176
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  %183 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  call void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  %184 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %185 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %184)
  call void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE6rbeginEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %19, ptr noundef nonnull align 8 dereferenceable(24) %185) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  %186 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %187 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %186)
  call void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4rendEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %21, ptr noundef nonnull align 8 dereferenceable(24) %187) #8
  %188 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %21)
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %188)
  call void @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %189) #8
  invoke void @_ZN11ResolveNode21PushStandaloneResolveEP12ResolveStateSt10shared_ptrISt3setIS2_I7HtnTermE15HtnTermComparerSaIS5_EEESt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKS5_St6vectorIS5_S7_EEEESI_20ResolveContinuePoint(ptr noundef nonnull align 8 dereferenceable(144) %183, ptr noundef %0, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %20, i32 noundef 1)
          to label %200 unwind label %201

190:                                              ; preds = %175, %173
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %204

.lr.ph155:                                        ; preds = %176, %195
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #8
  %192 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %192) #8
  %193 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #8
  %194 = call noundef ptr @_ZNKSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  invoke void @_ZN7HtnTerm15GetAllVariablesEPSt3setISt10shared_ptrIS_E15HtnTermComparerSaIS2_EE(ptr noundef nonnull align 8 dereferenceable(72) %193, ptr noundef %194)
          to label %195 unwind label %198

195:                                              ; preds = %.lr.ph155
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #8
  %196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  %197 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  br i1 %197, label %.lr.ph155, label %._crit_edge156

198:                                              ; preds = %.lr.ph155
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %203

200:                                              ; preds = %._crit_edge156
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  br label %483

201:                                              ; preds = %._crit_edge156
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  br label %203

203:                                              ; preds = %201, %198
  %.pn135 = phi { ptr, i32 } [ %199, %198 ], [ %202, %201 ]
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  br label %204

204:                                              ; preds = %203, %190
  %.pn135.pn = phi { ptr, i32 } [ %.pn135, %203 ], [ %191, %190 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  br label %484

205:                                              ; preds = %82
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #8
  %206 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %207 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %206)
  %208 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %207, i64 noundef 0) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 8 dereferenceable(16) %208) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #8
  %209 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %210 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %209)
  %211 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %210, i64 noundef 1) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %211) #8
  %212 = call noundef zeroext i1 @_ZSteqISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EEEbRKS2_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr null) #8
  br i1 %212, label %213, label %218

213:                                              ; preds = %205
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %0, ptr noundef nonnull %24, ptr noundef nonnull %25)
          to label %214 unwind label %216

214:                                              ; preds = %213
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #8
  %215 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %215) #8
  br label %476

216:                                              ; preds = %213
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #8
  br label %481

218:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #8
  %219 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  %220 = call ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %219) #8
  store ptr %220, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  %221 = call ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %219) #8
  store ptr %221, ptr %28, align 8
  %222 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorISt4pairISt10shared_ptrI7HtnTermES5_ESaIS6_EES1_IS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  br i1 %222, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %218
  %223 = getelementptr inbounds i8, ptr %0, i64 96
  %224 = getelementptr inbounds i8, ptr %0, i64 160
  br label %225

225:                                              ; preds = %.lr.ph, %397
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #8
  %226 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt6vectorISt4pairISt10shared_ptrI7HtnTermES5_ESaIS6_EES1_IS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  invoke void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(24) %226)
          to label %227 unwind label %239

227:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #8
  %228 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZN15HtnGoalResolver19FindTermEquivalenceERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EERKS3_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %30, ptr noundef nonnull align 8 dereferenceable(24) %29, ptr noundef nonnull align 8 dereferenceable(72) %228)
          to label %229 unwind label %241

229:                                              ; preds = %227
  %230 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr null) #8
  br i1 %230, label %231, label %337

231:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #8
  %232 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZN7HtnTerm4EvalEP14HtnTermFactory(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %31, ptr noundef nonnull align 8 dereferenceable(72) %232, ptr noundef %80)
          to label %233 unwind label %243

233:                                              ; preds = %231
  %234 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr null) #8
  br i1 %234, label %235, label %269

235:                                              ; preds = %233
  %236 = call noundef zeroext i1 @_ZSteqI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr null) #8
  br i1 %236, label %237, label %245

237:                                              ; preds = %235
  %238 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  br label %334

239:                                              ; preds = %225
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %402

241:                                              ; preds = %227
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %401

243:                                              ; preds = %231
  %244 = landingpad { ptr, i32 }
          cleanup
  br label %336

245:                                              ; preds = %235
  %246 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.34)
  br i1 %246, label %247, label %254

247:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %26) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  invoke void @_ZN22HtnArithmeticOperators4PlusEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %32, ptr noundef %80, ptr noundef nonnull %33, ptr noundef nonnull %34)
          to label %248 unwind label %252

248:                                              ; preds = %247
  %249 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  br label %334

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

252:                                              ; preds = %247
  %253 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  br label %335

254:                                              ; preds = %245
  %255 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.29)
  br i1 %255, label %256, label %261

256:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %26) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  invoke void @_ZN22HtnArithmeticOperators3MinEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %35, ptr noundef %80, ptr noundef nonnull %36, ptr noundef nonnull %37)
          to label %257 unwind label %259

257:                                              ; preds = %256
  %258 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %35) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #8
  br label %334

259:                                              ; preds = %256
  %260 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #8
  br label %335

261:                                              ; preds = %254
  %262 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.28)
  br i1 %262, label %263, label %268

263:                                              ; preds = %261
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %26) #8
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  invoke void @_ZN22HtnArithmeticOperators3MaxEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %38, ptr noundef %80, ptr noundef nonnull %39, ptr noundef nonnull %40)
          to label %264 unwind label %266

264:                                              ; preds = %263
  %265 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %38) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #8
  br label %334

266:                                              ; preds = %263
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #8
  br label %335

268:                                              ; preds = %261
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext false, ptr noundef nonnull @.str.4, i64 noundef 1110)
          to label %334 unwind label %250

269:                                              ; preds = %233
  %270 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %271 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %270)
  %272 = and i64 %271, 8388608
  %.not103 = icmp eq i64 %272, 0
  br i1 %.not103, label %329, label %273

273:                                              ; preds = %269
  %274 = load i8, ptr %223, align 8, !tbaa !37, !range !38, !noundef !39
  %275 = trunc nuw i8 %274 to i1
  %276 = select i1 %275, i32 0, i32 2
  %277 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %278 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %277)
  %.not104 = icmp sgt i32 %276, %278
  br i1 %.not104, label %329, label %279

279:                                              ; preds = %273
  %280 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #8
  %281 = load i32, ptr %224, align 8, !tbaa !40
  %282 = sext i32 %281 to i64
  %283 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  %284 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %283) #8
  %285 = add i64 %284, %282
  %286 = mul i64 %285, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %45) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %44, i64 noundef %286, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %287 unwind label %303

287:                                              ; preds = %279
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %288 unwind label %305

288:                                              ; preds = %287
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.6)
          to label %289 unwind label %307

289:                                              ; preds = %288
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull @.str.77)
          to label %290 unwind label %309

290:                                              ; preds = %289
  %291 = load i8, ptr %223, align 8, !tbaa !37, !range !38, !noundef !39
  %292 = trunc nuw i8 %291 to i1
  %293 = select i1 %292, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %294 unwind label %311

294:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #8
  %295 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull align 8 dereferenceable(72) %295, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %296 unwind label %313

296:                                              ; preds = %294
  %297 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(72) %297, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %298 unwind label %315

298:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #8
  %299 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(72) %299, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %300 unwind label %317

300:                                              ; preds = %298
  %301 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_(ptr noundef nonnull align 8 dereferenceable(12) %280, ptr noundef nonnull align 8 dereferenceable(32) %41, i32 noundef 8388608, i32 noundef %293, ptr noundef nonnull %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull %48, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %302 unwind label %319

302:                                              ; preds = %300
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  br label %329

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

305:                                              ; preds = %287
  %306 = landingpad { ptr, i32 }
          cleanup
  br label %327

307:                                              ; preds = %288
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %326

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

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

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

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

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

319:                                              ; preds = %300
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %321

321:                                              ; preds = %319, %317
  %.pn105 = phi { ptr, i32 } [ %320, %319 ], [ %318, %317 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %322

322:                                              ; preds = %321, %315
  %.pn105.pn = phi { ptr, i32 } [ %.pn105, %321 ], [ %316, %315 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #8
  br label %323

323:                                              ; preds = %322, %313
  %.pn105.pn.pn = phi { ptr, i32 } [ %.pn105.pn, %322 ], [ %314, %313 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %324

324:                                              ; preds = %323, %311
  %.pn105.pn.pn.pn = phi { ptr, i32 } [ %.pn105.pn.pn, %323 ], [ %312, %311 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %325

325:                                              ; preds = %324, %309
  %.pn105.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn105.pn.pn.pn, %324 ], [ %310, %309 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %326

326:                                              ; preds = %325, %307
  %.pn105.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn105.pn.pn.pn.pn, %325 ], [ %308, %307 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #8
  br label %327

327:                                              ; preds = %326, %305
  %.pn105.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn105.pn.pn.pn.pn.pn, %326 ], [ %306, %305 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #8
  br label %328

328:                                              ; preds = %327, %303
  %.pn105.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn105.pn.pn.pn.pn.pn.pn, %327 ], [ %304, %303 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  br label %335

329:                                              ; preds = %302, %273, %269
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %0, ptr noundef nonnull %50, ptr noundef nonnull %51)
          to label %330 unwind label %332

330:                                              ; preds = %329
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #8
  %331 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %331) #8
  br label %334

332:                                              ; preds = %329
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #8
  br label %335

334:                                              ; preds = %248, %264, %268, %257, %237, %330
  %.091 = phi i32 [ 5, %330 ], [ 0, %237 ], [ 0, %257 ], [ 0, %268 ], [ 0, %264 ], [ 0, %248 ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  br label %396

335:                                              ; preds = %332, %328, %266, %259, %252, %250
  %.pn114 = phi { ptr, i32 } [ %253, %252 ], [ %260, %259 ], [ %267, %266 ], [ %251, %250 ], [ %333, %332 ], [ %.pn105.pn.pn.pn.pn.pn.pn.pn, %328 ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  br label %336

336:                                              ; preds = %335, %243
  %.pn114.pn = phi { ptr, i32 } [ %.pn114, %335 ], [ %244, %243 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  br label %400

337:                                              ; preds = %229
  %338 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %339 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %338)
  %340 = and i64 %339, 8388608
  %.not = icmp eq i64 %340, 0
  br i1 %.not, label %391, label %341

341:                                              ; preds = %337
  %342 = load i8, ptr %223, align 8, !tbaa !37, !range !38, !noundef !39
  %343 = trunc nuw i8 %342 to i1
  %344 = select i1 %343, i32 0, i32 2
  %345 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %346 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %345)
  %.not95 = icmp sgt i32 %344, %346
  br i1 %.not95, label %391, label %347

347:                                              ; preds = %341
  %348 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #8
  %349 = load i32, ptr %224, align 8, !tbaa !40
  %350 = sext i32 %349 to i64
  %351 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  %352 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %351) #8
  %353 = add i64 %352, %350
  %354 = mul i64 %353, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, i64 noundef %354, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %355 unwind label %368

355:                                              ; preds = %347
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %356 unwind label %370

356:                                              ; preds = %355
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.6)
          to label %357 unwind label %372

357:                                              ; preds = %356
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.78)
          to label %358 unwind label %374

358:                                              ; preds = %357
  %359 = load i8, ptr %223, align 8, !tbaa !37, !range !38, !noundef !39
  %360 = trunc nuw i8 %359 to i1
  %361 = select i1 %360, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %362 unwind label %376

362:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #8
  %363 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(72) %363, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %364 unwind label %378

364:                                              ; preds = %362
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(24) %29, i1 noundef zeroext false)
          to label %365 unwind label %380

365:                                              ; preds = %364
  %366 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %348, ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 8388608, i32 noundef %361, ptr noundef nonnull %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull %59)
          to label %367 unwind label %382

367:                                              ; preds = %365
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #8
  br label %391

368:                                              ; preds = %347
  %369 = landingpad { ptr, i32 }
          cleanup
  br label %390

370:                                              ; preds = %355
  %371 = landingpad { ptr, i32 }
          cleanup
  br label %389

372:                                              ; preds = %356
  %373 = landingpad { ptr, i32 }
          cleanup
  br label %388

374:                                              ; preds = %357
  %375 = landingpad { ptr, i32 }
          cleanup
  br label %387

376:                                              ; preds = %358
  %377 = landingpad { ptr, i32 }
          cleanup
  br label %386

378:                                              ; preds = %362
  %379 = landingpad { ptr, i32 }
          cleanup
  br label %385

380:                                              ; preds = %364
  %381 = landingpad { ptr, i32 }
          cleanup
  br label %384

382:                                              ; preds = %365
  %383 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %384

384:                                              ; preds = %382, %380
  %.pn = phi { ptr, i32 } [ %383, %382 ], [ %381, %380 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %385

385:                                              ; preds = %384, %378
  %.pn.pn = phi { ptr, i32 } [ %.pn, %384 ], [ %379, %378 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %386

386:                                              ; preds = %385, %376
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %385 ], [ %377, %376 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  br label %387

387:                                              ; preds = %386, %374
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %386 ], [ %375, %374 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %388

388:                                              ; preds = %387, %372
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %387 ], [ %373, %372 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %389

389:                                              ; preds = %388, %370
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %388 ], [ %371, %370 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %390

390:                                              ; preds = %389, %368
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %389 ], [ %369, %368 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #8
  br label %400

391:                                              ; preds = %367, %341, %337
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %0, ptr noundef nonnull %60, ptr noundef nonnull %61)
          to label %392 unwind label %394

392:                                              ; preds = %391
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #8
  %393 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %393) #8
  br label %396

394:                                              ; preds = %391
  %395 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #8
  br label %400

396:                                              ; preds = %334, %392
  %.192 = phi i32 [ %.091, %334 ], [ 5, %392 ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #8
  %cond = icmp eq i32 %.192, 0
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #8
  br i1 %cond, label %397, label %._crit_edge

397:                                              ; preds = %396
  %398 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt6vectorISt4pairISt10shared_ptrI7HtnTermES5_ESaIS6_EES1_IS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  %399 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt6vectorISt4pairISt10shared_ptrI7HtnTermES5_ESaIS6_EES1_IS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  br i1 %399, label %225, label %._crit_edge

400:                                              ; preds = %394, %390, %336
  %.pn114.pn.pn = phi { ptr, i32 } [ %.pn114.pn, %336 ], [ %395, %394 ], [ %.pn.pn.pn.pn.pn.pn.pn, %390 ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #8
  br label %401

401:                                              ; preds = %400, %241
  %.pn114.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn, %400 ], [ %242, %241 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #8
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  br label %402

402:                                              ; preds = %401, %239
  %.pn114.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn114.pn.pn.pn, %401 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  br label %475

._crit_edge:                                      ; preds = %396, %397, %218
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  %403 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr null) #8
  br i1 %403, label %404, label %474

404:                                              ; preds = %._crit_edge
  %405 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %406 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %405)
  %407 = and i64 %406, 8388608
  %.not120 = icmp eq i64 %407, 0
  br i1 %.not120, label %456, label %408

408:                                              ; preds = %404
  %409 = getelementptr inbounds i8, ptr %0, i64 96
  %410 = load i8, ptr %409, align 8, !tbaa !37, !range !38, !noundef !39
  %411 = trunc nuw i8 %410 to i1
  %412 = select i1 %411, i32 0, i32 2
  %413 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %414 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %413)
  %.not121 = icmp sgt i32 %412, %414
  br i1 %.not121, label %456, label %415

415:                                              ; preds = %408
  %416 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #8
  %417 = getelementptr inbounds i8, ptr %0, i64 160
  %418 = load i32, ptr %417, align 8, !tbaa !40
  %419 = sext i32 %418 to i64
  %420 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  %421 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %420) #8
  %422 = add i64 %421, %419
  %423 = mul i64 %422, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %66) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, i64 noundef %423, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %424 unwind label %436

424:                                              ; preds = %415
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %425 unwind label %438

425:                                              ; preds = %424
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull @.str.6)
          to label %426 unwind label %440

426:                                              ; preds = %425
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.79)
          to label %427 unwind label %442

427:                                              ; preds = %426
  %428 = load i8, ptr %409, align 8, !tbaa !37, !range !38, !noundef !39
  %429 = trunc nuw i8 %428 to i1
  %430 = select i1 %429, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %431 unwind label %444

431:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #8
  %432 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(72) %432, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %433 unwind label %446

433:                                              ; preds = %431
  %434 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %416, ptr noundef nonnull align 8 dereferenceable(32) %62, i32 noundef 8388608, i32 noundef %430, ptr noundef nonnull %67, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %435 unwind label %448

435:                                              ; preds = %433
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  br label %456

436:                                              ; preds = %415
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %455

438:                                              ; preds = %424
  %439 = landingpad { ptr, i32 }
          cleanup
  br label %454

440:                                              ; preds = %425
  %441 = landingpad { ptr, i32 }
          cleanup
  br label %453

442:                                              ; preds = %426
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %452

444:                                              ; preds = %427
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %451

446:                                              ; preds = %431
  %447 = landingpad { ptr, i32 }
          cleanup
  br label %450

448:                                              ; preds = %433
  %449 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #8
  br label %450

450:                                              ; preds = %448, %446
  %.pn122 = phi { ptr, i32 } [ %449, %448 ], [ %447, %446 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %451

451:                                              ; preds = %450, %444
  %.pn122.pn = phi { ptr, i32 } [ %.pn122, %450 ], [ %445, %444 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %452

452:                                              ; preds = %451, %442
  %.pn122.pn.pn = phi { ptr, i32 } [ %.pn122.pn, %451 ], [ %443, %442 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %453

453:                                              ; preds = %452, %440
  %.pn122.pn.pn.pn = phi { ptr, i32 } [ %.pn122.pn.pn, %452 ], [ %441, %440 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  br label %454

454:                                              ; preds = %453, %438
  %.pn122.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn122.pn.pn.pn, %453 ], [ %439, %438 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  br label %455

455:                                              ; preds = %454, %436
  %.pn122.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn122.pn.pn.pn.pn, %454 ], [ %437, %436 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  br label %475

456:                                              ; preds = %435, %408, %404
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %69) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #8
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_EC2IRS2_S5_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairIS7_S8_EEEbE4typeELb1EEEOS7_OS8_(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 8 dereferenceable(16) %26)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %71) #8
  call void @_ZNSaISt4pairISt10shared_ptrI7HtnTermES2_EEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  invoke void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2ESt16initializer_listIS4_ERKS5_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr nonnull %70, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %457 unwind label %466

457:                                              ; preds = %456
  call void @_ZNSt15__new_allocatorISt4pairISt10shared_ptrI7HtnTermES3_EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #8
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #8
  %458 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %74) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %72) #8
  %459 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  %460 = getelementptr inbounds i8, ptr %0, i64 144
  %461 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %460) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %73) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %73, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  %462 = getelementptr inbounds i8, ptr %0, i64 240
  invoke void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.25") align 8 %72, ptr noundef nonnull align 8 dereferenceable(144) %459, ptr noundef %80, ptr noundef nonnull align 8 dereferenceable(24) %461, ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull %462)
          to label %463 unwind label %468

463:                                              ; preds = %457
  invoke void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %458, ptr noundef nonnull align 8 dereferenceable(16) %72)
          to label %464 unwind label %470

464:                                              ; preds = %463
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  %465 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  store i32 9, ptr %465, align 8, !tbaa !28
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %69) #8
  br label %474

466:                                              ; preds = %456
  %467 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorISt4pairISt10shared_ptrI7HtnTermES3_EED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %71) #8
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #8
  br label %473

468:                                              ; preds = %457
  %469 = landingpad { ptr, i32 }
          cleanup
  br label %472

470:                                              ; preds = %463
  %471 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  br label %472

472:                                              ; preds = %470, %468
  %.pn129 = phi { ptr, i32 } [ %471, %470 ], [ %469, %468 ]
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %69) #8
  br label %473

473:                                              ; preds = %472, %466
  %.pn129.pn = phi { ptr, i32 } [ %.pn129, %472 ], [ %467, %466 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %69) #8
  br label %475

474:                                              ; preds = %464, %._crit_edge
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  br label %476

475:                                              ; preds = %473, %455, %402
  %.pn129.pn.pn = phi { ptr, i32 } [ %.pn129.pn, %473 ], [ %.pn122.pn.pn.pn.pn.pn, %455 ], [ %.pn114.pn.pn.pn.pn, %402 ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  br label %481

476:                                              ; preds = %474, %214
  %477 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  invoke void @_ZN11ResolveNode20PopStandaloneResolveEP12ResolveState(ptr noundef nonnull align 8 dereferenceable(144) %477, ptr noundef %0)
          to label %478 unwind label %479

478:                                              ; preds = %476
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #8
  br label %483

479:                                              ; preds = %476
  %480 = landingpad { ptr, i32 }
          cleanup
  br label %481

481:                                              ; preds = %479, %475, %216
  %.pn133 = phi { ptr, i32 } [ %480, %479 ], [ %217, %216 ], [ %.pn129.pn.pn, %475 ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #8
  br label %484

482:                                              ; preds = %82
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext false, ptr noundef nonnull @.str.4, i64 noundef 1153)
          to label %483 unwind label %136

483:                                              ; preds = %482, %163, %200, %478
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #8
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  ret void

484:                                              ; preds = %481, %204, %172, %157, %136
  %.pn150 = phi { ptr, i32 } [ %137, %136 ], [ %.pn133, %481 ], [ %.pn147.pn, %172 ], [ %.pn140.pn.pn.pn.pn.pn, %157 ], [ %.pn135.pn, %204 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  br label %485

485:                                              ; preds = %484, %85
  %.pn150.pn = phi { ptr, i32 } [ %.pn150, %484 ], [ %86, %85 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #8
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn150.pn
}

declare void @_ZN7HtnTerm4EvalEP14HtnTermFactory(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef nonnull align 8 dereferenceable(72), ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15HtnGoalResolver19FindTermEquivalenceERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EERKS3_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(72) ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1 align 2

declare void @_Z35failfast_uncaught_exception_handlerbPKcS0_l(i1 noundef zeroext, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

declare void @_ZN7HtnTerm15GetAllVariablesEPSt3setISt10shared_ptrIS_E15HtnTermComparerSaIS2_EE(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

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

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

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

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

declare void @_ZN22HtnArithmeticOperators4PlusEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

declare void @_ZN22HtnArithmeticOperators3MinEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

declare void @_ZN22HtnArithmeticOperators3MaxEP14HtnTermFactorySt10shared_ptrI7HtnTermES4_(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

declare void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext, ptr noundef, i64 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2ESt16initializer_listIS4_ERKS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #5 align 2

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

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

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

!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, !13, i64 224}
!6 = !{!"_ZTS12ResolveState", !7, i64 0, !10, i64 4, !11, i64 8, !10, i64 24, !10, i64 28, !10, i64 32, !15, i64 40, !19, i64 64, !7, i64 96, !21, i64 104, !19, i64 112, !22, i64 144, !10, i64 160, !10, i64 164, !13, i64 168, !24, i64 176, !21, i64 192, !26, i64 200, !21, i64 216, !13, i64 224, !21, i64 232, !10, i64 240}
!7 = !{!"bool", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"_ZTSSt10shared_ptrI7HtnTermE", !12, i64 0}
!12 = !{!"_ZTSSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!13 = !{!"any pointer", !8, i64 0}
!14 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0}
!15 = !{!"_ZTSSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE17_Vector_impl_dataE", !13, i64 0, !13, i64 8, !13, i64 16}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !20, i64 0, !21, i64 8, !8, i64 16}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !13, i64 0}
!21 = !{!"long", !8, i64 0}
!22 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEE", !23, i64 0}
!23 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!24 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I11ResolveNodeESaIS2_EEE", !25, i64 0}
!25 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!26 = !{!"_ZTSSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEE", !27, i64 0}
!27 = !{!"_ZTSSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!28 = !{!29, !30, i64 0}
!29 = !{!"_ZTS11ResolveNode", !30, i64 0, !15, i64 8, !10, i64 32, !10, i64 36, !31, i64 40, !33, i64 56, !21, i64 72, !7, i64 80, !7, i64 81, !26, i64 88, !35, i64 104, !7, i64 120, !7, i64 121, !22, i64 128}
!30 = !{!"_ZTS20ResolveContinuePoint", !8, i64 0}
!31 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEE", !32, i64 0}
!32 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!33 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEE", !34, i64 0}
!34 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!35 = !{!"_ZTSSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEE", !36, i64 0}
!36 = !{!"_ZTSSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!37 = !{!6, !7, i64 96}
!38 = !{i8 0, i8 2}
!39 = !{}
!40 = !{!6, !10, i64 160}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass