; 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::__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::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.6" = type { %"class.std::__shared_ptr.7" }
%"class.std::__shared_ptr.7" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator" = 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.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::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair.143" = type { %"class.std::shared_ptr.140", %"class.std::vector.20" }
%"class.std::shared_ptr.140" = type { %"class.std::__shared_ptr.141" }
%"class.std::__shared_ptr.141" = type { ptr, %"class.std::__shared_count" }
%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.12" = type { %"class.std::__shared_ptr.13" }
%"class.std::__shared_ptr.13" = type { ptr, %"class.std::__shared_count" }
%class.HtnGoalResolver = type { %"class.std::enable_shared_from_this.119", %"class.std::map.122" }
%"class.std::enable_shared_from_this.119" = type { %"class.std::weak_ptr.120" }
%"class.std::weak_ptr.120" = type { %"class.std::__weak_ptr.121" }
%"class.std::__weak_ptr.121" = type { ptr, %"class.std::__weak_count" }
%"class.std::__weak_count" = type { ptr }
%"class.std::map.122" = type { %"class.std::_Rb_tree.123" }
%"class.std::_Rb_tree.123" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<std::vector<CustomRuleArgType>, std::function<void (ResolveState *)>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::vector<CustomRuleArgType>, std::function<void (ResolveState *)>>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::pair<std::vector<CustomRuleArgType>, std::function<void (ResolveState *)>>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::vector<CustomRuleArgType>, std::function<void (ResolveState *)>>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::pair.145" = type { %"class.std::__cxx11::basic_string", %"struct.std::pair.127" }
%"struct.std::pair.127" = type { %"class.std::vector.129", %"class.std::function" }
%"class.std::vector.129" = type { %"struct.std::_Vector_base.130" }
%"struct.std::_Vector_base.130" = type { %"struct.std::_Vector_base<CustomRuleArgType, std::allocator<CustomRuleArgType>>::_Vector_impl" }
%"struct.std::_Vector_base<CustomRuleArgType, std::allocator<CustomRuleArgType>>::_Vector_impl" = type { %"struct.std::_Vector_base<CustomRuleArgType, std::allocator<CustomRuleArgType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<CustomRuleArgType, std::allocator<CustomRuleArgType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }

@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.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.58 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [12 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 uwtable
declare dso_local void @_ZN11ResolveNode14AddToSolutionsERSt10shared_ptrISt6vectorIS1_ISt4pairIS0_I7HtnTermES4_ESaIS5_EESaIS7_EEE(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

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

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

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

; 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) #2 align 2

declare void @_Z39failfastThis_uncaught_exception_handlerPvbPKcl(ptr noundef, i1 noundef zeroext, ptr noundef, i64 noundef) #5

; 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 @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(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 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 @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(72)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 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: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef) #2 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 #2 align 2

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

; 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)) #2 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) #2 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)) #2 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) #5

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE4findERSJ_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15HtnGoalResolver21FindAllRulesThatUnifyEP14HtnTermFactoryP10HtnRuleSetSt10shared_ptrI7HtnTermEPiiibPl(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.6") align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i1 noundef zeroext, ptr noundef) #2 align 2

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

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

; 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEESL_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1

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

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

; 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
define dso_local void @_ZN15HtnGoalResolver11ResolveNextEP12ResolveState(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.0") align 8 %0, ptr noundef nonnull align 8 dereferenceable(64) %1, ptr noundef %2) #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::shared_ptr.25", align 8
  %18 = alloca i64, align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca i64, align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::shared_ptr.28", align 8
  %35 = alloca i8, align 1
  %36 = alloca %"class.std::shared_ptr.28", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca i1, align 1
  %39 = alloca i1, align 1
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca %"class.std::shared_ptr.28", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::shared_ptr.25", align 8
  %52 = alloca %"class.std::vector", align 8
  %53 = alloca %"class.std::vector.20", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::shared_ptr.25", align 8
  %63 = alloca %"class.std::vector", align 8
  %64 = alloca %"class.std::vector.20", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::allocator", align 1
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::__cxx11::basic_string", align 8
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::allocator", align 1
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %90 = alloca i64, align 8
  %91 = alloca %"class.std::shared_ptr.6", align 8
  %92 = alloca %"class.std::shared_ptr.28", align 8
  %93 = alloca i64, align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator", align 1
  %99 = alloca i64, align 8
  %100 = alloca %"class.std::shared_ptr.28", align 8
  %101 = alloca %"class.std::shared_ptr.25", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator", align 1
  %107 = alloca %"struct.std::pair.143", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %"class.std::__cxx11::basic_string", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::allocator", align 1
  %113 = alloca %"class.std::__cxx11::basic_string", align 8
  %114 = alloca %"class.std::__cxx11::basic_string", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"class.std::__cxx11::basic_string", align 8
  %117 = alloca %"class.std::__cxx11::basic_string", align 8
  %118 = alloca %"class.std::allocator", align 1
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.std::shared_ptr.25", align 8
  %121 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %122 = alloca %"class.std::__cxx11::basic_string", align 8
  %123 = alloca %"class.std::shared_ptr.28", align 8
  %124 = alloca %"struct.std::_Rb_tree_iterator", align 8
  store ptr %0, ptr %4, align 8
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %125 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #7
  %126 = load ptr, ptr %6, align 8, !tbaa !5
  %127 = getelementptr inbounds %class.ResolveState, ptr %126, i32 0, i32 22
  %128 = load ptr, ptr %127, align 8, !tbaa !9
  store ptr %128, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %129 = load ptr, ptr %6, align 8, !tbaa !5
  %130 = getelementptr inbounds %class.ResolveState, ptr %129, i32 0, i32 17
  %131 = load ptr, ptr %130, align 8, !tbaa !29
  store ptr %131, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  %132 = load ptr, ptr %6, align 8, !tbaa !5
  %133 = getelementptr inbounds %class.ResolveState, ptr %132, i32 0, i32 15
  %134 = load i32, ptr %133, align 8, !tbaa !30
  store i32 %134, ptr %9, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  %135 = load ptr, ptr %6, align 8, !tbaa !5
  %136 = getelementptr inbounds %class.ResolveState, ptr %135, i32 0, i32 16
  %137 = load i32, ptr %136, align 4, !tbaa !32
  store i32 %137, ptr %10, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %138 = load ptr, ptr %6, align 8, !tbaa !5
  %139 = getelementptr inbounds %class.ResolveState, ptr %138, i32 0, i32 24
  store ptr %139, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %140 = load ptr, ptr %6, align 8, !tbaa !5
  %141 = getelementptr inbounds %class.ResolveState, ptr %140, i32 0, i32 20
  store ptr %141, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #7
  %142 = load ptr, ptr %6, align 8, !tbaa !5
  %143 = getelementptr inbounds %class.ResolveState, ptr %142, i32 0, i32 18
  store ptr %143, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %144 = load ptr, ptr %7, align 8, !tbaa !5
  %145 = call noundef i64 @_ZN14HtnTermFactory11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %144)
  store i64 %145, ptr %14, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %146 = load ptr, ptr %8, align 8, !tbaa !5
  %147 = call noundef i64 @_ZN10HtnRuleSet11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(144) %146)
  store i64 %147, ptr %15, align 8, !tbaa !33
  br label %148

148:                                              ; preds = %1390, %1388, %3
  %149 = load ptr, ptr %13, align 8, !tbaa !5
  %150 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %149) #7
  %151 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %150) #7
  %152 = icmp ugt i64 %151, 0
  br i1 %152, label %153, label %1392

153:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  %154 = load i32, ptr %9, align 4, !tbaa !31
  %155 = sext i32 %154 to i64
  %156 = load ptr, ptr %13, align 8, !tbaa !5
  %157 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %156) #7
  %158 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %157) #7
  %159 = add i64 %155, %158
  %160 = trunc i64 %159 to i32
  store i32 %160, ptr %16, align 4, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 16, ptr %17) #7
  %161 = load ptr, ptr %13, align 8, !tbaa !5
  %162 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %161) #7
  %163 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %162) #7
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %163) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %164 = load ptr, ptr %6, align 8, !tbaa !5
  %165 = invoke noundef i64 @_ZN12ResolveState17RecordMemoryUsageERlS0_(ptr noundef nonnull align 8 dereferenceable(244) %164, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %166 unwind label %211

166:                                              ; preds = %153
  store i64 %165, ptr %18, align 8, !tbaa !33
  %167 = load i64, ptr %18, align 8, !tbaa !33
  %168 = load ptr, ptr %6, align 8, !tbaa !5
  %169 = getelementptr inbounds %class.ResolveState, ptr %168, i32 0, i32 16
  %170 = load i32, ptr %169, align 4, !tbaa !32
  %171 = sext i32 %170 to i64
  %172 = icmp sgt i64 %167, %171
  br i1 %172, label %173, label %251

173:                                              ; preds = %166
  %174 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %175 unwind label %211

175:                                              ; preds = %173
  %176 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %174)
          to label %177 unwind label %211

177:                                              ; preds = %175
  %178 = and i64 8388608, %176
  %179 = icmp ne i64 %178, 0
  br i1 %179, label %180, label %244

180:                                              ; preds = %177
  %181 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %182 unwind label %211

182:                                              ; preds = %180
  %183 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %181)
          to label %184 unwind label %211

184:                                              ; preds = %182
  %185 = icmp sle i32 0, %183
  br i1 %185, label %186, label %244

186:                                              ; preds = %184
  %187 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %188 unwind label %211

188:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #7
  %189 = load i32, ptr %16, align 4, !tbaa !31
  %190 = mul nsw i32 %189, 11
  %191 = sext i32 %190 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, i64 noundef %191, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %192 unwind label %215

192:                                              ; preds = %188
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %193 unwind label %219

193:                                              ; preds = %192
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.58)
          to label %194 unwind label %223

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

195:                                              ; preds = %194
  %196 = load i64, ptr %18, align 8, !tbaa !33
  %197 = load ptr, ptr %6, align 8, !tbaa !5
  %198 = getelementptr inbounds %class.ResolveState, ptr %197, i32 0, i32 16
  %199 = load ptr, ptr %7, align 8, !tbaa !5
  %200 = invoke noundef i64 @_ZN14HtnTermFactory11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %199)
          to label %201 unwind label %231

201:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %202 = load ptr, ptr %8, align 8, !tbaa !5
  %203 = invoke noundef i64 @_ZN10HtnRuleSet11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(144) %202)
          to label %204 unwind label %235

204:                                              ; preds = %201
  store i64 %203, ptr %26, align 8, !tbaa !33
  %205 = load ptr, ptr %6, align 8, !tbaa !5
  %206 = getelementptr inbounds %class.ResolveState, ptr %205, i32 0, i32 21
  %207 = load ptr, ptr %6, align 8, !tbaa !5
  %208 = getelementptr inbounds %class.ResolveState, ptr %207, i32 0, i32 13
  %209 = invoke noundef double @_ZN9NanoTrace5TraceIlilllNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_RKT4_(ptr noundef nonnull align 8 dereferenceable(12) %187, ptr noundef nonnull align 8 dereferenceable(32) %21, i32 noundef 8388608, i32 noundef 0, i64 noundef %196, ptr noundef nonnull align 4 dereferenceable(4) %198, i64 noundef %200, ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %206, ptr noundef nonnull align 8 dereferenceable(32) %208)
          to label %210 unwind label %235

210:                                              ; preds = %204
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #7
  br label %244

211:                                              ; preds = %1163, %268, %264, %262, %257, %255, %244, %186, %182, %180, %175, %173, %153
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %19, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %20, align 4
  br label %1391

215:                                              ; preds = %188
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %19, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %20, align 4
  br label %243

219:                                              ; preds = %192
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %19, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %20, align 4
  br label %242

223:                                              ; preds = %193
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %19, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %20, align 4
  br label %241

227:                                              ; preds = %194
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %19, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %20, align 4
  br label %240

231:                                              ; preds = %195
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %19, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %20, align 4
  br label %239

235:                                              ; preds = %204, %201
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %19, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  br label %239

239:                                              ; preds = %235, %231
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %240

240:                                              ; preds = %239, %227
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %241

241:                                              ; preds = %240, %223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %242

242:                                              ; preds = %241, %219
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %243

243:                                              ; preds = %242, %215
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #7
  br label %1391

244:                                              ; preds = %210, %184, %177
  %245 = load ptr, ptr %6, align 8, !tbaa !5
  %246 = getelementptr inbounds %class.ResolveState, ptr %245, i32 0, i32 22
  %247 = load ptr, ptr %246, align 8, !tbaa !9
  invoke void @_ZN14HtnTermFactory11outOfMemoryEb(ptr noundef nonnull align 8 dereferenceable(33088) %247, i1 noundef zeroext true)
          to label %248 unwind label %211

248:                                              ; preds = %244
  %249 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %250 = getelementptr inbounds %class.ResolveNode, ptr %249, i32 0, i32 0
  store i32 8, ptr %250, align 8, !tbaa !34
  call void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #7
  store i32 1, ptr %27, align 4
  br label %1388

251:                                              ; preds = %166
  %252 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %253 = getelementptr inbounds %class.ResolveNode, ptr %252, i32 0, i32 0
  %254 = load i32, ptr %253, align 8, !tbaa !34
  switch i32 %254, label %1387 [
    i32 8, label %255
    i32 5, label %305
    i32 6, label %418
    i32 9, label %1160
    i32 7, label %1163
    i32 0, label %1345
    i32 1, label %1345
    i32 2, label %1345
    i32 3, label %1345
    i32 4, label %1345
  ]

255:                                              ; preds = %251
  %256 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %257 unwind label %211

257:                                              ; preds = %255
  %258 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %256)
          to label %259 unwind label %211

259:                                              ; preds = %257
  %260 = and i64 8388608, %258
  %261 = icmp ne i64 %260, 0
  br i1 %261, label %262, label %304

262:                                              ; preds = %259
  %263 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %264 unwind label %211

264:                                              ; preds = %262
  %265 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %263)
          to label %266 unwind label %211

266:                                              ; preds = %264
  %267 = icmp sle i32 0, %265
  br i1 %267, label %268, label %304

268:                                              ; preds = %266
  %269 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %270 unwind label %211

270:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #7
  %271 = load i32, ptr %16, align 4, !tbaa !31
  %272 = mul nsw i32 %271, 11
  %273 = sext i32 %272 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, i64 noundef %273, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %274 unwind label %280

274:                                              ; preds = %270
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %275 unwind label %284

275:                                              ; preds = %274
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.60)
          to label %276 unwind label %288

276:                                              ; preds = %275
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.61)
          to label %277 unwind label %292

277:                                              ; preds = %276
  %278 = invoke noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12) %269, ptr noundef nonnull align 8 dereferenceable(32) %28, i32 noundef 8388608, i32 noundef 0)
          to label %279 unwind label %296

279:                                              ; preds = %277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  br label %304

280:                                              ; preds = %270
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %19, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %20, align 4
  br label %303

284:                                              ; preds = %274
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %19, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %20, align 4
  br label %302

288:                                              ; preds = %275
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %19, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %20, align 4
  br label %301

292:                                              ; preds = %276
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %19, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %20, align 4
  br label %300

296:                                              ; preds = %277
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %19, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  br label %300

300:                                              ; preds = %296, %292
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %301

301:                                              ; preds = %300, %288
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  br label %302

302:                                              ; preds = %301, %284
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  br label %303

303:                                              ; preds = %302, %280
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  br label %1391

304:                                              ; preds = %279, %266, %259
  call void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #7
  store i32 1, ptr %27, align 4
  br label %1388

305:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #7
  %306 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %34, ptr noundef nonnull align 8 dereferenceable(144) %306)
          to label %307 unwind label %356

307:                                              ; preds = %305
  %308 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  %309 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %308)
          to label %310 unwind label %360

310:                                              ; preds = %307
  %311 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %309, i64 noundef 0) #7
  %312 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %311) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(72) %312)
          to label %313 unwind label %360

313:                                              ; preds = %310
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #7
  store i8 0, ptr %35, align 1, !tbaa !43
  br label %314

314:                                              ; preds = %395, %313
  %315 = load ptr, ptr %13, align 8, !tbaa !5
  %316 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %315) #7
  %317 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %316) #7
  %318 = icmp ugt i64 %317, 0
  br i1 %318, label %319, label %397

319:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #7
  %320 = load ptr, ptr %13, align 8, !tbaa !5
  %321 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %320) #7
  %322 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %321) #7
  %323 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %322) #7
  invoke void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %36, ptr noundef nonnull align 8 dereferenceable(144) %323)
          to label %324 unwind label %365

324:                                              ; preds = %319
  %325 = load ptr, ptr %13, align 8, !tbaa !5
  %326 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %325) #7
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %326) #7
  %327 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr null) #7
  store i1 false, ptr %38, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  br i1 %327, label %328, label %341

328:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #7
  store i1 true, ptr %38, align 1
  %329 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(72) %329)
          to label %330 unwind label %369

330:                                              ; preds = %328
  store i1 true, ptr %39, align 1
  %331 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.3)
          to label %332 unwind label %373

332:                                              ; preds = %330
  br i1 %331, label %333, label %341

333:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #7
  store i1 true, ptr %41, align 1
  %334 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %36) #7
  %335 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %334)
          to label %336 unwind label %377

336:                                              ; preds = %333
  %337 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %335, i64 noundef 0) #7
  %338 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %337) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(72) %338)
          to label %339 unwind label %377

339:                                              ; preds = %336
  store i1 true, ptr %42, align 1
  %340 = call noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %341

341:                                              ; preds = %339, %332, %324
  %342 = phi i1 [ false, %332 ], [ false, %324 ], [ %340, %339 ]
  %343 = load i1, ptr %42, align 1
  br i1 %343, label %344, label %345

344:                                              ; preds = %341
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %345

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

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

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

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

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

353:                                              ; preds = %351
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  br label %354

354:                                              ; preds = %353, %351
  br i1 %342, label %355, label %392

355:                                              ; preds = %354
  store i8 1, ptr %35, align 1, !tbaa !43
  store i32 6, ptr %27, align 4
  br label %393

356:                                              ; preds = %305
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %19, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %20, align 4
  br label %364

360:                                              ; preds = %310, %307
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %19, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %20, align 4
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #7
  br label %364

364:                                              ; preds = %360, %356
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #7
  br label %417

365:                                              ; preds = %319
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %19, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %20, align 4
  br label %396

369:                                              ; preds = %328
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %19, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %20, align 4
  br label %388

373:                                              ; preds = %330
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %19, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %20, align 4
  br label %384

377:                                              ; preds = %336, %333
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %19, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %20, align 4
  %381 = load i1, ptr %41, align 1
  br i1 %381, label %382, label %383

382:                                              ; preds = %377
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  br label %383

383:                                              ; preds = %382, %377
  br label %384

384:                                              ; preds = %383, %373
  %385 = load i1, ptr %39, align 1
  br i1 %385, label %386, label %387

386:                                              ; preds = %384
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %387

387:                                              ; preds = %386, %384
  br label %388

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

390:                                              ; preds = %388
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  br label %391

391:                                              ; preds = %390, %388
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #7
  br label %396

392:                                              ; preds = %354
  store i32 0, ptr %27, align 4
  br label %393

393:                                              ; preds = %392, %355
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #7
  %394 = load i32, ptr %27, align 4
  switch i32 %394, label %1399 [
    i32 0, label %395
    i32 6, label %397
  ]

395:                                              ; preds = %393
  br label %314, !llvm.loop !44

396:                                              ; preds = %391, %365
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #7
  br label %416

397:                                              ; preds = %393, %314
  %398 = load i8, ptr %35, align 1, !tbaa !43, !range !46, !noundef !47
  %399 = trunc i8 %398 to i1
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcl(ptr noundef %125, i1 noundef zeroext %399, ptr noundef @.str.4, i64 noundef 875)
          to label %400 unwind label %411

400:                                              ; preds = %397
  %401 = load ptr, ptr %13, align 8, !tbaa !5
  %402 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %401) #7
  %403 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %402) #7
  %404 = icmp ugt i64 %403, 0
  br i1 %404, label %405, label %415

405:                                              ; preds = %400
  %406 = load ptr, ptr %13, align 8, !tbaa !5
  %407 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %406) #7
  %408 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %407) #7
  %409 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %408) #7
  invoke void @_ZN11ResolveNode6SetCutEv(ptr noundef nonnull align 8 dereferenceable(144) %409)
          to label %410 unwind label %411

410:                                              ; preds = %405
  br label %415

411:                                              ; preds = %405, %397
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %19, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %20, align 4
  br label %416

415:                                              ; preds = %410, %400
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  br label %1387

416:                                              ; preds = %411, %396
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %417

417:                                              ; preds = %416, %364
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  br label %1391

418:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #7
  %419 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %43, ptr noundef nonnull align 8 dereferenceable(144) %419)
          to label %420 unwind label %463

420:                                              ; preds = %418
  %421 = call noundef zeroext i1 @_ZSteqI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr null) #7
  br i1 %421, label %422, label %520

422:                                              ; preds = %420
  %423 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %424 unwind label %467

424:                                              ; preds = %422
  %425 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %423)
          to label %426 unwind label %467

426:                                              ; preds = %424
  %427 = and i64 8388608, %425
  %428 = icmp ne i64 %427, 0
  br i1 %428, label %429, label %500

429:                                              ; preds = %426
  %430 = load ptr, ptr %6, align 8, !tbaa !5
  %431 = getelementptr inbounds %class.ResolveState, ptr %430, i32 0, i32 10
  %432 = load i8, ptr %431, align 8, !tbaa !48, !range !46, !noundef !47
  %433 = trunc i8 %432 to i1
  %434 = zext i1 %433 to i64
  %435 = select i1 %433, i32 0, i32 2
  %436 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %437 unwind label %467

437:                                              ; preds = %429
  %438 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %436)
          to label %439 unwind label %467

439:                                              ; preds = %437
  %440 = icmp sle i32 %435, %438
  br i1 %440, label %441, label %500

441:                                              ; preds = %439
  %442 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %443 unwind label %467

443:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #7
  %444 = load i32, ptr %16, align 4, !tbaa !31
  %445 = mul nsw i32 %444, 11
  %446 = sext i32 %445 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, i64 noundef %446, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %447 unwind label %471

447:                                              ; preds = %443
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %448 unwind label %475

448:                                              ; preds = %447
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.62)
          to label %449 unwind label %479

449:                                              ; preds = %448
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.63)
          to label %450 unwind label %483

450:                                              ; preds = %449
  %451 = load ptr, ptr %6, align 8, !tbaa !5
  %452 = getelementptr inbounds %class.ResolveState, ptr %451, i32 0, i32 10
  %453 = load i8, ptr %452, align 8, !tbaa !48, !range !46, !noundef !47
  %454 = trunc i8 %453 to i1
  %455 = zext i1 %454 to i64
  %456 = select i1 %454, i32 0, i32 2
  %457 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %458 = getelementptr inbounds %class.ResolveNode, ptr %457, i32 0, i32 5
  %459 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %458) #7
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(24) %459, i1 noundef zeroext false)
          to label %460 unwind label %487

460:                                              ; preds = %450
  %461 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %442, ptr noundef nonnull align 8 dereferenceable(32) %44, i32 noundef 8388608, i32 noundef %456, ptr noundef %49)
          to label %462 unwind label %491

462:                                              ; preds = %460
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  br label %500

463:                                              ; preds = %418
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %19, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %20, align 4
  br label %1159

467:                                              ; preds = %854, %850, %842, %837, %835, %831, %772, %768, %760, %755, %753, %675, %671, %663, %658, %656, %561, %557, %549, %544, %540, %528, %525, %510, %500, %441, %437, %429, %424, %422
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %19, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %20, align 4
  br label %1158

471:                                              ; preds = %443
  %472 = landingpad { ptr, i32 }
          cleanup
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %19, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %20, align 4
  br label %499

475:                                              ; preds = %447
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %19, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %20, align 4
  br label %498

479:                                              ; preds = %448
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %19, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %20, align 4
  br label %497

483:                                              ; preds = %449
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %19, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %20, align 4
  br label %496

487:                                              ; preds = %450
  %488 = landingpad { ptr, i32 }
          cleanup
  %489 = extractvalue { ptr, i32 } %488, 0
  store ptr %489, ptr %19, align 8
  %490 = extractvalue { ptr, i32 } %488, 1
  store i32 %490, ptr %20, align 4
  br label %495

491:                                              ; preds = %460
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %19, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %495

495:                                              ; preds = %491, %487
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %496

496:                                              ; preds = %495, %483
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %497

497:                                              ; preds = %496, %479
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %498

498:                                              ; preds = %497, %475
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %499

499:                                              ; preds = %498, %471
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #7
  br label %1158

500:                                              ; preds = %462, %439, %426
  %501 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %502 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZN11ResolveNode14AddToSolutionsERSt10shared_ptrISt6vectorIS1_ISt4pairIS0_I7HtnTermES4_ESaIS5_EESaIS7_EEE(ptr noundef nonnull align 8 dereferenceable(144) %501, ptr noundef nonnull align 8 dereferenceable(16) %502)
          to label %503 unwind label %467

503:                                              ; preds = %500
  %504 = load ptr, ptr %13, align 8, !tbaa !5
  %505 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %504) #7
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %505) #7
  %506 = load ptr, ptr %6, align 8, !tbaa !5
  %507 = getelementptr inbounds %class.ResolveState, ptr %506, i32 0, i32 0
  %508 = load i8, ptr %507, align 8, !tbaa !49, !range !46, !noundef !47
  %509 = trunc i8 %508 to i1
  br i1 %509, label %519, label %510

510:                                              ; preds = %503
  %511 = load ptr, ptr %6, align 8, !tbaa !5
  %512 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %513 = getelementptr inbounds %class.ResolveNode, ptr %512, i32 0, i32 5
  %514 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %513) #7
  %515 = load ptr, ptr %6, align 8, !tbaa !5
  %516 = getelementptr inbounds %class.ResolveState, ptr %515, i32 0, i32 14
  %517 = 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) %516) #7
  invoke void @_ZN12ResolveState16SimplifySolutionERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EERS0_IS4_SaIS4_EE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.0") align 8 %0, ptr noundef nonnull align 8 dereferenceable(244) %511, ptr noundef nonnull align 8 dereferenceable(24) %514, ptr noundef nonnull align 8 dereferenceable(24) %517)
          to label %518 unwind label %467

518:                                              ; preds = %510
  store i32 1, ptr %27, align 4
  br label %1157

519:                                              ; preds = %503
  br label %1156

520:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #7
  %521 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(72) %521)
          to label %522 unwind label %586

522:                                              ; preds = %520
  %523 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.3)
          to label %524 unwind label %590

524:                                              ; preds = %522
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  br i1 %523, label %525, label %639

525:                                              ; preds = %524
  %526 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %527 = invoke noundef zeroext i1 @_ZN11ResolveNode21IsLastGoalInResolventEv(ptr noundef nonnull align 8 dereferenceable(144) %526)
          to label %528 unwind label %467

528:                                              ; preds = %525
  %529 = xor i1 %527, true
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcl(ptr noundef %125, i1 noundef zeroext %529, ptr noundef @.str.4, i64 noundef 904)
          to label %530 unwind label %467

530:                                              ; preds = %528
  %531 = load ptr, ptr %13, align 8, !tbaa !5
  %532 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %531) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #7
  %533 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %534 = load ptr, ptr %7, align 8, !tbaa !5
  %535 = load ptr, ptr %6, align 8, !tbaa !5
  %536 = getelementptr inbounds %class.ResolveState, ptr %535, i32 0, i32 14
  %537 = 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) %536) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %52) #7
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #7
  call void @llvm.memset.p0.i64(ptr align 8 %53, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  %538 = load ptr, ptr %11, align 8, !tbaa !5
  invoke void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.25") align 8 %51, ptr noundef nonnull align 8 dereferenceable(144) %533, ptr noundef %534, ptr noundef nonnull align 8 dereferenceable(24) %537, ptr noundef nonnull align 8 dereferenceable(24) %52, ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef %538)
          to label %539 unwind label %595

539:                                              ; preds = %530
  invoke void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %532, ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %540 unwind label %599

540:                                              ; preds = %539
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #7
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #7
  %541 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %542 = getelementptr inbounds %class.ResolveNode, ptr %541, i32 0, i32 0
  store i32 9, ptr %542, align 8, !tbaa !34
  %543 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %544 unwind label %467

544:                                              ; preds = %540
  %545 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %543)
          to label %546 unwind label %467

546:                                              ; preds = %544
  %547 = and i64 8388608, %545
  %548 = icmp ne i64 %547, 0
  br i1 %548, label %549, label %638

549:                                              ; preds = %546
  %550 = load ptr, ptr %6, align 8, !tbaa !5
  %551 = getelementptr inbounds %class.ResolveState, ptr %550, i32 0, i32 10
  %552 = load i8, ptr %551, align 8, !tbaa !48, !range !46, !noundef !47
  %553 = trunc i8 %552 to i1
  %554 = zext i1 %553 to i64
  %555 = select i1 %553, i32 0, i32 2
  %556 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %557 unwind label %467

557:                                              ; preds = %549
  %558 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %556)
          to label %559 unwind label %467

559:                                              ; preds = %557
  %560 = icmp sle i32 %555, %558
  br i1 %560, label %561, label %638

561:                                              ; preds = %559
  %562 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %563 unwind label %467

563:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #7
  %564 = load i32, ptr %16, align 4, !tbaa !31
  %565 = mul nsw i32 %564, 11
  %566 = sext i32 %565 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, i64 noundef %566, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %567 unwind label %604

567:                                              ; preds = %563
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %568 unwind label %608

568:                                              ; preds = %567
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef @.str.64)
          to label %569 unwind label %612

569:                                              ; preds = %568
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef @.str.65)
          to label %570 unwind label %616

570:                                              ; preds = %569
  %571 = load ptr, ptr %6, align 8, !tbaa !5
  %572 = getelementptr inbounds %class.ResolveState, ptr %571, i32 0, i32 10
  %573 = load i8, ptr %572, align 8, !tbaa !48, !range !46, !noundef !47
  %574 = trunc i8 %573 to i1
  %575 = zext i1 %574 to i64
  %576 = select i1 %574, i32 0, i32 2
  %577 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(72) %577, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %578 unwind label %620

578:                                              ; preds = %570
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #7
  %579 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %580 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %579)
          to label %581 unwind label %624

581:                                              ; preds = %578
  %582 = 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) %580) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 8 dereferenceable(24) %582, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %583 unwind label %624

583:                                              ; preds = %581
  %584 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %562, ptr noundef nonnull align 8 dereferenceable(32) %54, i32 noundef 8388608, i32 noundef %576, ptr noundef %59, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %585 unwind label %628

585:                                              ; preds = %583
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  br label %638

586:                                              ; preds = %520
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %19, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %20, align 4
  br label %594

590:                                              ; preds = %522
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %19, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %594

594:                                              ; preds = %590, %586
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  br label %1158

595:                                              ; preds = %530
  %596 = landingpad { ptr, i32 }
          cleanup
  %597 = extractvalue { ptr, i32 } %596, 0
  store ptr %597, ptr %19, align 8
  %598 = extractvalue { ptr, i32 } %596, 1
  store i32 %598, ptr %20, align 4
  br label %603

599:                                              ; preds = %539
  %600 = landingpad { ptr, i32 }
          cleanup
  %601 = extractvalue { ptr, i32 } %600, 0
  store ptr %601, ptr %19, align 8
  %602 = extractvalue { ptr, i32 } %600, 1
  store i32 %602, ptr %20, align 4
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %51) #7
  br label %603

603:                                              ; preds = %599, %595
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #7
  br label %1158

604:                                              ; preds = %563
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %19, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %20, align 4
  br label %637

608:                                              ; preds = %567
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %19, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %20, align 4
  br label %636

612:                                              ; preds = %568
  %613 = landingpad { ptr, i32 }
          cleanup
  %614 = extractvalue { ptr, i32 } %613, 0
  store ptr %614, ptr %19, align 8
  %615 = extractvalue { ptr, i32 } %613, 1
  store i32 %615, ptr %20, align 4
  br label %635

616:                                              ; preds = %569
  %617 = landingpad { ptr, i32 }
          cleanup
  %618 = extractvalue { ptr, i32 } %617, 0
  store ptr %618, ptr %19, align 8
  %619 = extractvalue { ptr, i32 } %617, 1
  store i32 %619, ptr %20, align 4
  br label %634

620:                                              ; preds = %570
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %19, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %20, align 4
  br label %633

624:                                              ; preds = %581, %578
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %19, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %20, align 4
  br label %632

628:                                              ; preds = %583
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %19, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %632

632:                                              ; preds = %628, %624
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %633

633:                                              ; preds = %632, %620
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %634

634:                                              ; preds = %633, %616
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %635

635:                                              ; preds = %634, %612
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %636

636:                                              ; preds = %635, %608
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %637

637:                                              ; preds = %636, %604
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #7
  br label %1158

638:                                              ; preds = %585, %559, %546
  br label %1155

639:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #7
  %640 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(72) %640)
          to label %641 unwind label %700

641:                                              ; preds = %639
  %642 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.2)
          to label %643 unwind label %704

643:                                              ; preds = %641
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  br i1 %642, label %644, label %753

644:                                              ; preds = %643
  %645 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %646 = getelementptr inbounds %class.ResolveNode, ptr %645, i32 0, i32 0
  store i32 5, ptr %646, align 8, !tbaa !34
  %647 = load ptr, ptr %13, align 8, !tbaa !5
  %648 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %647) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #7
  %649 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %650 = load ptr, ptr %7, align 8, !tbaa !5
  %651 = load ptr, ptr %6, align 8, !tbaa !5
  %652 = getelementptr inbounds %class.ResolveState, ptr %651, i32 0, i32 14
  %653 = 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) %652) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %63) #7
  call void @llvm.memset.p0.i64(ptr align 8 %63, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %63) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %64) #7
  call void @llvm.memset.p0.i64(ptr align 8 %64, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #7
  %654 = load ptr, ptr %11, align 8, !tbaa !5
  invoke void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.25") align 8 %62, ptr noundef nonnull align 8 dereferenceable(144) %649, ptr noundef %650, ptr noundef nonnull align 8 dereferenceable(24) %653, ptr noundef nonnull align 8 dereferenceable(24) %63, ptr noundef nonnull align 8 dereferenceable(24) %64, ptr noundef %654)
          to label %655 unwind label %709

655:                                              ; preds = %644
  invoke void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %648, ptr noundef nonnull align 8 dereferenceable(16) %62)
          to label %656 unwind label %713

656:                                              ; preds = %655
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #7
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %64) #7
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %63) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #7
  %657 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %658 unwind label %467

658:                                              ; preds = %656
  %659 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %657)
          to label %660 unwind label %467

660:                                              ; preds = %658
  %661 = and i64 8388608, %659
  %662 = icmp ne i64 %661, 0
  br i1 %662, label %663, label %752

663:                                              ; preds = %660
  %664 = load ptr, ptr %6, align 8, !tbaa !5
  %665 = getelementptr inbounds %class.ResolveState, ptr %664, i32 0, i32 10
  %666 = load i8, ptr %665, align 8, !tbaa !48, !range !46, !noundef !47
  %667 = trunc i8 %666 to i1
  %668 = zext i1 %667 to i64
  %669 = select i1 %667, i32 0, i32 2
  %670 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %671 unwind label %467

671:                                              ; preds = %663
  %672 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %670)
          to label %673 unwind label %467

673:                                              ; preds = %671
  %674 = icmp sle i32 %669, %672
  br i1 %674, label %675, label %752

675:                                              ; preds = %673
  %676 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %677 unwind label %467

677:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #7
  %678 = load i32, ptr %16, align 4, !tbaa !31
  %679 = mul nsw i32 %678, 11
  %680 = sext i32 %679 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, i64 noundef %680, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %681 unwind label %718

681:                                              ; preds = %677
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %682 unwind label %722

682:                                              ; preds = %681
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.66)
          to label %683 unwind label %726

683:                                              ; preds = %682
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef @.str.65)
          to label %684 unwind label %730

684:                                              ; preds = %683
  %685 = load ptr, ptr %6, align 8, !tbaa !5
  %686 = getelementptr inbounds %class.ResolveState, ptr %685, i32 0, i32 10
  %687 = load i8, ptr %686, align 8, !tbaa !48, !range !46, !noundef !47
  %688 = trunc i8 %687 to i1
  %689 = zext i1 %688 to i64
  %690 = select i1 %688, i32 0, i32 2
  %691 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(72) %691, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %692 unwind label %734

692:                                              ; preds = %684
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #7
  %693 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %694 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %693)
          to label %695 unwind label %738

695:                                              ; preds = %692
  %696 = 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) %694) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(24) %696, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %697 unwind label %738

697:                                              ; preds = %695
  %698 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %676, ptr noundef nonnull align 8 dereferenceable(32) %65, i32 noundef 8388608, i32 noundef %690, ptr noundef %70, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %699 unwind label %742

699:                                              ; preds = %697
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  br label %752

700:                                              ; preds = %639
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %19, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %20, align 4
  br label %708

704:                                              ; preds = %641
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %19, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %708

708:                                              ; preds = %704, %700
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #7
  br label %1158

709:                                              ; preds = %644
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %19, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %20, align 4
  br label %717

713:                                              ; preds = %655
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %19, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %20, align 4
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %62) #7
  br label %717

717:                                              ; preds = %713, %709
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %64) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %64) #7
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %63) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #7
  br label %1158

718:                                              ; preds = %677
  %719 = landingpad { ptr, i32 }
          cleanup
  %720 = extractvalue { ptr, i32 } %719, 0
  store ptr %720, ptr %19, align 8
  %721 = extractvalue { ptr, i32 } %719, 1
  store i32 %721, ptr %20, align 4
  br label %751

722:                                              ; preds = %681
  %723 = landingpad { ptr, i32 }
          cleanup
  %724 = extractvalue { ptr, i32 } %723, 0
  store ptr %724, ptr %19, align 8
  %725 = extractvalue { ptr, i32 } %723, 1
  store i32 %725, ptr %20, align 4
  br label %750

726:                                              ; preds = %682
  %727 = landingpad { ptr, i32 }
          cleanup
  %728 = extractvalue { ptr, i32 } %727, 0
  store ptr %728, ptr %19, align 8
  %729 = extractvalue { ptr, i32 } %727, 1
  store i32 %729, ptr %20, align 4
  br label %749

730:                                              ; preds = %683
  %731 = landingpad { ptr, i32 }
          cleanup
  %732 = extractvalue { ptr, i32 } %731, 0
  store ptr %732, ptr %19, align 8
  %733 = extractvalue { ptr, i32 } %731, 1
  store i32 %733, ptr %20, align 4
  br label %748

734:                                              ; preds = %684
  %735 = landingpad { ptr, i32 }
          cleanup
  %736 = extractvalue { ptr, i32 } %735, 0
  store ptr %736, ptr %19, align 8
  %737 = extractvalue { ptr, i32 } %735, 1
  store i32 %737, ptr %20, align 4
  br label %747

738:                                              ; preds = %695, %692
  %739 = landingpad { ptr, i32 }
          cleanup
  %740 = extractvalue { ptr, i32 } %739, 0
  store ptr %740, ptr %19, align 8
  %741 = extractvalue { ptr, i32 } %739, 1
  store i32 %741, ptr %20, align 4
  br label %746

742:                                              ; preds = %697
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %19, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %746

746:                                              ; preds = %742, %738
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %747

747:                                              ; preds = %746, %734
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %748

748:                                              ; preds = %747, %730
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %749

749:                                              ; preds = %748, %726
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %750

750:                                              ; preds = %749, %722
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %751

751:                                              ; preds = %750, %718
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  br label %1158

752:                                              ; preds = %699, %673, %660
  br label %1154

753:                                              ; preds = %643
  %754 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %755 unwind label %467

755:                                              ; preds = %753
  %756 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %754)
          to label %757 unwind label %467

757:                                              ; preds = %755
  %758 = and i64 8388608, %756
  %759 = icmp ne i64 %758, 0
  br i1 %759, label %760, label %831

760:                                              ; preds = %757
  %761 = load ptr, ptr %6, align 8, !tbaa !5
  %762 = getelementptr inbounds %class.ResolveState, ptr %761, i32 0, i32 10
  %763 = load i8, ptr %762, align 8, !tbaa !48, !range !46, !noundef !47
  %764 = trunc i8 %763 to i1
  %765 = zext i1 %764 to i64
  %766 = select i1 %764, i32 0, i32 2
  %767 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %768 unwind label %467

768:                                              ; preds = %760
  %769 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %767)
          to label %770 unwind label %467

770:                                              ; preds = %768
  %771 = icmp sle i32 %766, %769
  br i1 %771, label %772, label %831

772:                                              ; preds = %770
  %773 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %774 unwind label %467

774:                                              ; preds = %772
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #7
  %775 = load i32, ptr %16, align 4, !tbaa !31
  %776 = mul nsw i32 %775, 11
  %777 = sext i32 %776 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %75, i64 noundef %777, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %76)
          to label %778 unwind label %797

778:                                              ; preds = %774
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %779 unwind label %801

779:                                              ; preds = %778
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef @.str.67)
          to label %780 unwind label %805

780:                                              ; preds = %779
  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.65)
          to label %781 unwind label %809

781:                                              ; preds = %780
  %782 = load ptr, ptr %6, align 8, !tbaa !5
  %783 = getelementptr inbounds %class.ResolveState, ptr %782, i32 0, i32 10
  %784 = load i8, ptr %783, align 8, !tbaa !48, !range !46, !noundef !47
  %785 = trunc i8 %784 to i1
  %786 = zext i1 %785 to i64
  %787 = select i1 %785, i32 0, i32 2
  %788 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(72) %788, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %789 unwind label %813

789:                                              ; preds = %781
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #7
  %790 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %791 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %790)
          to label %792 unwind label %817

792:                                              ; preds = %789
  %793 = 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) %791) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(24) %793, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %794 unwind label %817

794:                                              ; preds = %792
  %795 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %773, ptr noundef nonnull align 8 dereferenceable(32) %72, i32 noundef 8388608, i32 noundef %787, ptr noundef %77, ptr noundef nonnull align 8 dereferenceable(32) %78)
          to label %796 unwind label %821

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

797:                                              ; preds = %774
  %798 = landingpad { ptr, i32 }
          cleanup
  %799 = extractvalue { ptr, i32 } %798, 0
  store ptr %799, ptr %19, align 8
  %800 = extractvalue { ptr, i32 } %798, 1
  store i32 %800, ptr %20, align 4
  br label %830

801:                                              ; preds = %778
  %802 = landingpad { ptr, i32 }
          cleanup
  %803 = extractvalue { ptr, i32 } %802, 0
  store ptr %803, ptr %19, align 8
  %804 = extractvalue { ptr, i32 } %802, 1
  store i32 %804, ptr %20, align 4
  br label %829

805:                                              ; preds = %779
  %806 = landingpad { ptr, i32 }
          cleanup
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %19, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %20, align 4
  br label %828

809:                                              ; preds = %780
  %810 = landingpad { ptr, i32 }
          cleanup
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %19, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %20, align 4
  br label %827

813:                                              ; preds = %781
  %814 = landingpad { ptr, i32 }
          cleanup
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %19, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %20, align 4
  br label %826

817:                                              ; preds = %792, %789
  %818 = landingpad { ptr, i32 }
          cleanup
  %819 = extractvalue { ptr, i32 } %818, 0
  store ptr %819, ptr %19, align 8
  %820 = extractvalue { ptr, i32 } %818, 1
  store i32 %820, ptr %20, align 4
  br label %825

821:                                              ; preds = %794
  %822 = landingpad { ptr, i32 }
          cleanup
  %823 = extractvalue { ptr, i32 } %822, 0
  store ptr %823, ptr %19, align 8
  %824 = extractvalue { ptr, i32 } %822, 1
  store i32 %824, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %825

825:                                              ; preds = %821, %817
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %826

826:                                              ; preds = %825, %813
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #7
  br label %827

827:                                              ; preds = %826, %809
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %828

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

829:                                              ; preds = %828, %801
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %830

830:                                              ; preds = %829, %797
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %76) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #7
  br label %1158

831:                                              ; preds = %796, %770, %757
  %832 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  %833 = invoke noundef zeroext i1 @_ZNK7HtnTerm10isVariableEv(ptr noundef nonnull align 8 dereferenceable(72) %832)
          to label %834 unwind label %467

834:                                              ; preds = %831
  br i1 %833, label %835, label %925

835:                                              ; preds = %834
  %836 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %837 unwind label %467

837:                                              ; preds = %835
  %838 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %836)
          to label %839 unwind label %467

839:                                              ; preds = %837
  %840 = and i64 8388608, %838
  %841 = icmp ne i64 %840, 0
  br i1 %841, label %842, label %903

842:                                              ; preds = %839
  %843 = load ptr, ptr %6, align 8, !tbaa !5
  %844 = getelementptr inbounds %class.ResolveState, ptr %843, i32 0, i32 10
  %845 = load i8, ptr %844, align 8, !tbaa !48, !range !46, !noundef !47
  %846 = trunc i8 %845 to i1
  %847 = zext i1 %846 to i64
  %848 = select i1 %846, i32 0, i32 2
  %849 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %850 unwind label %467

850:                                              ; preds = %842
  %851 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %849)
          to label %852 unwind label %467

852:                                              ; preds = %850
  %853 = icmp sle i32 %848, %851
  br i1 %853, label %854, label %903

854:                                              ; preds = %852
  %855 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %856 unwind label %467

856:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #7
  %857 = load i32, ptr %16, align 4, !tbaa !31
  %858 = mul nsw i32 %857, 11
  %859 = sext i32 %858 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %83) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %82, i64 noundef %859, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %83)
          to label %860 unwind label %874

860:                                              ; preds = %856
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %861 unwind label %878

861:                                              ; preds = %860
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %80, ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef @.str.68)
          to label %862 unwind label %882

862:                                              ; preds = %861
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(32) %80, ptr noundef @.str.69)
          to label %863 unwind label %886

863:                                              ; preds = %862
  %864 = load ptr, ptr %6, align 8, !tbaa !5
  %865 = getelementptr inbounds %class.ResolveState, ptr %864, i32 0, i32 10
  %866 = load i8, ptr %865, align 8, !tbaa !48, !range !46, !noundef !47
  %867 = trunc i8 %866 to i1
  %868 = zext i1 %867 to i64
  %869 = select i1 %867, i32 0, i32 2
  %870 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull align 8 dereferenceable(72) %870, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %871 unwind label %890

871:                                              ; preds = %863
  %872 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %855, ptr noundef nonnull align 8 dereferenceable(32) %79, i32 noundef 8388608, i32 noundef %869, ptr noundef %84)
          to label %873 unwind label %894

873:                                              ; preds = %871
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  br label %903

874:                                              ; preds = %856
  %875 = landingpad { ptr, i32 }
          cleanup
  %876 = extractvalue { ptr, i32 } %875, 0
  store ptr %876, ptr %19, align 8
  %877 = extractvalue { ptr, i32 } %875, 1
  store i32 %877, ptr %20, align 4
  br label %902

878:                                              ; preds = %860
  %879 = landingpad { ptr, i32 }
          cleanup
  %880 = extractvalue { ptr, i32 } %879, 0
  store ptr %880, ptr %19, align 8
  %881 = extractvalue { ptr, i32 } %879, 1
  store i32 %881, ptr %20, align 4
  br label %901

882:                                              ; preds = %861
  %883 = landingpad { ptr, i32 }
          cleanup
  %884 = extractvalue { ptr, i32 } %883, 0
  store ptr %884, ptr %19, align 8
  %885 = extractvalue { ptr, i32 } %883, 1
  store i32 %885, ptr %20, align 4
  br label %900

886:                                              ; preds = %862
  %887 = landingpad { ptr, i32 }
          cleanup
  %888 = extractvalue { ptr, i32 } %887, 0
  store ptr %888, ptr %19, align 8
  %889 = extractvalue { ptr, i32 } %887, 1
  store i32 %889, ptr %20, align 4
  br label %899

890:                                              ; preds = %863
  %891 = landingpad { ptr, i32 }
          cleanup
  %892 = extractvalue { ptr, i32 } %891, 0
  store ptr %892, ptr %19, align 8
  %893 = extractvalue { ptr, i32 } %891, 1
  store i32 %893, ptr %20, align 4
  br label %898

894:                                              ; preds = %871
  %895 = landingpad { ptr, i32 }
          cleanup
  %896 = extractvalue { ptr, i32 } %895, 0
  store ptr %896, ptr %19, align 8
  %897 = extractvalue { ptr, i32 } %895, 1
  store i32 %897, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %898

898:                                              ; preds = %894, %890
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %899

899:                                              ; preds = %898, %886
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %80) #7
  br label %900

900:                                              ; preds = %899, %882
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  br label %901

901:                                              ; preds = %900, %878
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %902

902:                                              ; preds = %901, %874
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %83) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %80) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  br label %1158

903:                                              ; preds = %873, %852, %839
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #7
  %904 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(72) %904, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %905 unwind label %911

905:                                              ; preds = %903
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef @.str.70, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %906 unwind label %915

906:                                              ; preds = %905
  %907 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcS0_l(i1 noundef zeroext false, ptr noundef %907, ptr noundef @.str.4, i64 noundef 939)
          to label %908 unwind label %919

908:                                              ; preds = %906
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #7
  %909 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %910 = getelementptr inbounds %class.ResolveNode, ptr %909, i32 0, i32 0
  store i32 8, ptr %910, align 8, !tbaa !34
  call void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #7
  store i32 1, ptr %27, align 4
  br label %1157

911:                                              ; preds = %903
  %912 = landingpad { ptr, i32 }
          cleanup
  %913 = extractvalue { ptr, i32 } %912, 0
  store ptr %913, ptr %19, align 8
  %914 = extractvalue { ptr, i32 } %912, 1
  store i32 %914, ptr %20, align 4
  br label %924

915:                                              ; preds = %905
  %916 = landingpad { ptr, i32 }
          cleanup
  %917 = extractvalue { ptr, i32 } %916, 0
  store ptr %917, ptr %19, align 8
  %918 = extractvalue { ptr, i32 } %916, 1
  store i32 %918, ptr %20, align 4
  br label %923

919:                                              ; preds = %906
  %920 = landingpad { ptr, i32 }
          cleanup
  %921 = extractvalue { ptr, i32 } %920, 0
  store ptr %921, ptr %19, align 8
  %922 = extractvalue { ptr, i32 } %920, 1
  store i32 %922, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %923

923:                                              ; preds = %919, %915
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  br label %924

924:                                              ; preds = %923, %911
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #7
  br label %1158

925:                                              ; preds = %834
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #7
  %926 = getelementptr inbounds %class.HtnGoalResolver, ptr %125, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #7
  %927 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(72) %927)
          to label %928 unwind label %944

928:                                              ; preds = %925
  %929 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE4findERSJ_(ptr noundef nonnull align 8 dereferenceable(48) %926, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %930 unwind label %948

930:                                              ; preds = %928
  %931 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %87, i32 0, i32 0
  store ptr %929, ptr %931, align 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #7
  %932 = getelementptr inbounds %class.HtnGoalResolver, ptr %125, i32 0, i32 1
  %933 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %932) #7
  %934 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %89, i32 0, i32 0
  store ptr %933, ptr %934, align 8
  %935 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEESL_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(8) %89) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #7
  br i1 %935, label %936, label %957

936:                                              ; preds = %930
  %937 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %938 = getelementptr inbounds %class.ResolveNode, ptr %937, i32 0, i32 0
  store i32 0, ptr %938, align 8, !tbaa !34
  %939 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %87) #7
  %940 = getelementptr inbounds %"struct.std::pair.145", ptr %939, i32 0, i32 1
  %941 = getelementptr inbounds %"struct.std::pair.127", ptr %940, i32 0, i32 1
  %942 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZNKSt8functionIFvP12ResolveStateEEclES1_(ptr noundef nonnull align 8 dereferenceable(32) %941, ptr noundef %942)
          to label %943 unwind label %953

943:                                              ; preds = %936
  br label %1151

944:                                              ; preds = %925
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %19, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %20, align 4
  br label %952

948:                                              ; preds = %928
  %949 = landingpad { ptr, i32 }
          cleanup
  %950 = extractvalue { ptr, i32 } %949, 0
  store ptr %950, ptr %19, align 8
  %951 = extractvalue { ptr, i32 } %949, 1
  store i32 %951, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  br label %952

952:                                              ; preds = %948, %944
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  br label %1152

953:                                              ; preds = %936
  %954 = landingpad { ptr, i32 }
          cleanup
  %955 = extractvalue { ptr, i32 } %954, 0
  store ptr %955, ptr %19, align 8
  %956 = extractvalue { ptr, i32 } %954, 1
  store i32 %956, ptr %20, align 4
  br label %1152

957:                                              ; preds = %930
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #7
  store i64 0, ptr %90, align 8, !tbaa !33
  call void @llvm.lifetime.start.p0(i64 16, ptr %91) #7
  %958 = load ptr, ptr %7, align 8, !tbaa !5
  %959 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef nonnull align 8 dereferenceable(16) %43) #7
  %960 = load ptr, ptr %11, align 8, !tbaa !5
  %961 = load i32, ptr %16, align 4, !tbaa !31
  %962 = load i32, ptr %10, align 4, !tbaa !31
  %963 = sext i32 %962 to i64
  %964 = load i64, ptr %18, align 8, !tbaa !33
  %965 = sub nsw i64 %963, %964
  %966 = trunc i64 %965 to i32
  %967 = load ptr, ptr %6, align 8, !tbaa !5
  %968 = getelementptr inbounds %class.ResolveState, ptr %967, i32 0, i32 10
  %969 = load i8, ptr %968, align 8, !tbaa !48, !range !46, !noundef !47
  %970 = trunc i8 %969 to i1
  invoke void @_ZN15HtnGoalResolver21FindAllRulesThatUnifyEP14HtnTermFactoryP10HtnRuleSetSt10shared_ptrI7HtnTermEPiiibPl(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.6") align 8 %91, ptr noundef %958, ptr noundef %959, ptr noundef %92, ptr noundef %960, i32 noundef %961, i32 noundef %966, i1 noundef zeroext %970, ptr noundef %90)
          to label %971 unwind label %1024

971:                                              ; preds = %957
  %972 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %973 = getelementptr inbounds %class.ResolveNode, ptr %972, i32 0, i32 4
  %974 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEEaSEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %973, ptr noundef nonnull align 8 dereferenceable(16) %91) #7
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %91) #7
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #7
  %975 = load ptr, ptr %6, align 8, !tbaa !5
  %976 = getelementptr inbounds %class.ResolveState, ptr %975, i32 0, i32 12
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #7
  %977 = load i64, ptr %18, align 8, !tbaa !33
  %978 = load i64, ptr %90, align 8, !tbaa !33
  %979 = add nsw i64 %977, %978
  store i64 %979, ptr %93, align 8, !tbaa !33
  %980 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %976, ptr noundef nonnull align 8 dereferenceable(8) %93)
          to label %981 unwind label %1028

981:                                              ; preds = %971
  %982 = load i64, ptr %980, align 8, !tbaa !33
  %983 = load ptr, ptr %6, align 8, !tbaa !5
  %984 = getelementptr inbounds %class.ResolveState, ptr %983, i32 0, i32 12
  store i64 %982, ptr %984, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  %985 = load ptr, ptr %7, align 8, !tbaa !5
  %986 = invoke noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088) %985)
          to label %987 unwind label %1032

987:                                              ; preds = %981
  br i1 %986, label %988, label %1068

988:                                              ; preds = %987
  %989 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %990 unwind label %1032

990:                                              ; preds = %988
  %991 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %989)
          to label %992 unwind label %1032

992:                                              ; preds = %990
  %993 = and i64 8388608, %991
  %994 = icmp ne i64 %993, 0
  br i1 %994, label %995, label %1065

995:                                              ; preds = %992
  %996 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %997 unwind label %1032

997:                                              ; preds = %995
  %998 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %996)
          to label %999 unwind label %1032

999:                                              ; preds = %997
  %1000 = icmp sle i32 0, %998
  br i1 %1000, label %1001, label %1065

1001:                                             ; preds = %999
  %1002 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1003 unwind label %1032

1003:                                             ; preds = %1001
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %95) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %97) #7
  %1004 = load i32, ptr %16, align 4, !tbaa !31
  %1005 = mul nsw i32 %1004, 11
  %1006 = sext i32 %1005 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %98) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, i64 noundef %1006, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %1007 unwind label %1036

1007:                                             ; preds = %1003
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %1008 unwind label %1040

1008:                                             ; preds = %1007
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.58)
          to label %1009 unwind label %1044

1009:                                             ; preds = %1008
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef @.str.71)
          to label %1010 unwind label %1048

1010:                                             ; preds = %1009
  %1011 = load i64, ptr %18, align 8, !tbaa !33
  %1012 = load ptr, ptr %6, align 8, !tbaa !5
  %1013 = getelementptr inbounds %class.ResolveState, ptr %1012, i32 0, i32 16
  %1014 = load ptr, ptr %7, align 8, !tbaa !5
  %1015 = invoke noundef i64 @_ZN14HtnTermFactory11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %1014)
          to label %1016 unwind label %1052

1016:                                             ; preds = %1010
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #7
  %1017 = load ptr, ptr %8, align 8, !tbaa !5
  %1018 = invoke noundef i64 @_ZN10HtnRuleSet11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(144) %1017)
          to label %1019 unwind label %1056

1019:                                             ; preds = %1016
  store i64 %1018, ptr %99, align 8, !tbaa !33
  %1020 = load ptr, ptr %6, align 8, !tbaa !5
  %1021 = getelementptr inbounds %class.ResolveState, ptr %1020, i32 0, i32 13
  %1022 = invoke noundef double @_ZN9NanoTrace5TraceIlillNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_(ptr noundef nonnull align 8 dereferenceable(12) %1002, ptr noundef nonnull align 8 dereferenceable(32) %94, i32 noundef 8388608, i32 noundef 0, i64 noundef %1011, ptr noundef nonnull align 4 dereferenceable(4) %1013, i64 noundef %1015, ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(32) %1021)
          to label %1023 unwind label %1056

1023:                                             ; preds = %1019
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  br label %1065

1024:                                             ; preds = %957
  %1025 = landingpad { ptr, i32 }
          cleanup
  %1026 = extractvalue { ptr, i32 } %1025, 0
  store ptr %1026, ptr %19, align 8
  %1027 = extractvalue { ptr, i32 } %1025, 1
  store i32 %1027, ptr %20, align 4
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %91) #7
  br label %1150

1028:                                             ; preds = %971
  %1029 = landingpad { ptr, i32 }
          cleanup
  %1030 = extractvalue { ptr, i32 } %1029, 0
  store ptr %1030, ptr %19, align 8
  %1031 = extractvalue { ptr, i32 } %1029, 1
  store i32 %1031, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #7
  br label %1150

1032:                                             ; preds = %1102, %1098, %1090, %1085, %1083, %1001, %997, %995, %990, %988, %981
  %1033 = landingpad { ptr, i32 }
          cleanup
  %1034 = extractvalue { ptr, i32 } %1033, 0
  store ptr %1034, ptr %19, align 8
  %1035 = extractvalue { ptr, i32 } %1033, 1
  store i32 %1035, ptr %20, align 4
  br label %1150

1036:                                             ; preds = %1003
  %1037 = landingpad { ptr, i32 }
          cleanup
  %1038 = extractvalue { ptr, i32 } %1037, 0
  store ptr %1038, ptr %19, align 8
  %1039 = extractvalue { ptr, i32 } %1037, 1
  store i32 %1039, ptr %20, align 4
  br label %1064

1040:                                             ; preds = %1007
  %1041 = landingpad { ptr, i32 }
          cleanup
  %1042 = extractvalue { ptr, i32 } %1041, 0
  store ptr %1042, ptr %19, align 8
  %1043 = extractvalue { ptr, i32 } %1041, 1
  store i32 %1043, ptr %20, align 4
  br label %1063

1044:                                             ; preds = %1008
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %19, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %20, align 4
  br label %1062

1048:                                             ; preds = %1009
  %1049 = landingpad { ptr, i32 }
          cleanup
  %1050 = extractvalue { ptr, i32 } %1049, 0
  store ptr %1050, ptr %19, align 8
  %1051 = extractvalue { ptr, i32 } %1049, 1
  store i32 %1051, ptr %20, align 4
  br label %1061

1052:                                             ; preds = %1010
  %1053 = landingpad { ptr, i32 }
          cleanup
  %1054 = extractvalue { ptr, i32 } %1053, 0
  store ptr %1054, ptr %19, align 8
  %1055 = extractvalue { ptr, i32 } %1053, 1
  store i32 %1055, ptr %20, align 4
  br label %1060

1056:                                             ; preds = %1019, %1016
  %1057 = landingpad { ptr, i32 }
          cleanup
  %1058 = extractvalue { ptr, i32 } %1057, 0
  store ptr %1058, ptr %19, align 8
  %1059 = extractvalue { ptr, i32 } %1057, 1
  store i32 %1059, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #7
  br label %1060

1060:                                             ; preds = %1056, %1052
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  br label %1061

1061:                                             ; preds = %1060, %1048
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  br label %1062

1062:                                             ; preds = %1061, %1044
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  br label %1063

1063:                                             ; preds = %1062, %1040
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  br label %1064

1064:                                             ; preds = %1063, %1036
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #7
  br label %1150

1065:                                             ; preds = %1023, %999, %992
  %1066 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %1067 = getelementptr inbounds %class.ResolveNode, ptr %1066, i32 0, i32 0
  store i32 8, ptr %1067, align 8, !tbaa !34
  br label %1149

1068:                                             ; preds = %987
  %1069 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %1070 = getelementptr inbounds %class.ResolveNode, ptr %1069, i32 0, i32 0
  store i32 7, ptr %1070, align 8, !tbaa !34
  %1071 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %1072 = getelementptr inbounds %class.ResolveNode, ptr %1071, i32 0, i32 4
  %1073 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1072) #7
  %1074 = call noundef i64 @_ZNKSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1073) #7
  %1075 = icmp eq i64 %1074, 0
  br i1 %1075, label %1076, label %1083

1076:                                             ; preds = %1068
  %1077 = load ptr, ptr %6, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 8 dereferenceable(16) %43) #7
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %101, ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %1077, ptr noundef %100, ptr noundef %101)
          to label %1078 unwind label %1079

1078:                                             ; preds = %1076
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #7
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #7
  br label %1083

1079:                                             ; preds = %1076
  %1080 = landingpad { ptr, i32 }
          cleanup
  %1081 = extractvalue { ptr, i32 } %1080, 0
  store ptr %1081, ptr %19, align 8
  %1082 = extractvalue { ptr, i32 } %1080, 1
  store i32 %1082, ptr %20, align 4
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #7
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #7
  br label %1150

1083:                                             ; preds = %1078, %1068
  %1084 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1085 unwind label %1032

1085:                                             ; preds = %1083
  %1086 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %1084)
          to label %1087 unwind label %1032

1087:                                             ; preds = %1085
  %1088 = and i64 8388608, %1086
  %1089 = icmp ne i64 %1088, 0
  br i1 %1089, label %1090, label %1148

1090:                                             ; preds = %1087
  %1091 = load ptr, ptr %6, align 8, !tbaa !5
  %1092 = getelementptr inbounds %class.ResolveState, ptr %1091, i32 0, i32 10
  %1093 = load i8, ptr %1092, align 8, !tbaa !48, !range !46, !noundef !47
  %1094 = trunc i8 %1093 to i1
  %1095 = zext i1 %1094 to i64
  %1096 = select i1 %1094, i32 0, i32 2
  %1097 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1098 unwind label %1032

1098:                                             ; preds = %1090
  %1099 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %1097)
          to label %1100 unwind label %1032

1100:                                             ; preds = %1098
  %1101 = icmp sle i32 %1096, %1099
  br i1 %1101, label %1102, label %1148

1102:                                             ; preds = %1100
  %1103 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1104 unwind label %1032

1104:                                             ; preds = %1102
  call void @llvm.lifetime.start.p0(i64 32, ptr %102) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %103) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #7
  %1105 = load i32, ptr %16, align 4, !tbaa !31
  %1106 = mul nsw i32 %1105, 11
  %1107 = sext i32 %1106 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %106) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, i64 noundef %1107, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %1108 unwind label %1124

1108:                                             ; preds = %1104
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %104, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %1109 unwind label %1128

1109:                                             ; preds = %1108
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %103, ptr noundef nonnull align 8 dereferenceable(32) %104, ptr noundef @.str.6)
          to label %1110 unwind label %1132

1110:                                             ; preds = %1109
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef @.str.72)
          to label %1111 unwind label %1136

1111:                                             ; preds = %1110
  %1112 = load ptr, ptr %6, align 8, !tbaa !5
  %1113 = getelementptr inbounds %class.ResolveState, ptr %1112, i32 0, i32 10
  %1114 = load i8, ptr %1113, align 8, !tbaa !48, !range !46, !noundef !47
  %1115 = trunc i8 %1114 to i1
  %1116 = zext i1 %1115 to i64
  %1117 = select i1 %1115, i32 0, i32 2
  %1118 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %1119 = getelementptr inbounds %class.ResolveNode, ptr %1118, i32 0, i32 4
  %1120 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1119) #7
  %1121 = call noundef i64 @_ZNKSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1120) #7
  %1122 = invoke noundef double @_ZN9NanoTrace5TraceImEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %1103, ptr noundef nonnull align 8 dereferenceable(32) %102, i32 noundef 8388608, i32 noundef %1117, i64 noundef %1121)
          to label %1123 unwind label %1140

1123:                                             ; preds = %1111
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  br label %1148

1124:                                             ; preds = %1104
  %1125 = landingpad { ptr, i32 }
          cleanup
  %1126 = extractvalue { ptr, i32 } %1125, 0
  store ptr %1126, ptr %19, align 8
  %1127 = extractvalue { ptr, i32 } %1125, 1
  store i32 %1127, ptr %20, align 4
  br label %1147

1128:                                             ; preds = %1108
  %1129 = landingpad { ptr, i32 }
          cleanup
  %1130 = extractvalue { ptr, i32 } %1129, 0
  store ptr %1130, ptr %19, align 8
  %1131 = extractvalue { ptr, i32 } %1129, 1
  store i32 %1131, ptr %20, align 4
  br label %1146

1132:                                             ; preds = %1109
  %1133 = landingpad { ptr, i32 }
          cleanup
  %1134 = extractvalue { ptr, i32 } %1133, 0
  store ptr %1134, ptr %19, align 8
  %1135 = extractvalue { ptr, i32 } %1133, 1
  store i32 %1135, ptr %20, align 4
  br label %1145

1136:                                             ; preds = %1110
  %1137 = landingpad { ptr, i32 }
          cleanup
  %1138 = extractvalue { ptr, i32 } %1137, 0
  store ptr %1138, ptr %19, align 8
  %1139 = extractvalue { ptr, i32 } %1137, 1
  store i32 %1139, ptr %20, align 4
  br label %1144

1140:                                             ; preds = %1111
  %1141 = landingpad { ptr, i32 }
          cleanup
  %1142 = extractvalue { ptr, i32 } %1141, 0
  store ptr %1142, ptr %19, align 8
  %1143 = extractvalue { ptr, i32 } %1141, 1
  store i32 %1143, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  br label %1144

1144:                                             ; preds = %1140, %1136
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #7
  br label %1145

1145:                                             ; preds = %1144, %1132
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  br label %1146

1146:                                             ; preds = %1145, %1128
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  br label %1147

1147:                                             ; preds = %1146, %1124
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %102) #7
  br label %1150

1148:                                             ; preds = %1123, %1100, %1087
  br label %1149

1149:                                             ; preds = %1148, %1065
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  br label %1151

1150:                                             ; preds = %1147, %1079, %1064, %1032, %1028, %1024
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #7
  br label %1152

1151:                                             ; preds = %1149, %943
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  br label %1153

1152:                                             ; preds = %1150, %953, %952
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #7
  br label %1158

1153:                                             ; preds = %1151
  br label %1154

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

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

1156:                                             ; preds = %1155, %519
  store i32 2, ptr %27, align 4
  br label %1157, !llvm.loop !51

1157:                                             ; preds = %1156, %908, %518
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #7
  br label %1388

1158:                                             ; preds = %1152, %924, %902, %830, %751, %717, %708, %637, %603, %594, %499, %467
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #7
  br label %1159

1159:                                             ; preds = %1158, %463
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #7
  br label %1391

1160:                                             ; preds = %251
  %1161 = load ptr, ptr %13, align 8, !tbaa !5
  %1162 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1161) #7
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %1162) #7
  br label %1387

1163:                                             ; preds = %251
  %1164 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %1165 = invoke noundef zeroext i1 @_ZN11ResolveNode11SetNextRuleEv(ptr noundef nonnull align 8 dereferenceable(144) %1164)
          to label %1166 unwind label %211

1166:                                             ; preds = %1163
  br i1 %1165, label %1167, label %1341

1167:                                             ; preds = %1166
  call void @llvm.lifetime.start.p0(i64 40, ptr %107) #7
  %1168 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZN11ResolveNode11currentRuleEv(ptr dead_on_unwind writable sret(%"struct.std::pair.143") align 8 %107, ptr noundef nonnull align 8 dereferenceable(144) %1168)
          to label %1169 unwind label %1209

1169:                                             ; preds = %1167
  %1170 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1171 unwind label %1213

1171:                                             ; preds = %1169
  %1172 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %1170)
          to label %1173 unwind label %1213

1173:                                             ; preds = %1171
  %1174 = and i64 8388608, %1172
  %1175 = icmp ne i64 %1174, 0
  br i1 %1175, label %1176, label %1246

1176:                                             ; preds = %1173
  %1177 = load ptr, ptr %6, align 8, !tbaa !5
  %1178 = getelementptr inbounds %class.ResolveState, ptr %1177, i32 0, i32 10
  %1179 = load i8, ptr %1178, align 8, !tbaa !48, !range !46, !noundef !47
  %1180 = trunc i8 %1179 to i1
  %1181 = zext i1 %1180 to i64
  %1182 = select i1 %1180, i32 0, i32 2
  %1183 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1184 unwind label %1213

1184:                                             ; preds = %1176
  %1185 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %1183)
          to label %1186 unwind label %1213

1186:                                             ; preds = %1184
  %1187 = icmp sle i32 %1182, %1185
  br i1 %1187, label %1188, label %1246

1188:                                             ; preds = %1186
  %1189 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1190 unwind label %1213

1190:                                             ; preds = %1188
  call void @llvm.lifetime.start.p0(i64 32, ptr %108) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %109) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #7
  %1191 = load i32, ptr %16, align 4, !tbaa !31
  %1192 = mul nsw i32 %1191, 11
  %1193 = sext i32 %1192 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %111, i64 noundef %1193, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %112)
          to label %1194 unwind label %1217

1194:                                             ; preds = %1190
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %110, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %111)
          to label %1195 unwind label %1221

1195:                                             ; preds = %1194
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %109, ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef @.str.6)
          to label %1196 unwind label %1225

1196:                                             ; preds = %1195
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef nonnull align 8 dereferenceable(32) %109, ptr noundef @.str.73)
          to label %1197 unwind label %1229

1197:                                             ; preds = %1196
  %1198 = load ptr, ptr %6, align 8, !tbaa !5
  %1199 = getelementptr inbounds %class.ResolveState, ptr %1198, i32 0, i32 10
  %1200 = load i8, ptr %1199, align 8, !tbaa !48, !range !46, !noundef !47
  %1201 = trunc i8 %1200 to i1
  %1202 = zext i1 %1201 to i64
  %1203 = select i1 %1201, i32 0, i32 2
  %1204 = getelementptr inbounds %"struct.std::pair.143", ptr %107, i32 0, i32 0
  %1205 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnRuleLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1204) #7
  invoke void @_ZNK7HtnRule8ToStringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %113, ptr noundef nonnull align 8 dereferenceable(40) %1205)
          to label %1206 unwind label %1233

1206:                                             ; preds = %1197
  %1207 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %1189, ptr noundef nonnull align 8 dereferenceable(32) %108, i32 noundef 8388608, i32 noundef %1203, ptr noundef %113)
          to label %1208 unwind label %1237

1208:                                             ; preds = %1206
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #7
  br label %1246

1209:                                             ; preds = %1167
  %1210 = landingpad { ptr, i32 }
          cleanup
  %1211 = extractvalue { ptr, i32 } %1210, 0
  store ptr %1211, ptr %19, align 8
  %1212 = extractvalue { ptr, i32 } %1210, 1
  store i32 %1212, ptr %20, align 4
  br label %1340

1213:                                             ; preds = %1265, %1261, %1253, %1248, %1246, %1188, %1184, %1176, %1171, %1169
  %1214 = landingpad { ptr, i32 }
          cleanup
  %1215 = extractvalue { ptr, i32 } %1214, 0
  store ptr %1215, ptr %19, align 8
  %1216 = extractvalue { ptr, i32 } %1214, 1
  store i32 %1216, ptr %20, align 4
  br label %1339

1217:                                             ; preds = %1190
  %1218 = landingpad { ptr, i32 }
          cleanup
  %1219 = extractvalue { ptr, i32 } %1218, 0
  store ptr %1219, ptr %19, align 8
  %1220 = extractvalue { ptr, i32 } %1218, 1
  store i32 %1220, ptr %20, align 4
  br label %1245

1221:                                             ; preds = %1194
  %1222 = landingpad { ptr, i32 }
          cleanup
  %1223 = extractvalue { ptr, i32 } %1222, 0
  store ptr %1223, ptr %19, align 8
  %1224 = extractvalue { ptr, i32 } %1222, 1
  store i32 %1224, ptr %20, align 4
  br label %1244

1225:                                             ; preds = %1195
  %1226 = landingpad { ptr, i32 }
          cleanup
  %1227 = extractvalue { ptr, i32 } %1226, 0
  store ptr %1227, ptr %19, align 8
  %1228 = extractvalue { ptr, i32 } %1226, 1
  store i32 %1228, ptr %20, align 4
  br label %1243

1229:                                             ; preds = %1196
  %1230 = landingpad { ptr, i32 }
          cleanup
  %1231 = extractvalue { ptr, i32 } %1230, 0
  store ptr %1231, ptr %19, align 8
  %1232 = extractvalue { ptr, i32 } %1230, 1
  store i32 %1232, ptr %20, align 4
  br label %1242

1233:                                             ; preds = %1197
  %1234 = landingpad { ptr, i32 }
          cleanup
  %1235 = extractvalue { ptr, i32 } %1234, 0
  store ptr %1235, ptr %19, align 8
  %1236 = extractvalue { ptr, i32 } %1234, 1
  store i32 %1236, ptr %20, align 4
  br label %1241

1237:                                             ; preds = %1206
  %1238 = landingpad { ptr, i32 }
          cleanup
  %1239 = extractvalue { ptr, i32 } %1238, 0
  store ptr %1239, ptr %19, align 8
  %1240 = extractvalue { ptr, i32 } %1238, 1
  store i32 %1240, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %113) #7
  br label %1241

1241:                                             ; preds = %1237, %1233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1242

1242:                                             ; preds = %1241, %1229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %109) #7
  br label %1243

1243:                                             ; preds = %1242, %1225
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  br label %1244

1244:                                             ; preds = %1243, %1221
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #7
  br label %1245

1245:                                             ; preds = %1244, %1217
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %112) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %108) #7
  br label %1339

1246:                                             ; preds = %1208, %1186, %1173
  %1247 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1248 unwind label %1213

1248:                                             ; preds = %1246
  %1249 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %1247)
          to label %1250 unwind label %1213

1250:                                             ; preds = %1248
  %1251 = and i64 8388608, %1249
  %1252 = icmp ne i64 %1251, 0
  br i1 %1252, label %1253, label %1314

1253:                                             ; preds = %1250
  %1254 = load ptr, ptr %6, align 8, !tbaa !5
  %1255 = getelementptr inbounds %class.ResolveState, ptr %1254, i32 0, i32 10
  %1256 = load i8, ptr %1255, align 8, !tbaa !48, !range !46, !noundef !47
  %1257 = trunc i8 %1256 to i1
  %1258 = zext i1 %1257 to i64
  %1259 = select i1 %1257, i32 0, i32 2
  %1260 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1261 unwind label %1213

1261:                                             ; preds = %1253
  %1262 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %1260)
          to label %1263 unwind label %1213

1263:                                             ; preds = %1261
  %1264 = icmp sle i32 %1259, %1262
  br i1 %1264, label %1265, label %1314

1265:                                             ; preds = %1263
  %1266 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %1267 unwind label %1213

1267:                                             ; preds = %1265
  call void @llvm.lifetime.start.p0(i64 32, ptr %114) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %115) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %116) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %117) #7
  %1268 = load i32, ptr %16, align 4, !tbaa !31
  %1269 = mul nsw i32 %1268, 11
  %1270 = sext i32 %1269 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %118) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %117, i64 noundef %1270, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %118)
          to label %1271 unwind label %1285

1271:                                             ; preds = %1267
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %116, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %117)
          to label %1272 unwind label %1289

1272:                                             ; preds = %1271
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %115, ptr noundef nonnull align 8 dereferenceable(32) %116, ptr noundef @.str.6)
          to label %1273 unwind label %1293

1273:                                             ; preds = %1272
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %114, ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef @.str.74)
          to label %1274 unwind label %1297

1274:                                             ; preds = %1273
  %1275 = load ptr, ptr %6, align 8, !tbaa !5
  %1276 = getelementptr inbounds %class.ResolveState, ptr %1275, i32 0, i32 10
  %1277 = load i8, ptr %1276, align 8, !tbaa !48, !range !46, !noundef !47
  %1278 = trunc i8 %1277 to i1
  %1279 = zext i1 %1278 to i64
  %1280 = select i1 %1278, i32 0, i32 2
  %1281 = getelementptr inbounds %"struct.std::pair.143", ptr %107, i32 0, i32 1
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %119, ptr noundef nonnull align 8 dereferenceable(24) %1281, i1 noundef zeroext false)
          to label %1282 unwind label %1301

1282:                                             ; preds = %1274
  %1283 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %1266, ptr noundef nonnull align 8 dereferenceable(32) %114, i32 noundef 8388608, i32 noundef %1280, ptr noundef %119)
          to label %1284 unwind label %1305

1284:                                             ; preds = %1282
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #7
  br label %1314

1285:                                             ; preds = %1267
  %1286 = landingpad { ptr, i32 }
          cleanup
  %1287 = extractvalue { ptr, i32 } %1286, 0
  store ptr %1287, ptr %19, align 8
  %1288 = extractvalue { ptr, i32 } %1286, 1
  store i32 %1288, ptr %20, align 4
  br label %1313

1289:                                             ; preds = %1271
  %1290 = landingpad { ptr, i32 }
          cleanup
  %1291 = extractvalue { ptr, i32 } %1290, 0
  store ptr %1291, ptr %19, align 8
  %1292 = extractvalue { ptr, i32 } %1290, 1
  store i32 %1292, ptr %20, align 4
  br label %1312

1293:                                             ; preds = %1272
  %1294 = landingpad { ptr, i32 }
          cleanup
  %1295 = extractvalue { ptr, i32 } %1294, 0
  store ptr %1295, ptr %19, align 8
  %1296 = extractvalue { ptr, i32 } %1294, 1
  store i32 %1296, ptr %20, align 4
  br label %1311

1297:                                             ; preds = %1273
  %1298 = landingpad { ptr, i32 }
          cleanup
  %1299 = extractvalue { ptr, i32 } %1298, 0
  store ptr %1299, ptr %19, align 8
  %1300 = extractvalue { ptr, i32 } %1298, 1
  store i32 %1300, ptr %20, align 4
  br label %1310

1301:                                             ; preds = %1274
  %1302 = landingpad { ptr, i32 }
          cleanup
  %1303 = extractvalue { ptr, i32 } %1302, 0
  store ptr %1303, ptr %19, align 8
  %1304 = extractvalue { ptr, i32 } %1302, 1
  store i32 %1304, ptr %20, align 4
  br label %1309

1305:                                             ; preds = %1282
  %1306 = landingpad { ptr, i32 }
          cleanup
  %1307 = extractvalue { ptr, i32 } %1306, 0
  store ptr %1307, ptr %19, align 8
  %1308 = extractvalue { ptr, i32 } %1306, 1
  store i32 %1308, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #7
  br label %1309

1309:                                             ; preds = %1305, %1301
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %114) #7
  br label %1310

1310:                                             ; preds = %1309, %1297
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  br label %1311

1311:                                             ; preds = %1310, %1293
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %116) #7
  br label %1312

1312:                                             ; preds = %1311, %1289
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %117) #7
  br label %1313

1313:                                             ; preds = %1312, %1285
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %118) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %117) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %116) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %115) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %114) #7
  br label %1339

1314:                                             ; preds = %1284, %1263, %1250
  %1315 = load ptr, ptr %13, align 8, !tbaa !5
  %1316 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1315) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #7
  %1317 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  %1318 = load ptr, ptr %7, align 8, !tbaa !5
  %1319 = load ptr, ptr %6, align 8, !tbaa !5
  %1320 = getelementptr inbounds %class.ResolveState, ptr %1319, i32 0, i32 14
  %1321 = 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) %1320) #7
  %1322 = getelementptr inbounds %"struct.std::pair.143", ptr %107, i32 0, i32 0
  %1323 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnRuleLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1322) #7
  %1324 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnRule4tailEv(ptr noundef nonnull align 8 dereferenceable(40) %1323)
          to label %1325 unwind label %1330

1325:                                             ; preds = %1314
  %1326 = getelementptr inbounds %"struct.std::pair.143", ptr %107, i32 0, i32 1
  %1327 = load ptr, ptr %11, align 8, !tbaa !5
  invoke void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.25") align 8 %120, ptr noundef nonnull align 8 dereferenceable(144) %1317, ptr noundef %1318, ptr noundef nonnull align 8 dereferenceable(24) %1321, ptr noundef nonnull align 8 dereferenceable(24) %1324, ptr noundef nonnull align 8 dereferenceable(24) %1326, ptr noundef %1327)
          to label %1328 unwind label %1330

1328:                                             ; preds = %1325
  invoke void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %1316, ptr noundef nonnull align 8 dereferenceable(16) %120)
          to label %1329 unwind label %1334

1329:                                             ; preds = %1328
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #7
  call void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %107) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr %107) #7
  br label %1344

1330:                                             ; preds = %1325, %1314
  %1331 = landingpad { ptr, i32 }
          cleanup
  %1332 = extractvalue { ptr, i32 } %1331, 0
  store ptr %1332, ptr %19, align 8
  %1333 = extractvalue { ptr, i32 } %1331, 1
  store i32 %1333, ptr %20, align 4
  br label %1338

1334:                                             ; preds = %1328
  %1335 = landingpad { ptr, i32 }
          cleanup
  %1336 = extractvalue { ptr, i32 } %1335, 0
  store ptr %1336, ptr %19, align 8
  %1337 = extractvalue { ptr, i32 } %1335, 1
  store i32 %1337, ptr %20, align 4
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #7
  br label %1338

1338:                                             ; preds = %1334, %1330
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #7
  br label %1339

1339:                                             ; preds = %1338, %1313, %1245, %1213
  call void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %107) #7
  br label %1340

1340:                                             ; preds = %1339, %1209
  call void @llvm.lifetime.end.p0(i64 40, ptr %107) #7
  br label %1391

1341:                                             ; preds = %1166
  %1342 = load ptr, ptr %13, align 8, !tbaa !5
  %1343 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1342) #7
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %1343) #7
  br label %1344

1344:                                             ; preds = %1341, %1329
  store i32 2, ptr %27, align 4
  br label %1388, !llvm.loop !51

1345:                                             ; preds = %251, %251, %251, %251, %251
  call void @llvm.lifetime.start.p0(i64 8, ptr %121) #7
  %1346 = getelementptr inbounds %class.HtnGoalResolver, ptr %125, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 32, ptr %122) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %123) #7
  %1347 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %123, ptr noundef nonnull align 8 dereferenceable(144) %1347)
          to label %1348 unwind label %1364

1348:                                             ; preds = %1345
  %1349 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %123) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %122, ptr noundef nonnull align 8 dereferenceable(72) %1349)
          to label %1350 unwind label %1368

1350:                                             ; preds = %1348
  %1351 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE4findERSJ_(ptr noundef nonnull align 8 dereferenceable(48) %1346, ptr noundef nonnull align 8 dereferenceable(32) %122)
          to label %1352 unwind label %1372

1352:                                             ; preds = %1350
  %1353 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %121, i32 0, i32 0
  store ptr %1351, ptr %1353, align 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #7
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #7
  %1354 = getelementptr inbounds %class.HtnGoalResolver, ptr %125, i32 0, i32 1
  %1355 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1354) #7
  %1356 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %124, i32 0, i32 0
  store ptr %1355, ptr %1356, align 8
  %1357 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEESL_(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull align 8 dereferenceable(8) %124) #7
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcl(ptr noundef %125, i1 noundef zeroext %1357, ptr noundef @.str.4, i64 noundef 1012)
          to label %1358 unwind label %1378

1358:                                             ; preds = %1352
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #7
  %1359 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %121) #7
  %1360 = getelementptr inbounds %"struct.std::pair.145", ptr %1359, i32 0, i32 1
  %1361 = getelementptr inbounds %"struct.std::pair.127", ptr %1360, i32 0, i32 1
  %1362 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZNKSt8functionIFvP12ResolveStateEEclES1_(ptr noundef nonnull align 8 dereferenceable(32) %1361, ptr noundef %1362)
          to label %1363 unwind label %1382

1363:                                             ; preds = %1358
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #7
  br label %1387

1364:                                             ; preds = %1345
  %1365 = landingpad { ptr, i32 }
          cleanup
  %1366 = extractvalue { ptr, i32 } %1365, 0
  store ptr %1366, ptr %19, align 8
  %1367 = extractvalue { ptr, i32 } %1365, 1
  store i32 %1367, ptr %20, align 4
  br label %1377

1368:                                             ; preds = %1348
  %1369 = landingpad { ptr, i32 }
          cleanup
  %1370 = extractvalue { ptr, i32 } %1369, 0
  store ptr %1370, ptr %19, align 8
  %1371 = extractvalue { ptr, i32 } %1369, 1
  store i32 %1371, ptr %20, align 4
  br label %1376

1372:                                             ; preds = %1350
  %1373 = landingpad { ptr, i32 }
          cleanup
  %1374 = extractvalue { ptr, i32 } %1373, 0
  store ptr %1374, ptr %19, align 8
  %1375 = extractvalue { ptr, i32 } %1373, 1
  store i32 %1375, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %122) #7
  br label %1376

1376:                                             ; preds = %1372, %1368
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #7
  br label %1377

1377:                                             ; preds = %1376, %1364
  call void @llvm.lifetime.end.p0(i64 16, ptr %123) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %122) #7
  br label %1386

1378:                                             ; preds = %1352
  %1379 = landingpad { ptr, i32 }
          cleanup
  %1380 = extractvalue { ptr, i32 } %1379, 0
  store ptr %1380, ptr %19, align 8
  %1381 = extractvalue { ptr, i32 } %1379, 1
  store i32 %1381, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #7
  br label %1386

1382:                                             ; preds = %1358
  %1383 = landingpad { ptr, i32 }
          cleanup
  %1384 = extractvalue { ptr, i32 } %1383, 0
  store ptr %1384, ptr %19, align 8
  %1385 = extractvalue { ptr, i32 } %1383, 1
  store i32 %1385, ptr %20, align 4
  br label %1386

1386:                                             ; preds = %1382, %1378, %1377
  call void @llvm.lifetime.end.p0(i64 8, ptr %121) #7
  br label %1391

1387:                                             ; preds = %1363, %1160, %415, %251
  store i32 0, ptr %27, align 4
  br label %1388

1388:                                             ; preds = %1387, %1344, %1157, %304, %248
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  %1389 = load i32, ptr %27, align 4
  switch i32 %1389, label %1393 [
    i32 0, label %1390
    i32 2, label %148
  ]

1390:                                             ; preds = %1388
  br label %148, !llvm.loop !51

1391:                                             ; preds = %1386, %1340, %1159, %417, %303, %243, %211
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  br label %1394

1392:                                             ; preds = %148
  call void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #7
  store i32 1, ptr %27, align 4
  br label %1393

1393:                                             ; preds = %1392, %1388
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #7
  ret void

1394:                                             ; preds = %1391
  %1395 = load ptr, ptr %19, align 8
  %1396 = load i32, ptr %20, align 4
  %1397 = insertvalue { ptr, i32 } poison, ptr %1395, 0
  %1398 = insertvalue { ptr, i32 } %1397, i32 %1396, 1
  resume { ptr, i32 } %1398

1399:                                             ; preds = %393
  unreachable
}

; 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) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088)) #1 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 uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceIlilllNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_RKT4_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i64 noundef, ptr noundef nonnull align 4 dereferenceable(4), i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN14HtnTermFactory11outOfMemoryEb(ptr noundef nonnull align 8 dereferenceable(33088), i1 noundef zeroext) #1 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN11ResolveNode21IsLastGoalInResolventEv(ptr noundef nonnull align 8 dereferenceable(144)) #1 align 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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11ResolveNode11currentRuleEv(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.143") align 8, ptr noundef nonnull align 8 dereferenceable(144)) #2 align 2

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

declare void @_ZNK7HtnRule8ToStringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(40)) #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnRule4tailEv(ptr noundef nonnull align 8 dereferenceable(40)) #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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !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 = !{!10, !6, i64 168}
!30 = !{!10, !12, i64 160}
!31 = !{!12, !12, i64 0}
!32 = !{!10, !12, i64 164}
!33 = !{!22, !22, i64 0}
!34 = !{!35, !36, i64 0}
!35 = !{!"_ZTS11ResolveNode", !36, i64 0, !16, i64 8, !12, i64 32, !12, i64 36, !37, i64 40, !39, i64 56, !22, i64 72, !11, i64 80, !11, i64 81, !27, i64 88, !41, i64 104, !11, i64 120, !11, i64 121, !23, i64 128}
!36 = !{!"_ZTS20ResolveContinuePoint", !7, i64 0}
!37 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEE", !38, i64 0}
!38 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!39 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEE", !40, i64 0}
!40 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!41 = !{!"_ZTSSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEE", !42, i64 0}
!42 = !{!"_ZTSSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!43 = !{!11, !11, i64 0}
!44 = distinct !{!44, !45}
!45 = !{!"llvm.loop.mustprogress"}
!46 = !{i8 0, i8 2}
!47 = !{}
!48 = !{!10, !11, i64 96}
!49 = !{!10, !11, i64 0}
!50 = !{!10, !22, i64 104}
!51 = distinct !{!51, !45}


; 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::__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::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.6" = type { %"class.std::__shared_ptr.7" }
%"class.std::__shared_ptr.7" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator" = 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.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::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair.143" = type { %"class.std::shared_ptr.140", %"class.std::vector.20" }
%"class.std::shared_ptr.140" = type { %"class.std::__shared_ptr.141" }
%"class.std::__shared_ptr.141" = type { ptr, %"class.std::__shared_count" }

@.str.2 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.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.58 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [133 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [12 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 uwtable
declare dso_local void @_ZN11ResolveNode14AddToSolutionsERSt10shared_ptrISt6vectorIS1_ISt4pairIS0_I7HtnTermES4_ESaIS5_EESaIS7_EEE(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

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

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

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

; 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 #2 align 2

declare void @_Z39failfastThis_uncaught_exception_handlerPvbPKcl(ptr noundef, i1 noundef zeroext, ptr noundef, i64 noundef) local_unnamed_addr #5

; 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 @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(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 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 @_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 #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 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: mustprogress uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2 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 #2 align 2

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

; 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 #2 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 #2 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 #2 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 #5

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE4findERSJ_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN15HtnGoalResolver21FindAllRulesThatUnifyEP14HtnTermFactoryP10HtnRuleSetSt10shared_ptrI7HtnTermEPiiibPl(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.6") align 8, ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__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 void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #4 align 2

; 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 nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEESL_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(8)) 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 #5

; 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
define dso_local void @_ZN15HtnGoalResolver11ResolveNextEP12ResolveState(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.0") align 8 %0, ptr noundef nonnull align 8 dereferenceable(64) %1, ptr noundef %2) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca i64, align 8
  %5 = alloca i64, align 8
  %6 = alloca %"class.std::shared_ptr.25", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca i64, align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::shared_ptr.28", align 8
  %20 = alloca %"class.std::shared_ptr.28", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::shared_ptr.28", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::shared_ptr.25", align 8
  %32 = alloca %"class.std::vector", align 8
  %33 = alloca %"class.std::vector.20", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::shared_ptr.25", align 8
  %43 = alloca %"class.std::vector", align 8
  %44 = alloca %"class.std::vector.20", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator", align 1
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__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::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %70 = alloca i64, align 8
  %71 = alloca %"class.std::shared_ptr.6", align 8
  %72 = alloca %"class.std::shared_ptr.28", align 8
  %73 = alloca i64, align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", align 1
  %79 = alloca i64, align 8
  %80 = alloca %"class.std::shared_ptr.28", align 8
  %81 = alloca %"class.std::shared_ptr.25", align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::__cxx11::basic_string", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca %"struct.std::pair.143", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::allocator", align 1
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::__cxx11::basic_string", align 8
  %98 = alloca %"class.std::allocator", align 1
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::shared_ptr.25", align 8
  %101 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %102 = alloca %"class.std::__cxx11::basic_string", align 8
  %103 = alloca %"class.std::shared_ptr.28", align 8
  %104 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %105 = getelementptr inbounds i8, ptr %2, i64 224
  %106 = load ptr, ptr %105, align 8, !tbaa !5
  %107 = getelementptr inbounds i8, ptr %2, i64 168
  %108 = load ptr, ptr %107, align 8, !tbaa !28
  %109 = getelementptr inbounds i8, ptr %2, i64 160
  %110 = load i32, ptr %109, align 8, !tbaa !29
  %111 = getelementptr inbounds i8, ptr %2, i64 164
  %112 = load i32, ptr %111, align 4, !tbaa !30
  %113 = getelementptr inbounds i8, ptr %2, i64 240
  %114 = getelementptr inbounds i8, ptr %2, i64 200
  %115 = getelementptr inbounds i8, ptr %2, i64 176
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #7
  %116 = tail call noundef i64 @_ZN14HtnTermFactory11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %106)
  store i64 %116, ptr %4, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #7
  %117 = tail call noundef i64 @_ZN10HtnRuleSet11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(144) %108)
  store i64 %117, ptr %5, align 8, !tbaa !31
  %118 = tail call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  %119 = tail call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %118) #7
  %.not485 = icmp eq i64 %119, 0
  br i1 %.not485, label %._crit_edge, label %.lr.ph486

.lr.ph486:                                        ; preds = %3
  %120 = getelementptr inbounds i8, ptr %1, i64 16
  %121 = getelementptr inbounds i8, ptr %2, i64 96
  %122 = getelementptr inbounds i8, ptr %87, i64 16
  %123 = getelementptr inbounds i8, ptr %2, i64 144
  %124 = getelementptr inbounds i8, ptr %2, i64 104
  %125 = getelementptr inbounds i8, ptr %2, i64 112
  br label %126

126:                                              ; preds = %.lr.ph486, %.backedge
  %127 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  %128 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %127) #7
  %129 = trunc i64 %128 to i32
  %130 = add i32 %110, %129
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #7
  %131 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  %132 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %131) #7
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %132) #7
  %133 = invoke noundef i64 @_ZN12ResolveState17RecordMemoryUsageERlS0_(ptr noundef nonnull align 8 dereferenceable(244) %2, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %134 unwind label %159

134:                                              ; preds = %126
  %135 = load i32, ptr %111, align 4, !tbaa !30
  %136 = sext i32 %135 to i64
  %137 = icmp sgt i64 %133, %136
  br i1 %137, label %138, label %178

138:                                              ; preds = %134
  %139 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %140 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %139)
  %141 = and i64 %140, 8388608
  %.not294 = icmp eq i64 %141, 0
  br i1 %.not294, label %175, label %142

142:                                              ; preds = %138
  %143 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %144 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %143)
  %145 = icmp sgt i32 %144, -1
  br i1 %145, label %146, label %175

146:                                              ; preds = %142
  %147 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  %148 = mul nsw i32 %130, 11
  %149 = sext i32 %148 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, i64 noundef %149, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %150 unwind label %161

150:                                              ; preds = %146
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %151 unwind label %163

151:                                              ; preds = %150
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.58)
          to label %152 unwind label %165

152:                                              ; preds = %151
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.59)
          to label %153 unwind label %167

153:                                              ; preds = %152
  %154 = call noundef i64 @_ZN14HtnTermFactory11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %106)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %155 = call noundef i64 @_ZN10HtnRuleSet11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(144) %108)
  store i64 %155, ptr %12, align 8, !tbaa !31
  %156 = getelementptr inbounds i8, ptr %2, i64 216
  %157 = invoke noundef double @_ZN9NanoTrace5TraceIlilllNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_RKT4_(ptr noundef nonnull align 8 dereferenceable(12) %147, ptr noundef nonnull align 8 dereferenceable(32) %7, i32 noundef 8388608, i32 noundef 0, i64 noundef %133, ptr noundef nonnull align 4 dereferenceable(4) %111, i64 noundef %154, ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %156, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %158 unwind label %169

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

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

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

163:                                              ; preds = %150
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %173

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

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

169:                                              ; preds = %153
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  br label %171

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

172:                                              ; preds = %171, %165
  %.pn295.pn = phi { ptr, i32 } [ %.pn295, %171 ], [ %166, %165 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %173

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

174:                                              ; preds = %173, %161
  %.pn295.pn.pn.pn = phi { ptr, i32 } [ %.pn295.pn.pn, %173 ], [ %162, %161 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %821

175:                                              ; preds = %158, %142, %138
  %176 = load ptr, ptr %105, align 8, !tbaa !5
  call void @_ZN14HtnTermFactory11outOfMemoryEb(ptr noundef nonnull align 8 dereferenceable(33088) %176, i1 noundef zeroext true)
  %177 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  store i32 8, ptr %177, align 8, !tbaa !32
  br label %.thread308

178:                                              ; preds = %134
  %179 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %180 = load i32, ptr %179, align 8, !tbaa !32
  switch i32 %180, label %.thread [
    i32 8, label %181
    i32 5, label %213
    i32 6, label %258
    i32 9, label %688
    i32 7, label %690
    i32 0, label %797
    i32 1, label %797
    i32 2, label %797
    i32 3, label %797
    i32 4, label %797
  ]

181:                                              ; preds = %178
  %182 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %183 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %182)
  %184 = and i64 %183, 8388608
  %.not288 = icmp eq i64 %184, 0
  br i1 %.not288, label %.thread308, label %185

185:                                              ; preds = %181
  %186 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %187 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %186)
  %188 = icmp sgt i32 %187, -1
  br i1 %188, label %189, label %.thread308

189:                                              ; preds = %185
  %190 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  %191 = mul nsw i32 %130, 11
  %192 = sext i32 %191 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, i64 noundef %192, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %193 unwind label %199

193:                                              ; preds = %189
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %194 unwind label %201

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

195:                                              ; preds = %194
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.61)
          to label %196 unwind label %205

196:                                              ; preds = %195
  %197 = invoke noundef double @_ZN9NanoTrace5TraceERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetail(ptr noundef nonnull align 8 dereferenceable(12) %190, ptr noundef nonnull align 8 dereferenceable(32) %13, i32 noundef 8388608, i32 noundef 0)
          to label %198 unwind label %207

198:                                              ; preds = %196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %.thread308

199:                                              ; preds = %189
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %212

201:                                              ; preds = %193
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %211

203:                                              ; preds = %194
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %210

205:                                              ; preds = %195
  %206 = landingpad { ptr, i32 }
          cleanup
  br label %209

207:                                              ; preds = %196
  %208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  br label %209

209:                                              ; preds = %207, %205
  %.pn289 = phi { ptr, i32 } [ %208, %207 ], [ %206, %205 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %210

210:                                              ; preds = %209, %203
  %.pn289.pn = phi { ptr, i32 } [ %.pn289, %209 ], [ %204, %203 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %211

211:                                              ; preds = %210, %201
  %.pn289.pn.pn = phi { ptr, i32 } [ %.pn289.pn, %210 ], [ %202, %201 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %212

212:                                              ; preds = %211, %199
  %.pn289.pn.pn.pn = phi { ptr, i32 } [ %.pn289.pn.pn, %211 ], [ %200, %199 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #7
  br label %821

213:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #7
  %214 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %19, ptr noundef nonnull align 8 dereferenceable(144) %214)
  %215 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  %216 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %215)
  %217 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %216, i64 noundef 0) #7
  %218 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %217) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(72) %218)
          to label %219 unwind label %239

219:                                              ; preds = %213
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #7
  %220 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  %221 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %220) #7
  %.not281483.not = icmp eq i64 %221, 0
  br i1 %.not281483.not, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %219, %.critedge302.thread
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #7
  %222 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  %223 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %222) #7
  %224 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %223) #7
  call void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %20, ptr noundef nonnull align 8 dereferenceable(144) %224)
  %225 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %225) #7
  %226 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr null) #7
  br i1 %226, label %227, label %.critedge302.thread

227:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #7
  %228 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(72) %228)
          to label %229 unwind label %241

229:                                              ; preds = %227
  %230 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.3)
  br i1 %230, label %231, label %.critedge302.thread305

.critedge302.thread305:                           ; preds = %229
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br label %.critedge302.thread

231:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  %232 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  %233 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %232)
  %234 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %233, i64 noundef 0) #7
  %235 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %234) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(72) %235)
          to label %.critedge302 unwind label %243

.critedge302:                                     ; preds = %231
  %236 = call noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  br i1 %236, label %.thread306, label %.critedge302.thread

.thread306:                                       ; preds = %.critedge302
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #7
  br label %.loopexit

.critedge302.thread:                              ; preds = %.lr.ph, %.critedge302.thread305, %.critedge302
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #7
  %237 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  %238 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #7
  %.not281.not = icmp eq i64 %238, 0
  br i1 %.not281.not, label %.loopexit, label %.lr.ph

239:                                              ; preds = %213
  %240 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #7
  br label %257

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

243:                                              ; preds = %231
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  br label %245

245:                                              ; preds = %241, %243
  %.pn282 = phi { ptr, i32 } [ %244, %243 ], [ %242, %241 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #7
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #7
  br label %256

.loopexit:                                        ; preds = %.critedge302.thread, %219, %.thread306
  %.not281314 = phi i1 [ true, %.thread306 ], [ false, %219 ], [ false, %.critedge302.thread ]
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcl(ptr noundef nonnull %1, i1 noundef zeroext %.not281314, ptr noundef nonnull @.str.4, i64 noundef 875)
          to label %246 unwind label %253

246:                                              ; preds = %.loopexit
  %247 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  %248 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %247) #7
  %.not287 = icmp eq i64 %248, 0
  br i1 %.not287, label %255, label %249

249:                                              ; preds = %246
  %250 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  %251 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %250) #7
  %252 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %251) #7
  call void @_ZN11ResolveNode6SetCutEv(ptr noundef nonnull align 8 dereferenceable(144) %252)
  br label %255

253:                                              ; preds = %.loopexit
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %256

255:                                              ; preds = %249, %246
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %.thread

256:                                              ; preds = %253, %245
  %.pn284 = phi { ptr, i32 } [ %254, %253 ], [ %.pn282, %245 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %257

257:                                              ; preds = %256, %239
  %.pn284.pn = phi { ptr, i32 } [ %.pn284, %256 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %821

258:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #7
  %259 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %23, ptr noundef nonnull align 8 dereferenceable(144) %259)
  %260 = call noundef zeroext i1 @_ZSteqI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr null) #7
  br i1 %260, label %261, label %316

261:                                              ; preds = %258
  %262 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %263 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %262)
  %264 = and i64 %263, 8388608
  %.not271 = icmp eq i64 %264, 0
  br i1 %.not271, label %305, label %265

265:                                              ; preds = %261
  %266 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %267 = trunc nuw i8 %266 to i1
  %268 = select i1 %267, i32 0, i32 2
  %269 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %270 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %269)
  %.not272 = icmp sgt i32 %268, %270
  br i1 %.not272, label %305, label %271

271:                                              ; preds = %265
  %272 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #7
  %273 = mul nsw i32 %130, 11
  %274 = sext i32 %273 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, i64 noundef %274, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %275 unwind label %288

275:                                              ; preds = %271
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %276 unwind label %290

276:                                              ; preds = %275
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.62)
          to label %277 unwind label %292

277:                                              ; preds = %276
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.63)
          to label %278 unwind label %294

278:                                              ; preds = %277
  %279 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %280 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %281 = getelementptr inbounds i8, ptr %280, i64 56
  %282 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %281) #7
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(24) %282, i1 noundef zeroext false)
          to label %283 unwind label %296

283:                                              ; preds = %278
  %284 = trunc nuw i8 %279 to i1
  %285 = select i1 %284, i32 0, i32 2
  %286 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %272, ptr noundef nonnull align 8 dereferenceable(32) %24, i32 noundef 8388608, i32 noundef %285, ptr noundef nonnull %29)
          to label %287 unwind label %298

287:                                              ; preds = %283
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %305

.loopexit664:                                     ; preds = %305, %320
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %687

.loopexit.split-lp:                               ; preds = %311
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %687

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

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

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

294:                                              ; preds = %277
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %301

296:                                              ; preds = %278
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %300

298:                                              ; preds = %283
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #7
  br label %300

300:                                              ; preds = %298, %296
  %.pn273 = phi { ptr, i32 } [ %299, %298 ], [ %297, %296 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %301

301:                                              ; preds = %300, %294
  %.pn273.pn = phi { ptr, i32 } [ %.pn273, %300 ], [ %295, %294 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %302

302:                                              ; preds = %301, %292
  %.pn273.pn.pn = phi { ptr, i32 } [ %.pn273.pn, %301 ], [ %293, %292 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  br label %303

303:                                              ; preds = %302, %290
  %.pn273.pn.pn.pn = phi { ptr, i32 } [ %.pn273.pn.pn, %302 ], [ %291, %290 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %304

304:                                              ; preds = %303, %288
  %.pn273.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn273.pn.pn.pn, %303 ], [ %289, %288 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %687

305:                                              ; preds = %287, %265, %261
  %306 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  invoke void @_ZN11ResolveNode14AddToSolutionsERSt10shared_ptrISt6vectorIS1_ISt4pairIS0_I7HtnTermES4_ESaIS5_EESaIS7_EEE(ptr noundef nonnull align 8 dereferenceable(144) %306, ptr noundef nonnull align 8 dereferenceable(16) %114)
          to label %307 unwind label %.loopexit664

307:                                              ; preds = %305
  %308 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %308) #7
  %309 = load i8, ptr %2, align 8, !tbaa !44, !range !42, !noundef !43
  %310 = trunc nuw i8 %309 to i1
  br i1 %310, label %.thread662, label %311, !llvm.loop !45

311:                                              ; preds = %307
  %312 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %313 = getelementptr inbounds i8, ptr %312, i64 56
  %314 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %313) #7
  %315 = 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) %123) #7
  invoke void @_ZN12ResolveState16SimplifySolutionERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EERS0_IS4_SaIS4_EE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.0") align 8 %0, ptr noundef nonnull align 8 dereferenceable(244) %2, ptr noundef nonnull align 8 dereferenceable(24) %314, ptr noundef nonnull align 8 dereferenceable(24) %315)
          to label %.loopexit310.loopexit unwind label %.loopexit.split-lp

316:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  %317 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(72) %317)
          to label %318 unwind label %359

318:                                              ; preds = %316
  %319 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.3)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br i1 %319, label %320, label %386

320:                                              ; preds = %318
  %321 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %322 = call noundef zeroext i1 @_ZN11ResolveNode21IsLastGoalInResolventEv(ptr noundef nonnull align 8 dereferenceable(144) %321)
  %323 = xor i1 %322, true
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcl(ptr noundef nonnull %1, i1 noundef zeroext %323, ptr noundef nonnull @.str.4, i64 noundef 904)
          to label %324 unwind label %.loopexit664

324:                                              ; preds = %320
  %325 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #7
  %326 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %327 = 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) %123) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %32, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %33, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  invoke void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.25") align 8 %31, ptr noundef nonnull align 8 dereferenceable(144) %326, ptr noundef nonnull %106, ptr noundef nonnull align 8 dereferenceable(24) %327, ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 8 dereferenceable(24) %33, ptr noundef nonnull %113)
          to label %328 unwind label %361

328:                                              ; preds = %324
  invoke void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %325, ptr noundef nonnull align 8 dereferenceable(16) %31)
          to label %329 unwind label %363

329:                                              ; preds = %328
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #7
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #7
  %330 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  store i32 9, ptr %330, align 8, !tbaa !32
  %331 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %332 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %331)
  %333 = and i64 %332, 8388608
  %.not262 = icmp eq i64 %333, 0
  br i1 %.not262, label %.thread662, label %334, !llvm.loop !45

334:                                              ; preds = %329
  %335 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %336 = trunc nuw i8 %335 to i1
  %337 = select i1 %336, i32 0, i32 2
  %338 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %339 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %338)
  %.not263 = icmp sgt i32 %337, %339
  br i1 %.not263, label %.thread662, label %340, !llvm.loop !45

340:                                              ; preds = %334
  %341 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #7
  %342 = mul nsw i32 %130, 11
  %343 = sext i32 %342 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, i64 noundef %343, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %344 unwind label %366

344:                                              ; preds = %340
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %345 unwind label %368

345:                                              ; preds = %344
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.64)
          to label %346 unwind label %370

346:                                              ; preds = %345
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.65)
          to label %347 unwind label %372

347:                                              ; preds = %346
  %348 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %349 = trunc nuw i8 %348 to i1
  %350 = select i1 %349, i32 0, i32 2
  %351 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(72) %351, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %352 unwind label %374

352:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #7
  %353 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %354 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %353)
  %355 = 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) %354) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(24) %355, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %356 unwind label %376

356:                                              ; preds = %352
  %357 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %341, ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef 8388608, i32 noundef %350, ptr noundef nonnull %39, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %358 unwind label %378

358:                                              ; preds = %356
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  br label %.thread662, !llvm.loop !45

359:                                              ; preds = %316
  %360 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %687

361:                                              ; preds = %324
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %365

363:                                              ; preds = %328
  %364 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  br label %365

365:                                              ; preds = %363, %361
  %.pn260 = phi { ptr, i32 } [ %364, %363 ], [ %362, %361 ]
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %33) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #7
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #7
  br label %687

366:                                              ; preds = %340
  %367 = landingpad { ptr, i32 }
          cleanup
  br label %385

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

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

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

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

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

378:                                              ; preds = %356
  %379 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %380

380:                                              ; preds = %378, %376
  %.pn264 = phi { ptr, i32 } [ %379, %378 ], [ %377, %376 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %381

381:                                              ; preds = %380, %374
  %.pn264.pn = phi { ptr, i32 } [ %.pn264, %380 ], [ %375, %374 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %382

382:                                              ; preds = %381, %372
  %.pn264.pn.pn = phi { ptr, i32 } [ %.pn264.pn, %381 ], [ %373, %372 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %383

383:                                              ; preds = %382, %370
  %.pn264.pn.pn.pn = phi { ptr, i32 } [ %.pn264.pn.pn, %382 ], [ %371, %370 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %384

384:                                              ; preds = %383, %368
  %.pn264.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn264.pn.pn.pn, %383 ], [ %369, %368 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  br label %385

385:                                              ; preds = %384, %366
  %.pn264.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn264.pn.pn.pn.pn, %384 ], [ %367, %366 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  br label %687

386:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #7
  %387 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(72) %387)
          to label %388 unwind label %425

388:                                              ; preds = %386
  %389 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.2)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  br i1 %389, label %390, label %452

390:                                              ; preds = %388
  %391 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  store i32 5, ptr %391, align 8, !tbaa !32
  %392 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #7
  %393 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %394 = 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) %123) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %43) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %43, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %44) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %44, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  invoke void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.25") align 8 %42, ptr noundef nonnull align 8 dereferenceable(144) %393, ptr noundef nonnull %106, ptr noundef nonnull align 8 dereferenceable(24) %394, ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull %113)
          to label %395 unwind label %427

395:                                              ; preds = %390
  invoke void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %392, ptr noundef nonnull align 8 dereferenceable(16) %42)
          to label %396 unwind label %429

396:                                              ; preds = %395
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #7
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #7
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #7
  %397 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %398 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %397)
  %399 = and i64 %398, 8388608
  %.not251 = icmp eq i64 %399, 0
  br i1 %.not251, label %.thread662, label %400, !llvm.loop !45

400:                                              ; preds = %396
  %401 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %402 = trunc nuw i8 %401 to i1
  %403 = select i1 %402, i32 0, i32 2
  %404 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %405 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %404)
  %.not252 = icmp sgt i32 %403, %405
  br i1 %.not252, label %.thread662, label %406, !llvm.loop !45

406:                                              ; preds = %400
  %407 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %48) #7
  %408 = mul nsw i32 %130, 11
  %409 = sext i32 %408 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef %409, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %410 unwind label %432

410:                                              ; preds = %406
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %411 unwind label %434

411:                                              ; preds = %410
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull @.str.66)
          to label %412 unwind label %436

412:                                              ; preds = %411
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef nonnull @.str.65)
          to label %413 unwind label %438

413:                                              ; preds = %412
  %414 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %415 = trunc nuw i8 %414 to i1
  %416 = select i1 %415, i32 0, i32 2
  %417 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(72) %417, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %418 unwind label %440

418:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #7
  %419 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %420 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %419)
  %421 = 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) %420) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(24) %421, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %422 unwind label %442

422:                                              ; preds = %418
  %423 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %407, ptr noundef nonnull align 8 dereferenceable(32) %45, i32 noundef 8388608, i32 noundef %416, ptr noundef nonnull %50, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %424 unwind label %444

424:                                              ; preds = %422
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  br label %.thread662, !llvm.loop !45

425:                                              ; preds = %386
  %426 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #7
  br label %687

427:                                              ; preds = %390
  %428 = landingpad { ptr, i32 }
          cleanup
  br label %431

429:                                              ; preds = %395
  %430 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #7
  br label %431

431:                                              ; preds = %429, %427
  %.pn249 = phi { ptr, i32 } [ %430, %429 ], [ %428, %427 ]
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #7
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #7
  br label %687

432:                                              ; preds = %406
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %451

434:                                              ; preds = %410
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %450

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

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

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

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

444:                                              ; preds = %422
  %445 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %446

446:                                              ; preds = %444, %442
  %.pn253 = phi { ptr, i32 } [ %445, %444 ], [ %443, %442 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %447

447:                                              ; preds = %446, %440
  %.pn253.pn = phi { ptr, i32 } [ %.pn253, %446 ], [ %441, %440 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #7
  br label %448

448:                                              ; preds = %447, %438
  %.pn253.pn.pn = phi { ptr, i32 } [ %.pn253.pn, %447 ], [ %439, %438 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  br label %449

449:                                              ; preds = %448, %436
  %.pn253.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn, %448 ], [ %437, %436 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #7
  br label %450

450:                                              ; preds = %449, %434
  %.pn253.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn, %449 ], [ %435, %434 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #7
  br label %451

451:                                              ; preds = %450, %432
  %.pn253.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn253.pn.pn.pn.pn, %450 ], [ %433, %432 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %48) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #7
  br label %687

452:                                              ; preds = %388
  %453 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %454 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %453)
  %455 = and i64 %454, 8388608
  %.not211 = icmp eq i64 %455, 0
  br i1 %.not211, label %501, label %456

456:                                              ; preds = %452
  %457 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %458 = trunc nuw i8 %457 to i1
  %459 = select i1 %458, i32 0, i32 2
  %460 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %461 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %460)
  %.not212 = icmp sgt i32 %459, %461
  br i1 %.not212, label %501, label %462

462:                                              ; preds = %456
  %463 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #7
  %464 = mul nsw i32 %130, 11
  %465 = sext i32 %464 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, i64 noundef %465, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %466 unwind label %481

466:                                              ; preds = %462
  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 %467 unwind label %483

467:                                              ; preds = %466
  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.67)
          to label %468 unwind label %485

468:                                              ; preds = %467
  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.65)
          to label %469 unwind label %487

469:                                              ; preds = %468
  %470 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %471 = trunc nuw i8 %470 to i1
  %472 = select i1 %471, i32 0, i32 2
  %473 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(72) %473, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %474 unwind label %489

474:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #7
  %475 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %476 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %475)
  %477 = 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) %476) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(24) %477, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %478 unwind label %491

478:                                              ; preds = %474
  %479 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEdRKS6_i11TraceDetailT_RKT0_(ptr noundef nonnull align 8 dereferenceable(12) %463, ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 8388608, i32 noundef %472, ptr noundef nonnull %57, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %480 unwind label %493

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

481:                                              ; preds = %462
  %482 = landingpad { ptr, i32 }
          cleanup
  br label %500

483:                                              ; preds = %466
  %484 = landingpad { ptr, i32 }
          cleanup
  br label %499

485:                                              ; preds = %467
  %486 = landingpad { ptr, i32 }
          cleanup
  br label %498

487:                                              ; preds = %468
  %488 = landingpad { ptr, i32 }
          cleanup
  br label %497

489:                                              ; preds = %469
  %490 = landingpad { ptr, i32 }
          cleanup
  br label %496

491:                                              ; preds = %474
  %492 = landingpad { ptr, i32 }
          cleanup
  br label %495

493:                                              ; preds = %478
  %494 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #7
  br label %495

495:                                              ; preds = %493, %491
  %.pn213 = phi { ptr, i32 } [ %494, %493 ], [ %492, %491 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %496

496:                                              ; preds = %495, %489
  %.pn213.pn = phi { ptr, i32 } [ %.pn213, %495 ], [ %490, %489 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %497

497:                                              ; preds = %496, %487
  %.pn213.pn.pn = phi { ptr, i32 } [ %.pn213.pn, %496 ], [ %488, %487 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %498

498:                                              ; preds = %497, %485
  %.pn213.pn.pn.pn = phi { ptr, i32 } [ %.pn213.pn.pn, %497 ], [ %486, %485 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #7
  br label %499

499:                                              ; preds = %498, %483
  %.pn213.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn213.pn.pn.pn, %498 ], [ %484, %483 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %500

500:                                              ; preds = %499, %481
  %.pn213.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn213.pn.pn.pn.pn, %499 ], [ %482, %481 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #7
  br label %687

501:                                              ; preds = %480, %456, %452
  %502 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  %503 = call noundef zeroext i1 @_ZNK7HtnTerm10isVariableEv(ptr noundef nonnull align 8 dereferenceable(72) %502)
  br i1 %503, label %504, label %561

504:                                              ; preds = %501
  %505 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %506 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %505)
  %507 = and i64 %506, 8388608
  %.not238 = icmp eq i64 %507, 0
  br i1 %.not238, label %546, label %508

508:                                              ; preds = %504
  %509 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %510 = trunc nuw i8 %509 to i1
  %511 = select i1 %510, i32 0, i32 2
  %512 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %513 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %512)
  %.not239 = icmp sgt i32 %511, %513
  br i1 %.not239, label %546, label %514

514:                                              ; preds = %508
  %515 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #7
  %516 = mul nsw i32 %130, 11
  %517 = sext i32 %516 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, i64 noundef %517, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %518 unwind label %529

518:                                              ; preds = %514
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %519 unwind label %531

519:                                              ; preds = %518
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef nonnull @.str.68)
          to label %520 unwind label %533

520:                                              ; preds = %519
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull @.str.69)
          to label %521 unwind label %535

521:                                              ; preds = %520
  %522 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %523 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(72) %523, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %524 unwind label %537

524:                                              ; preds = %521
  %525 = trunc nuw i8 %522 to i1
  %526 = select i1 %525, i32 0, i32 2
  %527 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %515, ptr noundef nonnull align 8 dereferenceable(32) %59, i32 noundef 8388608, i32 noundef %526, ptr noundef nonnull %64)
          to label %528 unwind label %539

528:                                              ; preds = %524
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  br label %546

529:                                              ; preds = %514
  %530 = landingpad { ptr, i32 }
          cleanup
  br label %545

531:                                              ; preds = %518
  %532 = landingpad { ptr, i32 }
          cleanup
  br label %544

533:                                              ; preds = %519
  %534 = landingpad { ptr, i32 }
          cleanup
  br label %543

535:                                              ; preds = %520
  %536 = landingpad { ptr, i32 }
          cleanup
  br label %542

537:                                              ; preds = %521
  %538 = landingpad { ptr, i32 }
          cleanup
  br label %541

539:                                              ; preds = %524
  %540 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %541

541:                                              ; preds = %539, %537
  %.pn240 = phi { ptr, i32 } [ %540, %539 ], [ %538, %537 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #7
  br label %542

542:                                              ; preds = %541, %535
  %.pn240.pn = phi { ptr, i32 } [ %.pn240, %541 ], [ %536, %535 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #7
  br label %543

543:                                              ; preds = %542, %533
  %.pn240.pn.pn = phi { ptr, i32 } [ %.pn240.pn, %542 ], [ %534, %533 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #7
  br label %544

544:                                              ; preds = %543, %531
  %.pn240.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn, %543 ], [ %532, %531 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %545

545:                                              ; preds = %544, %529
  %.pn240.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn240.pn.pn.pn, %544 ], [ %530, %529 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #7
  br label %687

546:                                              ; preds = %528, %508, %504
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %65) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #7
  %547 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(72) %547, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %548 unwind label %553

548:                                              ; preds = %546
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull @.str.70, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %549 unwind label %555

549:                                              ; preds = %548
  %550 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcS0_l(i1 noundef zeroext false, ptr noundef %550, ptr noundef nonnull @.str.4, i64 noundef 939)
          to label %551 unwind label %557

551:                                              ; preds = %549
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  %552 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  store i32 8, ptr %552, align 8, !tbaa !32
  call void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #7
  br label %.loopexit310.loopexit

553:                                              ; preds = %546
  %554 = landingpad { ptr, i32 }
          cleanup
  br label %560

555:                                              ; preds = %548
  %556 = landingpad { ptr, i32 }
          cleanup
  br label %559

557:                                              ; preds = %549
  %558 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %559

559:                                              ; preds = %557, %555
  %.pn246 = phi { ptr, i32 } [ %558, %557 ], [ %556, %555 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %560

560:                                              ; preds = %559, %553
  %.pn246.pn = phi { ptr, i32 } [ %.pn246, %559 ], [ %554, %553 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %65) #7
  br label %687

561:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %67) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #7
  %562 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(72) %562)
          to label %563 unwind label %572

563:                                              ; preds = %561
  %564 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE4findERSJ_(ptr noundef nonnull align 8 dereferenceable(48) %120, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %565 unwind label %574

565:                                              ; preds = %563
  store ptr %564, ptr %67, align 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #7
  %566 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %120) #7
  store ptr %566, ptr %69, align 8
  %567 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEESL_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #7
  br i1 %567, label %568, label %579

568:                                              ; preds = %565
  %569 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  store i32 0, ptr %569, align 8, !tbaa !32
  %570 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #7
  %571 = getelementptr inbounds i8, ptr %570, i64 56
  invoke void @_ZNKSt8functionIFvP12ResolveStateEEclES1_(ptr noundef nonnull align 8 dereferenceable(32) %571, ptr noundef nonnull %2)
          to label %685 unwind label %577

572:                                              ; preds = %561
  %573 = landingpad { ptr, i32 }
          cleanup
  br label %576

574:                                              ; preds = %563
  %575 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %576

576:                                              ; preds = %574, %572
  %.pn220 = phi { ptr, i32 } [ %575, %574 ], [ %573, %572 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #7
  br label %686

577:                                              ; preds = %568
  %578 = landingpad { ptr, i32 }
          cleanup
  br label %686

579:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %70) #7
  store i64 0, ptr %70, align 8, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #7
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %72, ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  %580 = trunc i64 %133 to i32
  %581 = sub i32 %112, %580
  %582 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %583 = trunc nuw i8 %582 to i1
  invoke void @_ZN15HtnGoalResolver21FindAllRulesThatUnifyEP14HtnTermFactoryP10HtnRuleSetSt10shared_ptrI7HtnTermEPiiibPl(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.6") align 8 %71, ptr noundef nonnull %106, ptr noundef nonnull %108, ptr noundef nonnull %72, ptr noundef nonnull %113, i32 noundef %130, i32 noundef %581, i1 noundef zeroext %583, ptr noundef nonnull %70)
          to label %584 unwind label %613

584:                                              ; preds = %579
  %585 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %586 = getelementptr inbounds i8, ptr %585, i64 40
  %587 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEEaSEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %586, ptr noundef nonnull align 8 dereferenceable(16) %71) #7
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %71) #7
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #7
  %588 = load i64, ptr %70, align 8, !tbaa !31
  %589 = add nsw i64 %588, %133
  store i64 %589, ptr %73, align 8, !tbaa !31
  %590 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull align 8 dereferenceable(8) %73)
  %591 = load i64, ptr %590, align 8, !tbaa !31
  store i64 %591, ptr %124, align 8, !tbaa !47
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #7
  %592 = call noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088) %106)
  br i1 %592, label %593, label %631

593:                                              ; preds = %584
  %594 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %595 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %594)
  %596 = and i64 %595, 8388608
  %.not229 = icmp eq i64 %596, 0
  br i1 %.not229, label %629, label %597

597:                                              ; preds = %593
  %598 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %599 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %598)
  %600 = icmp sgt i32 %599, -1
  br i1 %600, label %601, label %629

601:                                              ; preds = %597
  %602 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %75) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %77) #7
  %603 = mul nsw i32 %130, 11
  %604 = sext i32 %603 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %78) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, i64 noundef %604, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %605 unwind label %615

605:                                              ; preds = %601
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %77)
          to label %606 unwind label %617

606:                                              ; preds = %605
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(32) %76, ptr noundef nonnull @.str.58)
          to label %607 unwind label %619

607:                                              ; preds = %606
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull @.str.71)
          to label %608 unwind label %621

608:                                              ; preds = %607
  %609 = call noundef i64 @_ZN14HtnTermFactory11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %106)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #7
  %610 = call noundef i64 @_ZN10HtnRuleSet11dynamicSizeEv(ptr noundef nonnull align 8 dereferenceable(144) %108)
  store i64 %610, ptr %79, align 8, !tbaa !31
  %611 = invoke noundef double @_ZN9NanoTrace5TraceIlillNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_(ptr noundef nonnull align 8 dereferenceable(12) %602, ptr noundef nonnull align 8 dereferenceable(32) %74, i32 noundef 8388608, i32 noundef 0, i64 noundef %133, ptr noundef nonnull align 4 dereferenceable(4) %111, i64 noundef %609, ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(32) %125)
          to label %612 unwind label %623

612:                                              ; preds = %608
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #7
  br label %629

613:                                              ; preds = %579
  %614 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %72) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #7
  br label %684

615:                                              ; preds = %601
  %616 = landingpad { ptr, i32 }
          cleanup
  br label %628

617:                                              ; preds = %605
  %618 = landingpad { ptr, i32 }
          cleanup
  br label %627

619:                                              ; preds = %606
  %620 = landingpad { ptr, i32 }
          cleanup
  br label %626

621:                                              ; preds = %607
  %622 = landingpad { ptr, i32 }
          cleanup
  br label %625

623:                                              ; preds = %608
  %624 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %625

625:                                              ; preds = %623, %621
  %.pn230 = phi { ptr, i32 } [ %624, %623 ], [ %622, %621 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %626

626:                                              ; preds = %625, %619
  %.pn230.pn = phi { ptr, i32 } [ %.pn230, %625 ], [ %620, %619 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #7
  br label %627

627:                                              ; preds = %626, %617
  %.pn230.pn.pn = phi { ptr, i32 } [ %.pn230.pn, %626 ], [ %618, %617 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #7
  br label %628

628:                                              ; preds = %627, %615
  %.pn230.pn.pn.pn = phi { ptr, i32 } [ %.pn230.pn.pn, %627 ], [ %616, %615 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %78) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %77) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #7
  br label %684

629:                                              ; preds = %612, %597, %593
  %630 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  store i32 8, ptr %630, align 8, !tbaa !32
  br label %683

631:                                              ; preds = %584
  %632 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  store i32 7, ptr %632, align 8, !tbaa !32
  %633 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %634 = getelementptr inbounds i8, ptr %633, i64 40
  %635 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %634) #7
  %636 = call noundef i64 @_ZNKSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %635) #7
  %637 = icmp eq i64 %636, 0
  br i1 %637, label %638, label %642

638:                                              ; preds = %631
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 8 dereferenceable(16) %6) #7
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %2, ptr noundef nonnull %80, ptr noundef nonnull %81)
          to label %639 unwind label %640

639:                                              ; preds = %638
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #7
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #7
  br label %642

640:                                              ; preds = %638
  %641 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #7
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #7
  br label %684

642:                                              ; preds = %639, %631
  %643 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %644 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %643)
  %645 = and i64 %644, 8388608
  %.not222 = icmp eq i64 %645, 0
  br i1 %.not222, label %683, label %646

646:                                              ; preds = %642
  %647 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %648 = trunc nuw i8 %647 to i1
  %649 = select i1 %648, i32 0, i32 2
  %650 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %651 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %650)
  %.not223 = icmp sgt i32 %649, %651
  br i1 %.not223, label %683, label %652

652:                                              ; preds = %646
  %653 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %85) #7
  %654 = mul nsw i32 %130, 11
  %655 = sext i32 %654 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %86) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, i64 noundef %655, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %656 unwind label %669

656:                                              ; preds = %652
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %657 unwind label %671

657:                                              ; preds = %656
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %83, ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull @.str.6)
          to label %658 unwind label %673

658:                                              ; preds = %657
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(32) %83, ptr noundef nonnull @.str.72)
          to label %659 unwind label %675

659:                                              ; preds = %658
  %660 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %661 = trunc nuw i8 %660 to i1
  %662 = select i1 %661, i32 0, i32 2
  %663 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %664 = getelementptr inbounds i8, ptr %663, i64 40
  %665 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %664) #7
  %666 = call noundef i64 @_ZNKSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %665) #7
  %667 = invoke noundef double @_ZN9NanoTrace5TraceImEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %653, ptr noundef nonnull align 8 dereferenceable(32) %82, i32 noundef 8388608, i32 noundef %662, i64 noundef %666)
          to label %668 unwind label %677

668:                                              ; preds = %659
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  br label %683

669:                                              ; preds = %652
  %670 = landingpad { ptr, i32 }
          cleanup
  br label %682

671:                                              ; preds = %656
  %672 = landingpad { ptr, i32 }
          cleanup
  br label %681

673:                                              ; preds = %657
  %674 = landingpad { ptr, i32 }
          cleanup
  br label %680

675:                                              ; preds = %658
  %676 = landingpad { ptr, i32 }
          cleanup
  br label %679

677:                                              ; preds = %659
  %678 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #7
  br label %679

679:                                              ; preds = %677, %675
  %.pn224 = phi { ptr, i32 } [ %678, %677 ], [ %676, %675 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %83) #7
  br label %680

680:                                              ; preds = %679, %673
  %.pn224.pn = phi { ptr, i32 } [ %.pn224, %679 ], [ %674, %673 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  br label %681

681:                                              ; preds = %680, %671
  %.pn224.pn.pn = phi { ptr, i32 } [ %.pn224.pn, %680 ], [ %672, %671 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #7
  br label %682

682:                                              ; preds = %681, %669
  %.pn224.pn.pn.pn = phi { ptr, i32 } [ %.pn224.pn.pn, %681 ], [ %670, %669 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %85) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %83) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #7
  br label %684

683:                                              ; preds = %642, %646, %668, %629
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #7
  br label %685

684:                                              ; preds = %682, %640, %628, %613
  %.pn230.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn230.pn.pn.pn, %628 ], [ %.pn224.pn.pn.pn, %682 ], [ %641, %640 ], [ %614, %613 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %70) #7
  br label %686

685:                                              ; preds = %568, %683
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #7
  br label %.thread662, !llvm.loop !45

686:                                              ; preds = %684, %577, %576
  %.pn236 = phi { ptr, i32 } [ %578, %577 ], [ %.pn230.pn.pn.pn.pn, %684 ], [ %.pn220, %576 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %67) #7
  br label %687

687:                                              ; preds = %.loopexit664, %.loopexit.split-lp, %686, %560, %545, %500, %451, %431, %425, %385, %365, %359, %304
  %.pn279 = phi { ptr, i32 } [ %.pn273.pn.pn.pn.pn, %304 ], [ %.pn264.pn.pn.pn.pn.pn, %385 ], [ %.pn260, %365 ], [ %.pn253.pn.pn.pn.pn.pn, %451 ], [ %.pn249, %431 ], [ %.pn246.pn, %560 ], [ %.pn240.pn.pn.pn.pn, %545 ], [ %.pn236, %686 ], [ %.pn213.pn.pn.pn.pn.pn, %500 ], [ %426, %425 ], [ %360, %359 ], [ %lpad.loopexit, %.loopexit664 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #7
  br label %821

688:                                              ; preds = %178
  %689 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %689) #7
  br label %.thread

690:                                              ; preds = %178
  %691 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %692 = call noundef zeroext i1 @_ZN11ResolveNode11SetNextRuleEv(ptr noundef nonnull align 8 dereferenceable(144) %691)
  br i1 %692, label %693, label %795

693:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %87) #7
  %694 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  invoke void @_ZN11ResolveNode11currentRuleEv(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.143") align 8 %87, ptr noundef nonnull align 8 dereferenceable(144) %694)
          to label %695 unwind label %720

695:                                              ; preds = %693
  %696 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %697 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %696)
  %698 = and i64 %697, 8388608
  %.not191 = icmp eq i64 %698, 0
  br i1 %.not191, label %739, label %699

699:                                              ; preds = %695
  %700 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %701 = trunc nuw i8 %700 to i1
  %702 = select i1 %701, i32 0, i32 2
  %703 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %704 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %703)
  %.not192 = icmp sgt i32 %702, %704
  br i1 %.not192, label %739, label %705

705:                                              ; preds = %699
  %706 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %89) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %91) #7
  %707 = mul nsw i32 %130, 11
  %708 = sext i32 %707 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %92) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %91, i64 noundef %708, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %709 unwind label %722

709:                                              ; preds = %705
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %90, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %710 unwind label %724

710:                                              ; preds = %709
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull @.str.6)
          to label %711 unwind label %726

711:                                              ; preds = %710
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(32) %89, ptr noundef nonnull @.str.73)
          to label %712 unwind label %728

712:                                              ; preds = %711
  %713 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %714 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnRuleLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  invoke void @_ZNK7HtnRule8ToStringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(40) %714)
          to label %715 unwind label %730

715:                                              ; preds = %712
  %716 = trunc nuw i8 %713 to i1
  %717 = select i1 %716, i32 0, i32 2
  %718 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %706, ptr noundef nonnull align 8 dereferenceable(32) %88, i32 noundef 8388608, i32 noundef %717, ptr noundef nonnull %93)
          to label %719 unwind label %732

719:                                              ; preds = %715
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #7
  br label %739

720:                                              ; preds = %693
  %721 = landingpad { ptr, i32 }
          cleanup
  br label %794

722:                                              ; preds = %705
  %723 = landingpad { ptr, i32 }
          cleanup
  br label %738

724:                                              ; preds = %709
  %725 = landingpad { ptr, i32 }
          cleanup
  br label %737

726:                                              ; preds = %710
  %727 = landingpad { ptr, i32 }
          cleanup
  br label %736

728:                                              ; preds = %711
  %729 = landingpad { ptr, i32 }
          cleanup
  br label %735

730:                                              ; preds = %712
  %731 = landingpad { ptr, i32 }
          cleanup
  br label %734

732:                                              ; preds = %715
  %733 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %734

734:                                              ; preds = %732, %730
  %.pn193 = phi { ptr, i32 } [ %733, %732 ], [ %731, %730 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  br label %735

735:                                              ; preds = %734, %728
  %.pn193.pn = phi { ptr, i32 } [ %.pn193, %734 ], [ %729, %728 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #7
  br label %736

736:                                              ; preds = %735, %726
  %.pn193.pn.pn = phi { ptr, i32 } [ %.pn193.pn, %735 ], [ %727, %726 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #7
  br label %737

737:                                              ; preds = %736, %724
  %.pn193.pn.pn.pn = phi { ptr, i32 } [ %.pn193.pn.pn, %736 ], [ %725, %724 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  br label %738

738:                                              ; preds = %737, %722
  %.pn193.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn193.pn.pn.pn, %737 ], [ %723, %722 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #7
  br label %793

739:                                              ; preds = %719, %699, %695
  %740 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %741 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %740)
  %742 = and i64 %741, 8388608
  %.not199 = icmp eq i64 %742, 0
  br i1 %.not199, label %780, label %743

743:                                              ; preds = %739
  %744 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  %745 = trunc nuw i8 %744 to i1
  %746 = select i1 %745, i32 0, i32 2
  %747 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %748 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %747)
  %.not200 = icmp sgt i32 %746, %748
  br i1 %.not200, label %780, label %749

749:                                              ; preds = %743
  %750 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %95) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %96) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %97) #7
  %751 = mul nsw i32 %130, 11
  %752 = sext i32 %751 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %98) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %97, i64 noundef %752, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %98)
          to label %753 unwind label %763

753:                                              ; preds = %749
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %754 unwind label %765

754:                                              ; preds = %753
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %95, ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull @.str.6)
          to label %755 unwind label %767

755:                                              ; preds = %754
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull @.str.74)
          to label %756 unwind label %769

756:                                              ; preds = %755
  %757 = load i8, ptr %121, align 8, !tbaa !41, !range !42, !noundef !43
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef nonnull align 8 dereferenceable(24) %122, i1 noundef zeroext false)
          to label %758 unwind label %771

758:                                              ; preds = %756
  %759 = trunc nuw i8 %757 to i1
  %760 = select i1 %759, i32 0, i32 2
  %761 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %750, ptr noundef nonnull align 8 dereferenceable(32) %94, i32 noundef 8388608, i32 noundef %760, ptr noundef nonnull %99)
          to label %762 unwind label %773

762:                                              ; preds = %758
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #7
  br label %780

763:                                              ; preds = %749
  %764 = landingpad { ptr, i32 }
          cleanup
  br label %779

765:                                              ; preds = %753
  %766 = landingpad { ptr, i32 }
          cleanup
  br label %778

767:                                              ; preds = %754
  %768 = landingpad { ptr, i32 }
          cleanup
  br label %777

769:                                              ; preds = %755
  %770 = landingpad { ptr, i32 }
          cleanup
  br label %776

771:                                              ; preds = %756
  %772 = landingpad { ptr, i32 }
          cleanup
  br label %775

773:                                              ; preds = %758
  %774 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  br label %775

775:                                              ; preds = %773, %771
  %.pn201 = phi { ptr, i32 } [ %774, %773 ], [ %772, %771 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #7
  br label %776

776:                                              ; preds = %775, %769
  %.pn201.pn = phi { ptr, i32 } [ %.pn201, %775 ], [ %770, %769 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #7
  br label %777

777:                                              ; preds = %776, %767
  %.pn201.pn.pn = phi { ptr, i32 } [ %.pn201.pn, %776 ], [ %768, %767 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  br label %778

778:                                              ; preds = %777, %765
  %.pn201.pn.pn.pn = phi { ptr, i32 } [ %.pn201.pn.pn, %777 ], [ %766, %765 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %97) #7
  br label %779

779:                                              ; preds = %778, %763
  %.pn201.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn201.pn.pn.pn, %778 ], [ %764, %763 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %98) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %98) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %96) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %95) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #7
  br label %793

780:                                              ; preds = %762, %743, %739
  %781 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %100) #7
  %782 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  %783 = 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) %123) #7
  %784 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnRuleLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  %785 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnRule4tailEv(ptr noundef nonnull align 8 dereferenceable(40) %784)
  invoke void @_ZN11ResolveNode15CreateChildNodeEP14HtnTermFactoryRKSt6vectorISt10shared_ptrI7HtnTermESaIS5_EES9_RKS2_ISt4pairIS5_S5_ESaISB_EEPi(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.25") align 8 %100, ptr noundef nonnull align 8 dereferenceable(144) %782, ptr noundef nonnull %106, ptr noundef nonnull align 8 dereferenceable(24) %783, ptr noundef nonnull align 8 dereferenceable(24) %785, ptr noundef nonnull align 8 dereferenceable(24) %122, ptr noundef nonnull %113)
          to label %786 unwind label %788

786:                                              ; preds = %780
  invoke void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %781, ptr noundef nonnull align 8 dereferenceable(16) %100)
          to label %787 unwind label %790

787:                                              ; preds = %786
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #7
  call void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %87) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %87) #7
  br label %.thread, !llvm.loop !45

788:                                              ; preds = %780
  %789 = landingpad { ptr, i32 }
          cleanup
  br label %792

790:                                              ; preds = %786
  %791 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %100) #7
  br label %792

792:                                              ; preds = %790, %788
  %.pn207 = phi { ptr, i32 } [ %791, %790 ], [ %789, %788 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #7
  br label %793

793:                                              ; preds = %792, %779, %738
  %.pn207.pn = phi { ptr, i32 } [ %.pn207, %792 ], [ %.pn201.pn.pn.pn.pn, %779 ], [ %.pn193.pn.pn.pn.pn, %738 ]
  call void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %87) #7
  br label %794

794:                                              ; preds = %793, %720
  %.pn207.pn.pn = phi { ptr, i32 } [ %.pn207.pn, %793 ], [ %721, %720 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %87) #7
  br label %821

795:                                              ; preds = %690
  %796 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %796) #7
  br label %.thread, !llvm.loop !45

797:                                              ; preds = %178, %178, %178, %178, %178
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %101) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %102) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %103) #7
  %798 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %103, ptr noundef nonnull align 8 dereferenceable(144) %798)
  %799 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %103) #7
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %102, ptr noundef nonnull align 8 dereferenceable(72) %799)
          to label %800 unwind label %809

800:                                              ; preds = %797
  %801 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE4findERSJ_(ptr noundef nonnull align 8 dereferenceable(48) %120, ptr noundef nonnull align 8 dereferenceable(32) %102)
          to label %802 unwind label %811

802:                                              ; preds = %800
  store ptr %801, ptr %101, align 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %104) #7
  %803 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairISt6vectorI17CustomRuleArgTypeSaIS8_EESt8functionIFvP12ResolveStateEEESt4lessIS5_ESaIS6_IKS5_SG_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %120) #7
  store ptr %803, ptr %104, align 8
  %804 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEESL_(ptr noundef nonnull align 8 dereferenceable(8) %101, ptr noundef nonnull align 8 dereferenceable(8) %104) #7
  invoke void @_Z39failfastThis_uncaught_exception_handlerPvbPKcl(ptr noundef nonnull %1, i1 noundef zeroext %804, ptr noundef nonnull @.str.4, i64 noundef 1012)
          to label %805 unwind label %814

805:                                              ; preds = %802
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #7
  %806 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES0_ISt6vectorI17CustomRuleArgTypeSaIS9_EESt8functionIFvP12ResolveStateEEEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %101) #7
  %807 = getelementptr inbounds i8, ptr %806, i64 56
  invoke void @_ZNKSt8functionIFvP12ResolveStateEEclES1_(ptr noundef nonnull align 8 dereferenceable(32) %807, ptr noundef nonnull %2)
          to label %808 unwind label %816

808:                                              ; preds = %805
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #7
  br label %.thread

809:                                              ; preds = %797
  %810 = landingpad { ptr, i32 }
          cleanup
  br label %813

811:                                              ; preds = %800
  %812 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %102) #7
  br label %813

813:                                              ; preds = %811, %809
  %.pn = phi { ptr, i32 } [ %812, %811 ], [ %810, %809 ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %102) #7
  br label %818

814:                                              ; preds = %802
  %815 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %104) #7
  br label %818

816:                                              ; preds = %805
  %817 = landingpad { ptr, i32 }
          cleanup
  br label %818

818:                                              ; preds = %816, %814, %813
  %.pn189 = phi { ptr, i32 } [ %817, %816 ], [ %815, %814 ], [ %.pn, %813 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %101) #7
  br label %821

.thread308:                                       ; preds = %181, %185, %198, %175
  call void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #7
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  br label %.loopexit310

.thread:                                          ; preds = %795, %787, %808, %688, %255, %178
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  br label %.backedge

.thread662:                                       ; preds = %358, %334, %329, %396, %400, %424, %685, %307
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #7
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  br label %.backedge

.backedge:                                        ; preds = %.thread662, %.thread
  %819 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %115) #7
  %820 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %819) #7
  %.not = icmp eq i64 %820, 0
  br i1 %.not, label %._crit_edge, label %126, !llvm.loop !45

821:                                              ; preds = %818, %794, %687, %257, %212, %174, %159
  %.pn295.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn295.pn.pn.pn, %174 ], [ %.pn189, %818 ], [ %.pn207.pn.pn, %794 ], [ %.pn279, %687 ], [ %.pn284.pn, %257 ], [ %.pn289.pn.pn.pn, %212 ], [ %160, %159 ]
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  resume { ptr, i32 } %.pn295.pn.pn.pn.pn

._crit_edge:                                      ; preds = %.backedge, %3
  call void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #7
  br label %.loopexit310

.loopexit310.loopexit:                            ; preds = %311, %551
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #7
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #7
  br label %.loopexit310

.loopexit310:                                     ; preds = %.loopexit310.loopexit, %.thread308, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #7
  ret void
}

; 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 #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088)) local_unnamed_addr #1 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 uwtable
declare dso_local noundef double @_ZN9NanoTrace5TraceIlilllNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_RKT4_(ptr noundef nonnull align 8 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i64 noundef, ptr noundef nonnull align 4 dereferenceable(4), i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN11ResolveNode21IsLastGoalInResolventEv(ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #1 align 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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11ResolveNode11currentRuleEv(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.143") align 8, ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #2 align 2

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

declare void @_ZNK7HtnRule8ToStringB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnRule4tailEv(ptr noundef nonnull align 8 dereferenceable(40)) local_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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !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 = !{!6, !13, i64 168}
!29 = !{!6, !10, i64 160}
!30 = !{!6, !10, i64 164}
!31 = !{!21, !21, i64 0}
!32 = !{!33, !34, i64 0}
!33 = !{!"_ZTS11ResolveNode", !34, i64 0, !15, i64 8, !10, i64 32, !10, i64 36, !35, i64 40, !37, i64 56, !21, i64 72, !7, i64 80, !7, i64 81, !26, i64 88, !39, i64 104, !7, i64 120, !7, i64 121, !22, i64 128}
!34 = !{!"_ZTS20ResolveContinuePoint", !8, i64 0}
!35 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEE", !36, i64 0}
!36 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!37 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEE", !38, i64 0}
!38 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!39 = !{!"_ZTSSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEE", !40, i64 0}
!40 = !{!"_ZTSSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!41 = !{!6, !7, i64 96}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = !{!6, !7, i64 0}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = !{!6, !21, i64 104}


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