; 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::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::shared_ptr.28" = type { %"class.std::__shared_ptr.29" }
%"class.std::__shared_ptr.29" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.25" = type { %"class.std::__shared_ptr.26" }
%"class.std::__shared_ptr.26" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator" = type { i8 }
%"class.std::shared_ptr.12" = type { %"class.std::__shared_ptr.13" }
%"class.std::__shared_ptr.13" = type { ptr, %"class.std::__shared_count" }
%"class.__gnu_cxx::__normal_iterator.68" = type { ptr }
%"class.std::vector.157" = type { %"struct.std::_Vector_base.158" }
%"struct.std::_Vector_base.158" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.162" = type { %"class.std::_Rb_tree.163" }
%"class.std::_Rb_tree.163" = type { %"struct.std::_Rb_tree<std::vector<std::shared_ptr<HtnTerm>>, std::pair<const std::vector<std::shared_ptr<HtnTerm>>, int>, std::_Select1st<std::pair<const std::vector<std::shared_ptr<HtnTerm>>, int>>, HtnTermVectorComparer>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::vector<std::shared_ptr<HtnTerm>>, std::pair<const std::vector<std::shared_ptr<HtnTerm>>, int>, std::_Select1st<std::pair<const std::vector<std::shared_ptr<HtnTerm>>, int>>, HtnTermVectorComparer>::_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 }
%"class.std::map.168" = type { %"class.std::_Rb_tree.169" }
%"class.std::_Rb_tree.169" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, 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>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.__gnu_cxx::__normal_iterator.69" = type { ptr }
%"struct.std::pair" = type { %"class.std::shared_ptr.28", %"class.std::shared_ptr.28" }
%"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 }
%"struct.std::_Rb_tree_iterator.173" = type { ptr }
%"class.std::map.174" = type { %"class.std::_Rb_tree.175" }
%"class.std::_Rb_tree.175" = type { %"struct.std::_Rb_tree<std::shared_ptr<HtnTerm>, std::pair<const std::shared_ptr<HtnTerm>, int>, std::_Select1st<std::pair<const std::shared_ptr<HtnTerm>, int>>, HtnTermComparer>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::shared_ptr<HtnTerm>, std::pair<const std::shared_ptr<HtnTerm>, int>, std::_Select1st<std::pair<const std::shared_ptr<HtnTerm>, int>>, HtnTermComparer>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_iterator.179" = type { ptr }
%"class.std::shared_ptr.140" = type { %"class.std::__shared_ptr.141" }
%"class.std::__shared_ptr.141" = 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.__gnu_cxx::__normal_iterator.180" = type { ptr }
%"struct.std::pair.143" = type { %"class.std::shared_ptr.140", %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = 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" }

@.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.21 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [40 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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11ResolveNode20PopStandaloneResolveEP12ResolveState(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef) #2 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 uwtable
declare dso_local void @_ZN11ResolveNode21PushStandaloneResolveEP12ResolveStateSt10shared_ptrISt3setIS2_I7HtnTermE15HtnTermComparerSaIS5_EEESt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKS5_St6vectorIS5_S7_EEEESI_20ResolveContinuePoint(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #2 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) #7

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

; 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

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

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

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

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

; Function Attrs: mustprogress 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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

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

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) #8

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15HtnGoalResolver12RuleDistinctEP12ResolveState(ptr noundef %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::shared_ptr.25", align 8
  %4 = alloca %"class.std::shared_ptr.28", align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::shared_ptr.12", align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %22 = alloca %"class.std::shared_ptr.28", align 8
  %23 = alloca %"class.std::shared_ptr.12", align 8
  %24 = alloca %"class.std::reverse_iterator", align 8
  %25 = alloca %"class.std::reverse_iterator", align 8
  %26 = alloca %"class.std::reverse_iterator", align 8
  %27 = alloca %"class.std::shared_ptr.28", align 8
  %28 = alloca %"class.std::shared_ptr.25", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::vector.157", align 8
  %31 = alloca %"class.std::map.162", align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"class.std::map.168", align 8
  %34 = alloca i32, align 4
  %35 = alloca ptr, align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %38 = alloca %"struct.std::pair", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %"class.std::vector", align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %47 = alloca %"struct.std::pair", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"struct.std::_Rb_tree_iterator.173", align 8
  %50 = alloca %"struct.std::_Rb_tree_iterator.173", align 8
  %51 = alloca %"class.std::map.174", align 8
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca i8, align 1
  %55 = alloca ptr, align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %57 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %58 = alloca %"struct.std::pair", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::shared_ptr.28", align 8
  %61 = alloca %"struct.std::_Rb_tree_iterator.179", align 8
  %62 = alloca %"struct.std::_Rb_tree_iterator.179", align 8
  %63 = alloca %"class.std::shared_ptr.140", align 8
  %64 = alloca %"class.std::shared_ptr.28", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::allocator", align 1
  %67 = alloca %"class.std::vector", align 8
  %68 = alloca i1, align 1
  %69 = alloca %"class.std::shared_ptr.6", align 8
  %70 = alloca ptr, align 8
  %71 = alloca %"class.__gnu_cxx::__normal_iterator.180", align 8
  %72 = alloca %"class.__gnu_cxx::__normal_iterator.180", align 8
  %73 = alloca i32, align 4
  %74 = alloca %"struct.std::pair.143", align 8
  %75 = alloca %"class.std::shared_ptr.0", align 8
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %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::allocator", align 1
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #9
  %81 = load ptr, ptr %2, align 8, !tbaa !5
  %82 = getelementptr inbounds %class.ResolveState, ptr %81, i32 0, i32 18
  %83 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %82) #9
  %84 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %83) #9
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %84) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %4) #9
  %85 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  invoke void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %4, ptr noundef nonnull align 8 dereferenceable(144) %85)
          to label %86 unwind label %97

86:                                               ; preds = %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  %87 = load ptr, ptr %2, align 8, !tbaa !5
  %88 = getelementptr inbounds %class.ResolveState, ptr %87, i32 0, i32 20
  store ptr %88, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  %89 = load ptr, ptr %2, align 8, !tbaa !5
  %90 = getelementptr inbounds %class.ResolveState, ptr %89, i32 0, i32 18
  store ptr %90, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %91 = load ptr, ptr %2, align 8, !tbaa !5
  %92 = getelementptr inbounds %class.ResolveState, ptr %91, i32 0, i32 22
  %93 = load ptr, ptr %92, align 8, !tbaa !9
  store ptr %93, ptr %9, align 8, !tbaa !5
  %94 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %95 = getelementptr inbounds %class.ResolveNode, ptr %94, i32 0, i32 0
  %96 = load i32, ptr %95, align 8, !tbaa !29
  switch i32 %96, label %712 [
    i32 0, label %101
    i32 1, label %276
  ]

97:                                               ; preds = %1
  %98 = landingpad { ptr, i32 }
          cleanup
  %99 = extractvalue { ptr, i32 } %98, 0
  store ptr %99, ptr %5, align 8
  %100 = extractvalue { ptr, i32 } %98, 1
  store i32 %100, ptr %6, align 4
  br label %716

101:                                              ; preds = %86
  %102 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %103 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %102)
          to label %104 unwind label %160

104:                                              ; preds = %101
  %105 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %103) #9
  %106 = icmp ult i64 %105, 2
  br i1 %106, label %115, label %107

107:                                              ; preds = %104
  %108 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %109 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %108)
          to label %110 unwind label %160

110:                                              ; preds = %107
  %111 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %109, i64 noundef 0) #9
  %112 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %111) #9
  %113 = invoke noundef zeroext i1 @_ZNK7HtnTerm10isVariableEv(ptr noundef nonnull align 8 dereferenceable(72) %112)
          to label %114 unwind label %160

114:                                              ; preds = %110
  br i1 %113, label %215, label %115

115:                                              ; preds = %114, %104
  %116 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %117 unwind label %160

117:                                              ; preds = %115
  %118 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %116)
          to label %119 unwind label %160

119:                                              ; preds = %117
  %120 = and i64 8388608, %118
  %121 = icmp ne i64 %120, 0
  br i1 %121, label %122, label %193

122:                                              ; preds = %119
  %123 = load ptr, ptr %2, align 8, !tbaa !5
  %124 = getelementptr inbounds %class.ResolveState, ptr %123, i32 0, i32 10
  %125 = load i8, ptr %124, align 8, !tbaa !38, !range !39, !noundef !40
  %126 = trunc i8 %125 to i1
  %127 = zext i1 %126 to i64
  %128 = select i1 %126, i32 0, i32 2
  %129 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %130 unwind label %160

130:                                              ; preds = %122
  %131 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %129)
          to label %132 unwind label %160

132:                                              ; preds = %130
  %133 = icmp sle i32 %128, %131
  br i1 %133, label %134, label %193

134:                                              ; preds = %132
  %135 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %136 unwind label %160

136:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #9
  %137 = load ptr, ptr %2, align 8, !tbaa !5
  %138 = getelementptr inbounds %class.ResolveState, ptr %137, i32 0, i32 15
  %139 = load i32, ptr %138, align 8, !tbaa !41
  %140 = sext i32 %139 to i64
  %141 = load ptr, ptr %8, align 8, !tbaa !5
  %142 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %141) #9
  %143 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %142) #9
  %144 = add i64 %140, %143
  %145 = mul i64 %144, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, i64 noundef %145, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %146 unwind label %164

146:                                              ; preds = %136
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %147 unwind label %168

147:                                              ; preds = %146
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.68)
          to label %148 unwind label %172

148:                                              ; preds = %147
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.97)
          to label %149 unwind label %176

149:                                              ; preds = %148
  %150 = load ptr, ptr %2, align 8, !tbaa !5
  %151 = getelementptr inbounds %class.ResolveState, ptr %150, i32 0, i32 10
  %152 = load i8, ptr %151, align 8, !tbaa !38, !range !39, !noundef !40
  %153 = trunc i8 %152 to i1
  %154 = zext i1 %153 to i64
  %155 = select i1 %153, i32 0, i32 2
  %156 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(72) %156, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %157 unwind label %180

157:                                              ; preds = %149
  %158 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %135, ptr noundef nonnull align 8 dereferenceable(32) %10, i32 noundef 8388608, i32 noundef %155, ptr noundef %15)
          to label %159 unwind label %184

159:                                              ; preds = %157
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #9
  br label %193

160:                                              ; preds = %712, %708, %296, %291, %288, %134, %130, %122, %117, %115, %110, %107, %101
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %5, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %6, align 4
  br label %715

164:                                              ; preds = %136
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %5, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %6, align 4
  br label %192

168:                                              ; preds = %146
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %5, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %6, align 4
  br label %191

172:                                              ; preds = %147
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %5, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %6, align 4
  br label %190

176:                                              ; preds = %148
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %5, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %6, align 4
  br label %189

180:                                              ; preds = %149
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %5, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %6, align 4
  br label %188

184:                                              ; preds = %157
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %5, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %188

188:                                              ; preds = %184, %180
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  br label %189

189:                                              ; preds = %188, %176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %190

190:                                              ; preds = %189, %172
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %191

191:                                              ; preds = %190, %168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br label %192

192:                                              ; preds = %191, %164
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #9
  br label %715

193:                                              ; preds = %159, %132, %119
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #9
  %194 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(72) %194, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %195 unwind label %201

195:                                              ; preds = %193
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef @.str.98, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %196 unwind label %205

196:                                              ; preds = %195
  %197 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcS0_l(i1 noundef zeroext false, ptr noundef %197, ptr noundef @.str.4, i64 noundef 1535)
          to label %198 unwind label %209

198:                                              ; preds = %196
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  %199 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %200 = getelementptr inbounds %class.ResolveNode, ptr %199, i32 0, i32 0
  store i32 8, ptr %200, align 8, !tbaa !29
  br label %275

201:                                              ; preds = %193
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %5, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %6, align 4
  br label %214

205:                                              ; preds = %195
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %5, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %6, align 4
  br label %213

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

213:                                              ; preds = %209, %205
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %214

214:                                              ; preds = %213, %201
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  br label %715

215:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #9
  %216 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #10
          to label %217 unwind label %232

217:                                              ; preds = %215
  call void @llvm.memset.p0.i64(ptr align 16 %216, i8 0, i64 48, i1 false)
  call void @_ZNSt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %216) #9
  invoke void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2IS5_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef %216)
          to label %218 unwind label %232

218:                                              ; preds = %217
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  %219 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %220 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %219)
          to label %221 unwind label %236

221:                                              ; preds = %218
  %222 = 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) %220) #9
  store ptr %222, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  %223 = load ptr, ptr %19, align 8, !tbaa !5
  %224 = call ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %223) #9
  %225 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %20, i32 0, i32 0
  store ptr %224, ptr %225, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %226 = load ptr, ptr %19, align 8, !tbaa !5
  %227 = call ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %226) #9
  %228 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.68", ptr %21, i32 0, i32 0
  store ptr %227, ptr %228, align 8
  br label %229

229:                                              ; preds = %245, %221
  %230 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  br i1 %230, label %240, label %231

231:                                              ; preds = %229
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  br label %252

232:                                              ; preds = %217, %215
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  store ptr %234, ptr %5, align 8
  %235 = extractvalue { ptr, i32 } %233, 1
  store i32 %235, ptr %6, align 4
  br label %274

236:                                              ; preds = %218
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %5, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %6, align 4
  br label %251

240:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #9
  %241 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull align 8 dereferenceable(16) %241) #9
  %242 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %22) #9
  %243 = call noundef ptr @_ZNKSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  invoke void @_ZN7HtnTerm15GetAllVariablesEPSt3setISt10shared_ptrIS_E15HtnTermComparerSaIS2_EE(ptr noundef nonnull align 8 dereferenceable(72) %242, ptr noundef %243)
          to label %244 unwind label %247

244:                                              ; preds = %240
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #9
  br label %245

245:                                              ; preds = %244
  %246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  br label %229

247:                                              ; preds = %240
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %5, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  br label %251

251:                                              ; preds = %247, %236
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  br label %273

252:                                              ; preds = %231
  %253 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %254 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  %255 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %256 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %255)
          to label %257 unwind label %264

257:                                              ; preds = %252
  call void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE6rbeginEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %24, ptr noundef nonnull align 8 dereferenceable(24) %256) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  %258 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #9
  %259 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %258)
          to label %260 unwind label %268

260:                                              ; preds = %257
  call void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4rendEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %26, ptr noundef nonnull align 8 dereferenceable(24) %259) #9
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %262 unwind label %268

262:                                              ; preds = %260
  call void @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %261) #9
  invoke void @_ZN11ResolveNode21PushStandaloneResolveEP12ResolveStateSt10shared_ptrISt3setIS2_I7HtnTermE15HtnTermComparerSaIS5_EEESt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKS5_St6vectorIS5_S7_EEEESI_20ResolveContinuePoint(ptr noundef nonnull align 8 dereferenceable(144) %253, ptr noundef %254, ptr noundef %23, ptr noundef %24, ptr noundef %25, i32 noundef 1)
          to label %263 unwind label %268

263:                                              ; preds = %262
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #9
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #9
  br label %275

264:                                              ; preds = %252
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %5, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %6, align 4
  br label %272

268:                                              ; preds = %262, %260, %257
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %5, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  br label %272

272:                                              ; preds = %268, %264
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #9
  br label %273

273:                                              ; preds = %272, %251
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  br label %274

274:                                              ; preds = %273, %232
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #9
  br label %715

275:                                              ; preds = %263, %198
  br label %714

276:                                              ; preds = %86
  %277 = load ptr, ptr %7, align 8, !tbaa !5
  %278 = call noundef zeroext i1 @_ZSteqISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EEEbRKS2_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %277, ptr null) #9
  br i1 %278, label %279, label %288

279:                                              ; preds = %276
  %280 = load ptr, ptr %2, align 8, !tbaa !5
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %280, ptr noundef %27, ptr noundef %28)
          to label %281 unwind label %284

281:                                              ; preds = %279
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #9
  %282 = load ptr, ptr %8, align 8, !tbaa !5
  %283 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %282) #9
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %283) #9
  br label %708

284:                                              ; preds = %279
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %5, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %6, align 4
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #9
  br label %715

288:                                              ; preds = %276
  %289 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %290 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %289)
          to label %291 unwind label %160

291:                                              ; preds = %288
  %292 = 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) %290) #9
  %293 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %292, i64 noundef 0) #9
  %294 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %293) #9
  %295 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %294)
          to label %296 unwind label %160

296:                                              ; preds = %291
  %297 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %295) #9
  %298 = icmp ugt i64 %297, 1
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext %298, ptr noundef @.str.4, i64 noundef 1565)
          to label %299 unwind label %160

299:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #9
  %300 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %301 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %300)
          to label %302 unwind label %335

302:                                              ; preds = %299
  %303 = 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) %301) #9
  %304 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %303, i64 noundef 0) #9
  %305 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %304) #9
  %306 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %305)
          to label %307 unwind label %335

307:                                              ; preds = %302
  %308 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %306, i64 noundef 0) #9
  %309 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %308) #9
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(72) %309)
          to label %310 unwind label %335

310:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #9
  %311 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 0)
          to label %312 unwind label %339

312:                                              ; preds = %310
  %313 = load i8, ptr %311, align 1, !tbaa !42
  %314 = sext i8 %313 to i32
  %315 = icmp eq i32 %314, 95
  br i1 %315, label %316, label %461

316:                                              ; preds = %312
  %317 = load ptr, ptr %7, align 8, !tbaa !5
  %318 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %317) #9
  %319 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %318) #9
  %320 = icmp ugt i64 %319, 0
  br i1 %320, label %321, label %460

321:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 48, ptr %31) #9
  call void @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %322 = load ptr, ptr %7, align 8, !tbaa !5
  %323 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %322) #9
  %324 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %323, i64 noundef 0) #9
  store ptr %324, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 48, ptr %33) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  store i32 0, ptr %34, align 4, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %325 = load ptr, ptr %32, align 8, !tbaa !5
  store ptr %325, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %326 = load ptr, ptr %35, align 8, !tbaa !5
  %327 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %326) #9
  %328 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69", ptr %36, i32 0, i32 0
  store ptr %327, ptr %328, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %329 = load ptr, ptr %35, align 8, !tbaa !5
  %330 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %329) #9
  %331 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69", ptr %37, i32 0, i32 0
  store ptr %330, ptr %331, align 8
  br label %332

332:                                              ; preds = %368, %321
  %333 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  br i1 %333, label %343, label %334

334:                                              ; preds = %332
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  br label %371

335:                                              ; preds = %307, %302, %299
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %5, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %6, align 4
  br label %707

339:                                              ; preds = %310
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %5, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %6, align 4
  br label %706

343:                                              ; preds = %332
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #9
  %344 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %344) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #9
  %345 = getelementptr inbounds %"struct.std::pair", ptr %38, i32 0, i32 0
  %346 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %345) #9
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef nonnull align 8 dereferenceable(72) %346)
          to label %347 unwind label %359

347:                                              ; preds = %343
  %348 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %39, i64 noundef 0)
          to label %349 unwind label %363

349:                                              ; preds = %347
  %350 = load i8, ptr %348, align 1, !tbaa !42
  %351 = sext i8 %350 to i32
  %352 = icmp ne i32 %351, 95
  br i1 %352, label %353, label %367

353:                                              ; preds = %349
  %354 = load i32, ptr %34, align 4, !tbaa !43
  %355 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %33, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %356 unwind label %363

356:                                              ; preds = %353
  store i32 %354, ptr %355, align 4, !tbaa !43
  %357 = load i32, ptr %34, align 4, !tbaa !43
  %358 = add nsw i32 %357, 1
  store i32 %358, ptr %34, align 4, !tbaa !43
  br label %367

359:                                              ; preds = %343
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %5, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %6, align 4
  br label %370

363:                                              ; preds = %353, %347
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %5, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %370

367:                                              ; preds = %356, %349
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #9
  br label %368

368:                                              ; preds = %367
  %369 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #9
  br label %332

370:                                              ; preds = %363, %359
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  br label %459

371:                                              ; preds = %334
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  store i32 0, ptr %40, align 4, !tbaa !43
  br label %372

372:                                              ; preds = %453, %371
  %373 = load i32, ptr %40, align 4, !tbaa !43
  %374 = sext i32 %373 to i64
  %375 = load ptr, ptr %7, align 8, !tbaa !5
  %376 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %375) #9
  %377 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %376) #9
  %378 = icmp ult i64 %374, %377
  br i1 %378, label %380, label %379

379:                                              ; preds = %372
  store i32 7, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %458

380:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #9
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #9
  %381 = call noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %33) #9
  invoke void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %381)
          to label %382 unwind label %398

382:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %383 = load ptr, ptr %7, align 8, !tbaa !5
  %384 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %383) #9
  %385 = load i32, ptr %40, align 4, !tbaa !43
  %386 = sext i32 %385 to i64
  %387 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %384, i64 noundef %386) #9
  store ptr %387, ptr %43, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %388 = load ptr, ptr %43, align 8, !tbaa !5
  store ptr %388, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  %389 = load ptr, ptr %44, align 8, !tbaa !5
  %390 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %389) #9
  %391 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69", ptr %45, i32 0, i32 0
  store ptr %390, ptr %391, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  %392 = load ptr, ptr %44, align 8, !tbaa !5
  %393 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %392) #9
  %394 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69", ptr %46, i32 0, i32 0
  store ptr %393, ptr %394, align 8
  br label %395

395:                                              ; preds = %429, %382
  %396 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  br i1 %396, label %402, label %397

397:                                              ; preds = %395
  store i32 10, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  br label %432

398:                                              ; preds = %380
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %5, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %6, align 4
  br label %457

402:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #9
  %403 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 8 dereferenceable(32) %403) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #9
  %404 = getelementptr inbounds %"struct.std::pair", ptr %47, i32 0, i32 0
  %405 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %404) #9
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(72) %405)
          to label %406 unwind label %420

406:                                              ; preds = %402
  %407 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %48, i64 noundef 0)
          to label %408 unwind label %424

408:                                              ; preds = %406
  %409 = load i8, ptr %407, align 1, !tbaa !42
  %410 = sext i8 %409 to i32
  %411 = icmp ne i32 %410, 95
  br i1 %411, label %412, label %428

412:                                              ; preds = %408
  %413 = getelementptr inbounds %"struct.std::pair", ptr %47, i32 0, i32 1
  %414 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %33, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %415 unwind label %424

415:                                              ; preds = %412
  %416 = load i32, ptr %414, align 4, !tbaa !43
  %417 = sext i32 %416 to i64
  %418 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %42, i64 noundef %417) #9
  %419 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %418, ptr noundef nonnull align 8 dereferenceable(16) %413) #9
  br label %428

420:                                              ; preds = %402
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %5, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %6, align 4
  br label %431

424:                                              ; preds = %412, %406
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %5, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %431

428:                                              ; preds = %415, %408
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  br label %429

429:                                              ; preds = %428
  %430 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #9
  br label %395

431:                                              ; preds = %424, %420
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  br label %456

432:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  %433 = invoke ptr @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEE4findERS8_(ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %434 unwind label %444

434:                                              ; preds = %432
  %435 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.173", ptr %49, i32 0, i32 0
  store ptr %433, ptr %435, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %436 = call ptr @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %31) #9
  %437 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.173", ptr %50, i32 0, i32 0
  store ptr %436, ptr %437, align 8
  %438 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKSt6vectorISt10shared_ptrI7HtnTermESaIS4_EEiEESB_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br i1 %438, label %439, label %452

439:                                              ; preds = %434
  %440 = load i32, ptr %40, align 4, !tbaa !43
  %441 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEEixERS8_(ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %442 unwind label %448

442:                                              ; preds = %439
  store i32 %440, ptr %441, align 4, !tbaa !43
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %443 unwind label %448

443:                                              ; preds = %442
  br label %452

444:                                              ; preds = %432
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %5, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  br label %456

448:                                              ; preds = %442, %439
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %5, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %6, align 4
  br label %456

452:                                              ; preds = %443, %434
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #9
  br label %453

453:                                              ; preds = %452
  %454 = load i32, ptr %40, align 4, !tbaa !43
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr %40, align 4, !tbaa !43
  br label %372, !llvm.loop !44

456:                                              ; preds = %448, %444, %431
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  br label %457

457:                                              ; preds = %456, %398
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %42) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %459

458:                                              ; preds = %379
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %31) #9
  br label %460

459:                                              ; preds = %457, %370
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %31) #9
  br label %706

460:                                              ; preds = %458, %316
  br label %542

461:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 48, ptr %51) #9
  call void @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %51) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  store i32 0, ptr %52, align 4, !tbaa !43
  br label %462

462:                                              ; preds = %533, %461
  %463 = load i32, ptr %52, align 4, !tbaa !43
  %464 = sext i32 %463 to i64
  %465 = load ptr, ptr %7, align 8, !tbaa !5
  %466 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %465) #9
  %467 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %466) #9
  %468 = icmp ult i64 %464, %467
  br i1 %468, label %470, label %469

469:                                              ; preds = %462
  store i32 12, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %541

470:                                              ; preds = %462
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %471 = load ptr, ptr %7, align 8, !tbaa !5
  %472 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %471) #9
  %473 = load i32, ptr %52, align 4, !tbaa !43
  %474 = sext i32 %473 to i64
  %475 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %472, i64 noundef %474) #9
  store ptr %475, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #9
  store i8 0, ptr %54, align 1, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %476 = load ptr, ptr %53, align 8, !tbaa !5
  store ptr %476, ptr %55, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %477 = load ptr, ptr %55, align 8, !tbaa !5
  %478 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %477) #9
  %479 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69", ptr %56, i32 0, i32 0
  store ptr %478, ptr %479, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  %480 = load ptr, ptr %55, align 8, !tbaa !5
  %481 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %480) #9
  %482 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.69", ptr %57, i32 0, i32 0
  store ptr %481, ptr %482, align 8
  br label %483

483:                                              ; preds = %525, %470
  %484 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %57) #9
  br i1 %484, label %486, label %485

485:                                              ; preds = %483
  store i32 15, ptr %41, align 4
  br label %528

486:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #9
  %487 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %56) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull align 8 dereferenceable(32) %487) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  %488 = getelementptr inbounds %"struct.std::pair", ptr %58, i32 0, i32 0
  %489 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %488) #9
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(72) %489)
          to label %490 unwind label %507

490:                                              ; preds = %486
  %491 = 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) %59, ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br i1 %491, label %492, label %521

492:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #9
  %493 = getelementptr inbounds %"struct.std::pair", ptr %58, i32 0, i32 1
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 8 dereferenceable(16) %493) #9
  %494 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr null) #9
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext %494, ptr noundef @.str.4, i64 noundef 1630)
          to label %495 unwind label %511

495:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %496 = invoke ptr @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEE4findERS5_(ptr noundef nonnull align 8 dereferenceable(48) %51, ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %497 unwind label %515

497:                                              ; preds = %495
  %498 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.179", ptr %61, i32 0, i32 0
  store ptr %496, ptr %498, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %499 = call ptr @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %51) #9
  %500 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.179", ptr %62, i32 0, i32 0
  store ptr %499, ptr %500, align 8
  %501 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKSt10shared_ptrI7HtnTermEiEES8_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  br i1 %501, label %502, label %519

502:                                              ; preds = %497
  %503 = load i32, ptr %52, align 4, !tbaa !43
  %504 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEEixERS5_(ptr noundef nonnull align 8 dereferenceable(48) %51, ptr noundef nonnull align 8 dereferenceable(16) %60)
          to label %505 unwind label %511

505:                                              ; preds = %502
  store i32 %503, ptr %504, align 4, !tbaa !43
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 4 dereferenceable(4) %52)
          to label %506 unwind label %511

506:                                              ; preds = %505
  br label %519

507:                                              ; preds = %486
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %5, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  br label %527

511:                                              ; preds = %505, %502, %492
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %5, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %6, align 4
  br label %520

515:                                              ; preds = %495
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %5, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  br label %520

519:                                              ; preds = %506, %497
  store i8 1, ptr %54, align 1, !tbaa !46
  store i32 15, ptr %41, align 4
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #9
  br label %522

520:                                              ; preds = %515, %511
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #9
  br label %527

521:                                              ; preds = %490
  store i32 0, ptr %41, align 4
  br label %522

522:                                              ; preds = %521, %519
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  %523 = load i32, ptr %41, align 4
  switch i32 %523, label %528 [
    i32 0, label %524
  ]

524:                                              ; preds = %522
  br label %525

525:                                              ; preds = %524
  %526 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %56) #9
  br label %483

527:                                              ; preds = %520, %507
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  br label %540

528:                                              ; preds = %522, %485
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  br label %529

529:                                              ; preds = %528
  %530 = load i8, ptr %54, align 1, !tbaa !46, !range !39, !noundef !40
  %531 = trunc i8 %530 to i1
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext %531, ptr noundef @.str.4, i64 noundef 1643)
          to label %532 unwind label %536

532:                                              ; preds = %529
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %533

533:                                              ; preds = %532
  %534 = load i32, ptr %52, align 4, !tbaa !43
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr %52, align 4, !tbaa !43
  br label %462, !llvm.loop !47

536:                                              ; preds = %529
  %537 = landingpad { ptr, i32 }
          cleanup
  %538 = extractvalue { ptr, i32 } %537, 0
  store ptr %538, ptr %5, align 8
  %539 = extractvalue { ptr, i32 } %537, 1
  store i32 %539, ptr %6, align 4
  br label %540

540:                                              ; preds = %536, %527
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  call void @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %51) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %51) #9
  br label %706

541:                                              ; preds = %469
  call void @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %51) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %51) #9
  br label %542

542:                                              ; preds = %541, %460
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #9
  %543 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 40) #10
          to label %544 unwind label %565

544:                                              ; preds = %542
  store i1 true, ptr %68, align 1
  %545 = load ptr, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %66)
          to label %546 unwind label %569

546:                                              ; preds = %544
  invoke void @_ZN14HtnTermFactory14CreateConstantERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.28") align 8 %64, ptr noundef nonnull align 8 dereferenceable(33088) %545, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %547 unwind label %573

547:                                              ; preds = %546
  call void @llvm.memset.p0.i64(ptr align 8 %67, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #9
  invoke void @_ZN7HtnRuleC2ESt10shared_ptrI7HtnTermESt6vectorIS2_SaIS2_EE(ptr noundef nonnull align 8 dereferenceable(40) %543, ptr noundef %64, ptr noundef %67)
          to label %548 unwind label %577

548:                                              ; preds = %547
  store i1 false, ptr %68, align 1
  invoke void @_ZNSt10shared_ptrI7HtnRuleEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef %543)
          to label %549 unwind label %577

549:                                              ; preds = %548
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #9
  %550 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #10
          to label %551 unwind label %586

551:                                              ; preds = %549
  call void @llvm.memset.p0.i64(ptr align 16 %550, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %550) #9
  invoke void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEEC2ISB_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef %550)
          to label %552 unwind label %586

552:                                              ; preds = %551
  %553 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %554 = getelementptr inbounds %class.ResolveNode, ptr %553, i32 0, i32 4
  %555 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEEaSEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %554, ptr noundef nonnull align 8 dereferenceable(16) %69) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #9
  store ptr %30, ptr %70, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  %556 = load ptr, ptr %70, align 8, !tbaa !5
  %557 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %556) #9
  %558 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.180", ptr %71, i32 0, i32 0
  store ptr %557, ptr %558, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #9
  %559 = load ptr, ptr %70, align 8, !tbaa !5
  %560 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %559) #9
  %561 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.180", ptr %72, i32 0, i32 0
  store ptr %560, ptr %561, align 8
  br label %562

562:                                              ; preds = %603, %552
  %563 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef nonnull align 8 dereferenceable(8) %72) #9
  br i1 %563, label %590, label %564

564:                                              ; preds = %562
  store i32 17, ptr %41, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  br label %614

565:                                              ; preds = %542
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %5, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %6, align 4
  br label %705

569:                                              ; preds = %544
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %5, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %6, align 4
  br label %582

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

577:                                              ; preds = %548, %547
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %5, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %6, align 4
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #9
  br label %581

581:                                              ; preds = %577, %573
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  br label %582

582:                                              ; preds = %581, %569
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #9
  %583 = load i1, ptr %68, align 1
  br i1 %583, label %584, label %585

584:                                              ; preds = %582
  call void @_ZdlPvm(ptr noundef %543, i64 noundef 40) #11
  br label %585

585:                                              ; preds = %584, %582
  br label %705

586:                                              ; preds = %551, %549
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %5, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #9
  br label %704

590:                                              ; preds = %562
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %591 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %71) #9
  %592 = load i32, ptr %591, align 4, !tbaa !43
  store i32 %592, ptr %73, align 4, !tbaa !43
  %593 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %594 = getelementptr inbounds %class.ResolveNode, ptr %593, i32 0, i32 4
  %595 = 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) %594) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %74) #9
  %596 = load ptr, ptr %7, align 8, !tbaa !5
  %597 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %596) #9
  %598 = load i32, ptr %73, align 4, !tbaa !43
  %599 = sext i32 %598 to i64
  %600 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %597, i64 noundef %599) #9
  invoke void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEEC2IRS2_RS8_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %74, ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull align 8 dereferenceable(24) %600)
          to label %601 unwind label %605

601:                                              ; preds = %590
  invoke void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EE9push_backEOS9_(ptr noundef nonnull align 8 dereferenceable(24) %595, ptr noundef nonnull align 8 dereferenceable(40) %74)
          to label %602 unwind label %609

602:                                              ; preds = %601
  call void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %74) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %603

603:                                              ; preds = %602
  %604 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %71) #9
  br label %562

605:                                              ; preds = %590
  %606 = landingpad { ptr, i32 }
          cleanup
  %607 = extractvalue { ptr, i32 } %606, 0
  store ptr %607, ptr %5, align 8
  %608 = extractvalue { ptr, i32 } %606, 1
  store i32 %608, ptr %6, align 4
  br label %613

609:                                              ; preds = %601
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %5, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %6, align 4
  call void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %74) #9
  br label %613

613:                                              ; preds = %609, %605
  call void @llvm.lifetime.end.p0(i64 40, ptr %74) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #9
  br label %704

614:                                              ; preds = %564
  call void @llvm.lifetime.start.p0(i64 16, ptr %75) #9
  %615 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #10
          to label %616 unwind label %667

616:                                              ; preds = %614
  call void @llvm.memset.p0.i64(ptr align 16 %615, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %615) #9
  invoke void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEC2IS6_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef %615)
          to label %617 unwind label %667

617:                                              ; preds = %616
  %618 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %619 = getelementptr inbounds %class.ResolveNode, ptr %618, i32 0, i32 5
  %620 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEaSEOS7_(ptr noundef nonnull align 8 dereferenceable(16) %619, ptr noundef nonnull align 8 dereferenceable(16) %75) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #9
  %621 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %622 unwind label %671

622:                                              ; preds = %617
  %623 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %621)
          to label %624 unwind label %671

624:                                              ; preds = %622
  %625 = and i64 8388608, %623
  %626 = icmp ne i64 %625, 0
  br i1 %626, label %627, label %699

627:                                              ; preds = %624
  %628 = load ptr, ptr %2, align 8, !tbaa !5
  %629 = getelementptr inbounds %class.ResolveState, ptr %628, i32 0, i32 10
  %630 = load i8, ptr %629, align 8, !tbaa !38, !range !39, !noundef !40
  %631 = trunc i8 %630 to i1
  %632 = zext i1 %631 to i64
  %633 = select i1 %631, i32 0, i32 2
  %634 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %635 unwind label %671

635:                                              ; preds = %627
  %636 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %634)
          to label %637 unwind label %671

637:                                              ; preds = %635
  %638 = icmp sle i32 %633, %636
  br i1 %638, label %639, label %699

639:                                              ; preds = %637
  %640 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %641 unwind label %671

641:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %77) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #9
  %642 = load ptr, ptr %2, align 8, !tbaa !5
  %643 = getelementptr inbounds %class.ResolveState, ptr %642, i32 0, i32 15
  %644 = load i32, ptr %643, align 8, !tbaa !41
  %645 = sext i32 %644 to i64
  %646 = load ptr, ptr %8, align 8, !tbaa !5
  %647 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %646) #9
  %648 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %647) #9
  %649 = add i64 %645, %648
  %650 = mul i64 %649, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, i64 noundef %650, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %651 unwind label %675

651:                                              ; preds = %641
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %652 unwind label %679

652:                                              ; preds = %651
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %77, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.6)
          to label %653 unwind label %683

653:                                              ; preds = %652
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef @.str.99)
          to label %654 unwind label %687

654:                                              ; preds = %653
  %655 = load ptr, ptr %2, align 8, !tbaa !5
  %656 = getelementptr inbounds %class.ResolveState, ptr %655, i32 0, i32 10
  %657 = load i8, ptr %656, align 8, !tbaa !38, !range !39, !noundef !40
  %658 = trunc i8 %657 to i1
  %659 = zext i1 %658 to i64
  %660 = select i1 %658, i32 0, i32 2
  %661 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %662 = getelementptr inbounds %class.ResolveNode, ptr %661, i32 0, i32 4
  %663 = 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) %662) #9
  %664 = call noundef i64 @_ZNKSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %663) #9
  %665 = invoke noundef double @_ZN9NanoTrace5TraceImEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %640, ptr noundef nonnull align 8 dereferenceable(32) %76, i32 noundef 8388608, i32 noundef %660, i64 noundef %664)
          to label %666 unwind label %691

666:                                              ; preds = %654
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  br label %699

667:                                              ; preds = %616, %614
  %668 = landingpad { ptr, i32 }
          cleanup
  %669 = extractvalue { ptr, i32 } %668, 0
  store ptr %669, ptr %5, align 8
  %670 = extractvalue { ptr, i32 } %668, 1
  store i32 %670, ptr %6, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #9
  br label %704

671:                                              ; preds = %639, %635, %627, %622, %617
  %672 = landingpad { ptr, i32 }
          cleanup
  %673 = extractvalue { ptr, i32 } %672, 0
  store ptr %673, ptr %5, align 8
  %674 = extractvalue { ptr, i32 } %672, 1
  store i32 %674, ptr %6, align 4
  br label %704

675:                                              ; preds = %641
  %676 = landingpad { ptr, i32 }
          cleanup
  %677 = extractvalue { ptr, i32 } %676, 0
  store ptr %677, ptr %5, align 8
  %678 = extractvalue { ptr, i32 } %676, 1
  store i32 %678, ptr %6, align 4
  br label %698

679:                                              ; preds = %651
  %680 = landingpad { ptr, i32 }
          cleanup
  %681 = extractvalue { ptr, i32 } %680, 0
  store ptr %681, ptr %5, align 8
  %682 = extractvalue { ptr, i32 } %680, 1
  store i32 %682, ptr %6, align 4
  br label %697

683:                                              ; preds = %652
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %5, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %6, align 4
  br label %696

687:                                              ; preds = %653
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %5, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %6, align 4
  br label %695

691:                                              ; preds = %654
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %5, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %6, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #9
  br label %695

695:                                              ; preds = %691, %687
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #9
  br label %696

696:                                              ; preds = %695, %683
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %697

697:                                              ; preds = %696, %679
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #9
  br label %698

698:                                              ; preds = %697, %675
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #9
  br label %704

699:                                              ; preds = %666, %637, %624
  %700 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %701 = getelementptr inbounds %class.ResolveNode, ptr %700, i32 0, i32 2
  store i32 -1, ptr %701, align 8, !tbaa !48
  %702 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %703 = getelementptr inbounds %class.ResolveNode, ptr %702, i32 0, i32 0
  store i32 7, ptr %703, align 8, !tbaa !29
  call void @_ZNSt12__shared_ptrI7HtnRuleLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #9
  br label %708

704:                                              ; preds = %698, %671, %667, %613, %586
  call void @_ZNSt12__shared_ptrI7HtnRuleLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #9
  br label %705

705:                                              ; preds = %704, %585, %565
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #9
  br label %706

706:                                              ; preds = %705, %540, %459, %339
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %707

707:                                              ; preds = %706, %335
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #9
  br label %715

708:                                              ; preds = %699, %281
  %709 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %710 = load ptr, ptr %2, align 8, !tbaa !5
  invoke void @_ZN11ResolveNode20PopStandaloneResolveEP12ResolveState(ptr noundef nonnull align 8 dereferenceable(144) %709, ptr noundef %710)
          to label %711 unwind label %160

711:                                              ; preds = %708
  br label %714

712:                                              ; preds = %86
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext false, ptr noundef @.str.4, i64 noundef 1672)
          to label %713 unwind label %160

713:                                              ; preds = %712
  br label %714

714:                                              ; preds = %713, %711, %275
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %4) #9
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #9
  ret void

715:                                              ; preds = %707, %284, %274, %214, %192, %160
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #9
  br label %716

716:                                              ; preds = %715, %97
  call void @llvm.lifetime.end.p0(i64 16, ptr %4) #9
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #9
  br label %717

717:                                              ; preds = %716
  %718 = load ptr, ptr %5, align 8
  %719 = load i32, ptr %6, align 4
  %720 = insertvalue { ptr, i32 } poison, ptr %718, 0
  %721 = insertvalue { ptr, i32 } %720, i32 %719, 1
  resume { ptr, i32 } %721
}

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10shared_ptrI7HtnRuleEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) 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)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEEC2IRS2_RS8_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 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 #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrI7HtnRuleLN9__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 nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72)) #1 align 2

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

; 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 nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(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 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_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)) #3

; 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 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: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { builtin 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 = !{!30, !31, i64 0}
!30 = !{!"_ZTS11ResolveNode", !31, i64 0, !16, i64 8, !12, i64 32, !12, i64 36, !32, i64 40, !34, i64 56, !22, i64 72, !11, i64 80, !11, i64 81, !27, i64 88, !36, i64 104, !11, i64 120, !11, i64 121, !23, i64 128}
!31 = !{!"_ZTS20ResolveContinuePoint", !7, i64 0}
!32 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEE", !33, i64 0}
!33 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!34 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEE", !35, i64 0}
!35 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!36 = !{!"_ZTSSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEE", !37, i64 0}
!37 = !{!"_ZTSSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !15, i64 8}
!38 = !{!10, !11, i64 96}
!39 = !{i8 0, i8 2}
!40 = !{}
!41 = !{!10, !12, i64 160}
!42 = !{!7, !7, i64 0}
!43 = !{!12, !12, i64 0}
!44 = distinct !{!44, !45}
!45 = !{!"llvm.loop.mustprogress"}
!46 = !{!11, !11, i64 0}
!47 = distinct !{!47, !45}
!48 = !{!30, !12, i64 32}


; 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::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::shared_ptr.28" = type { %"class.std::__shared_ptr.29" }
%"class.std::__shared_ptr.29" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.25" = type { %"class.std::__shared_ptr.26" }
%"class.std::__shared_ptr.26" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator" = type { i8 }
%"class.std::shared_ptr.12" = type { %"class.std::__shared_ptr.13" }
%"class.std::__shared_ptr.13" = type { ptr, %"class.std::__shared_count" }
%"class.__gnu_cxx::__normal_iterator.68" = type { ptr }
%"class.std::vector.157" = type { %"struct.std::_Vector_base.158" }
%"struct.std::_Vector_base.158" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.162" = type { %"class.std::_Rb_tree.163" }
%"class.std::_Rb_tree.163" = type { %"struct.std::_Rb_tree<std::vector<std::shared_ptr<HtnTerm>>, std::pair<const std::vector<std::shared_ptr<HtnTerm>>, int>, std::_Select1st<std::pair<const std::vector<std::shared_ptr<HtnTerm>>, int>>, HtnTermVectorComparer>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::vector<std::shared_ptr<HtnTerm>>, std::pair<const std::vector<std::shared_ptr<HtnTerm>>, int>, std::_Select1st<std::pair<const std::vector<std::shared_ptr<HtnTerm>>, int>>, HtnTermVectorComparer>::_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 }
%"class.std::map.168" = type { %"class.std::_Rb_tree.169" }
%"class.std::_Rb_tree.169" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, 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>, int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, int>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.__gnu_cxx::__normal_iterator.69" = type { ptr }
%"struct.std::pair" = type { %"class.std::shared_ptr.28", %"class.std::shared_ptr.28" }
%"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 }
%"struct.std::_Rb_tree_iterator.173" = type { ptr }
%"class.std::map.174" = type { %"class.std::_Rb_tree.175" }
%"class.std::_Rb_tree.175" = type { %"struct.std::_Rb_tree<std::shared_ptr<HtnTerm>, std::pair<const std::shared_ptr<HtnTerm>, int>, std::_Select1st<std::pair<const std::shared_ptr<HtnTerm>, int>>, HtnTermComparer>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::shared_ptr<HtnTerm>, std::pair<const std::shared_ptr<HtnTerm>, int>, std::_Select1st<std::pair<const std::shared_ptr<HtnTerm>, int>>, HtnTermComparer>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_iterator.179" = type { ptr }
%"class.std::shared_ptr.140" = type { %"class.std::__shared_ptr.141" }
%"class.std::__shared_ptr.141" = 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.__gnu_cxx::__normal_iterator.180" = type { ptr }
%"struct.std::pair.143" = type { %"class.std::shared_ptr.140", %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>, std::allocator<std::pair<std::shared_ptr<HtnTerm>, std::shared_ptr<HtnTerm>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }

@.str.4 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [40 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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11ResolveNode20PopStandaloneResolveEP12ResolveState(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef) local_unnamed_addr #2 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 uwtable
declare dso_local void @_ZN11ResolveNode21PushStandaloneResolveEP12ResolveStateSt10shared_ptrISt3setIS2_I7HtnTermE15HtnTermComparerSaIS5_EEESt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKS5_St6vectorIS5_S7_EEEESI_20ResolveContinuePoint(ptr noundef nonnull align 8 dereferenceable(144), ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2 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 #7

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

; 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

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

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

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

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

; Function Attrs: mustprogress 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 nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

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

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 #8

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15HtnGoalResolver12RuleDistinctEP12ResolveState(ptr noundef %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::shared_ptr.25", align 8
  %3 = alloca %"class.std::shared_ptr.28", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::shared_ptr.12", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.68", align 8
  %15 = alloca %"class.std::shared_ptr.28", align 8
  %16 = alloca %"class.std::shared_ptr.12", align 8
  %17 = alloca %"class.std::reverse_iterator", align 8
  %18 = alloca %"class.std::reverse_iterator", align 8
  %19 = alloca %"class.std::reverse_iterator", align 8
  %20 = alloca %"class.std::shared_ptr.28", align 8
  %21 = alloca %"class.std::shared_ptr.25", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::vector.157", align 8
  %24 = alloca %"class.std::map.162", align 8
  %25 = alloca %"class.std::map.168", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %28 = alloca %"struct.std::pair", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca i32, align 4
  %31 = alloca %"class.std::vector", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %34 = alloca %"struct.std::pair", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"struct.std::_Rb_tree_iterator.173", align 8
  %37 = alloca %"struct.std::_Rb_tree_iterator.173", align 8
  %38 = alloca %"class.std::map.174", align 8
  %39 = alloca i32, align 4
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.69", align 8
  %42 = alloca %"struct.std::pair", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::shared_ptr.28", align 8
  %45 = alloca %"struct.std::_Rb_tree_iterator.179", align 8
  %46 = alloca %"struct.std::_Rb_tree_iterator.179", align 8
  %47 = alloca %"class.std::shared_ptr.140", align 8
  %48 = alloca %"class.std::shared_ptr.28", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca %"class.std::vector", align 8
  %52 = alloca %"class.std::shared_ptr.6", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.180", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator.180", align 8
  %55 = alloca %"struct.std::pair.143", align 8
  %56 = alloca %"class.std::shared_ptr.0", align 8
  %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::allocator", align 1
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #9
  %62 = getelementptr inbounds i8, ptr %0, i64 176
  %63 = tail call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  %64 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %63) #9
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %2, ptr noundef nonnull align 8 dereferenceable(16) %64) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #9
  %65 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  call void @_ZN11ResolveNode11currentGoalEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %3, ptr noundef nonnull align 8 dereferenceable(144) %65)
  %66 = getelementptr inbounds i8, ptr %0, i64 200
  %67 = getelementptr inbounds i8, ptr %0, i64 224
  %68 = load ptr, ptr %67, align 8, !tbaa !5
  %69 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  %70 = load i32, ptr %69, align 8, !tbaa !28
  switch i32 %70, label %448 [
    i32 0, label %71
    i32 1, label %178
  ]

71:                                               ; preds = %1
  %72 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %73 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %72)
  %74 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #9
  %75 = icmp ult i64 %74, 2
  br i1 %75, label %82, label %76

76:                                               ; preds = %71
  %77 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %78 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %77)
  %79 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %78, i64 noundef 0) #9
  %80 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  %81 = call noundef zeroext i1 @_ZNK7HtnTerm10isVariableEv(ptr noundef nonnull align 8 dereferenceable(72) %80)
  br i1 %81, label %147, label %82

82:                                               ; preds = %76, %71
  %83 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %84 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %83)
  %85 = and i64 %84, 8388608
  %.not116 = icmp eq i64 %85, 0
  br i1 %.not116, label %132, label %86

86:                                               ; preds = %82
  %87 = getelementptr inbounds i8, ptr %0, i64 96
  %88 = load i8, ptr %87, align 8, !tbaa !37, !range !38, !noundef !39
  %89 = trunc nuw i8 %88 to i1
  %90 = select i1 %89, i32 0, i32 2
  %91 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %92 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %91)
  %.not117 = icmp sgt i32 %90, %92
  br i1 %.not117, label %132, label %93

93:                                               ; preds = %86
  %94 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #9
  %95 = getelementptr inbounds i8, ptr %0, i64 160
  %96 = load i32, ptr %95, align 8, !tbaa !40
  %97 = sext i32 %96 to i64
  %98 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  %99 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #9
  %100 = add i64 %99, %97
  %101 = mul i64 %100, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, i64 noundef %101, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %102 unwind label %115

102:                                              ; preds = %93
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %103 unwind label %117

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

104:                                              ; preds = %103
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.97)
          to label %105 unwind label %121

105:                                              ; preds = %104
  %106 = load i8, ptr %87, align 8, !tbaa !37, !range !38, !noundef !39
  %107 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(72) %107, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %108 unwind label %123

108:                                              ; preds = %105
  %109 = trunc nuw i8 %106 to i1
  %110 = select i1 %109, i32 0, i32 2
  %111 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %94, ptr noundef nonnull align 8 dereferenceable(32) %4, i32 noundef 8388608, i32 noundef %110, ptr noundef nonnull %9)
          to label %112 unwind label %125

112:                                              ; preds = %108
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  br label %132

113:                                              ; preds = %448, %446, %185
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %450

115:                                              ; preds = %93
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %131

117:                                              ; preds = %102
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %130

119:                                              ; preds = %103
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %129

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

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

125:                                              ; preds = %108
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  br label %127

127:                                              ; preds = %125, %123
  %.pn118 = phi { ptr, i32 } [ %126, %125 ], [ %124, %123 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  br label %128

128:                                              ; preds = %127, %121
  %.pn118.pn = phi { ptr, i32 } [ %.pn118, %127 ], [ %122, %121 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #9
  br label %129

129:                                              ; preds = %128, %119
  %.pn118.pn.pn = phi { ptr, i32 } [ %.pn118.pn, %128 ], [ %120, %119 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #9
  br label %130

130:                                              ; preds = %129, %117
  %.pn118.pn.pn.pn = phi { ptr, i32 } [ %.pn118.pn.pn, %129 ], [ %118, %117 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #9
  br label %131

131:                                              ; preds = %130, %115
  %.pn118.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn118.pn.pn.pn, %130 ], [ %116, %115 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  br label %450

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

134:                                              ; preds = %132
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull @.str.98, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %135 unwind label %141

135:                                              ; preds = %134
  %136 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcS0_l(i1 noundef zeroext false, ptr noundef %136, ptr noundef nonnull @.str.4, i64 noundef 1535)
          to label %137 unwind label %143

137:                                              ; preds = %135
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  %138 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  store i32 8, ptr %138, align 8, !tbaa !28
  br label %449

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

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

143:                                              ; preds = %135
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  br label %145

145:                                              ; preds = %143, %141
  %.pn124 = phi { ptr, i32 } [ %144, %143 ], [ %142, %141 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %146

146:                                              ; preds = %145, %139
  %.pn124.pn = phi { ptr, i32 } [ %.pn124, %145 ], [ %140, %139 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #9
  br label %450

147:                                              ; preds = %76
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %12) #9
  %148 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #10
          to label %149 unwind label %163

149:                                              ; preds = %147
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %148, i8 0, i64 48, i1 false)
  call void @_ZNSt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %148) #9
  invoke void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2IS5_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %12, ptr noundef nonnull %148)
          to label %150 unwind label %163

150:                                              ; preds = %149
  %151 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  %152 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %151)
  %153 = 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) %152) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %154 = call ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #9
  store ptr %154, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  %155 = call ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #9
  store ptr %155, ptr %14, align 8
  %156 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #9
  br i1 %156, label %.lr.ph151, label %._crit_edge152

._crit_edge152:                                   ; preds = %168, %150
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  %157 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  call void @_ZNSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEEC2ERKS6_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %12) #9
  %158 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %159 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %158)
  call void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE6rbeginEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %17, ptr noundef nonnull align 8 dereferenceable(24) %159) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #9
  %160 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #9
  %161 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %160)
  call void @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4rendEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %19, ptr noundef nonnull align 8 dereferenceable(24) %161) #9
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEmmEv(ptr noundef nonnull align 8 dereferenceable(8) %19)
  call void @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrI7HtnTermESt6vectorIS4_SaIS4_EEEEEC2ERKSB_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %162) #9
  invoke void @_ZN11ResolveNode21PushStandaloneResolveEP12ResolveStateSt10shared_ptrISt3setIS2_I7HtnTermE15HtnTermComparerSaIS5_EEESt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPKS5_St6vectorIS5_S7_EEEESI_20ResolveContinuePoint(ptr noundef nonnull align 8 dereferenceable(144) %157, ptr noundef %0, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %18, i32 noundef 1)
          to label %173 unwind label %174

163:                                              ; preds = %149, %147
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %177

.lr.ph151:                                        ; preds = %150, %168
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #9
  %165 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %15, ptr noundef nonnull align 8 dereferenceable(16) %165) #9
  %166 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  %167 = call noundef ptr @_ZNKSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %12) #9
  invoke void @_ZN7HtnTerm15GetAllVariablesEPSt3setISt10shared_ptrIS_E15HtnTermComparerSaIS2_EE(ptr noundef nonnull align 8 dereferenceable(72) %166, ptr noundef %167)
          to label %168 unwind label %171

168:                                              ; preds = %.lr.ph151
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #9
  %169 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  %170 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10shared_ptrI7HtnTermESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #9
  br i1 %170, label %.lr.ph151, label %._crit_edge152

171:                                              ; preds = %.lr.ph151
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  br label %176

173:                                              ; preds = %._crit_edge152
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #9
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #9
  br label %449

174:                                              ; preds = %._crit_edge152
  %175 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #9
  br label %176

176:                                              ; preds = %174, %171
  %.pn113 = phi { ptr, i32 } [ %172, %171 ], [ %175, %174 ]
  call void @_ZNSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #9
  br label %177

177:                                              ; preds = %176, %163
  %.pn113.pn = phi { ptr, i32 } [ %.pn113, %176 ], [ %164, %163 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) #9
  br label %450

178:                                              ; preds = %1
  %179 = call noundef zeroext i1 @_ZSteqISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EEEbRKS2_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr null) #9
  br i1 %179, label %180, label %185

180:                                              ; preds = %178
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @_ZNSt10shared_ptrI11ResolveNodeEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  invoke void @_ZN12ResolveState13RecordFailureESt10shared_ptrI7HtnTermES0_I11ResolveNodeE(ptr noundef nonnull align 8 dereferenceable(244) %0, ptr noundef nonnull %20, ptr noundef nonnull %21)
          to label %181 unwind label %183

181:                                              ; preds = %180
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #9
  %182 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  call void @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %182) #9
  br label %446

183:                                              ; preds = %180
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #9
  br label %450

185:                                              ; preds = %178
  %186 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  %187 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %186)
  %188 = 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) %187) #9
  %189 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %188, i64 noundef 0) #9
  %190 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %189) #9
  %191 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %190)
  %192 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %191) #9
  %193 = icmp ugt i64 %192, 1
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext %193, ptr noundef nonnull @.str.4, i64 noundef 1565)
          to label %194 unwind label %113

194:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  %195 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  %196 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %195)
  %197 = 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) %196) #9
  %198 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %197, i64 noundef 0) #9
  %199 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %198) #9
  %200 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7HtnTerm9argumentsEv(ptr noundef nonnull align 8 dereferenceable(72) %199)
  %201 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %200, i64 noundef 0) #9
  %202 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %201) #9
  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) %202)
          to label %203 unwind label %219

203:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #9
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  %204 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %22, i64 noundef 0)
  %205 = load i8, ptr %204, align 1, !tbaa !41
  %206 = icmp eq i8 %205, 95
  br i1 %206, label %207, label %291

207:                                              ; preds = %203
  %208 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  %209 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %208) #9
  %.not = icmp eq i64 %209, 0
  br i1 %.not, label %340, label %210

210:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %24) #9
  call void @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #9
  %211 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  %212 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %211, i64 noundef 0) #9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %25) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  %213 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %212) #9
  store ptr %213, ptr %26, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  %214 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %212) #9
  store ptr %214, ptr %27, align 8
  %215 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  br i1 %215, label %.lr.ph139, label %._crit_edge140

._crit_edge140:                                   ; preds = %234, %210
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #9
  store i32 0, ptr %30, align 4, !tbaa !42
  %216 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  %217 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %216) #9
  %.not154 = icmp eq i64 %217, 0
  br i1 %.not154, label %._crit_edge146, label %.lr.ph145

.lr.ph145:                                        ; preds = %._crit_edge140
  %218 = getelementptr inbounds i8, ptr %34, i64 16
  br label %238

219:                                              ; preds = %194
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %445

.lr.ph139:                                        ; preds = %210, %234
  %.077137 = phi i32 [ %.178, %234 ], [ 0, %210 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #9
  %221 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(32) %221) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  %222 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %28) #9
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(72) %222)
          to label %223 unwind label %230

223:                                              ; preds = %.lr.ph139
  %224 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %29, i64 noundef 0)
  %225 = load i8, ptr %224, align 1, !tbaa !41
  %.not107 = icmp eq i8 %225, 95
  br i1 %.not107, label %234, label %226

226:                                              ; preds = %223
  %227 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %228 unwind label %232

228:                                              ; preds = %226
  store i32 %.077137, ptr %227, align 4, !tbaa !42
  %229 = add nsw i32 %.077137, 1
  br label %234

230:                                              ; preds = %.lr.ph139
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %237

232:                                              ; preds = %226
  %233 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %237

234:                                              ; preds = %228, %223
  %.178 = phi i32 [ %229, %228 ], [ %.077137, %223 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  %235 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  %236 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  br i1 %236, label %.lr.ph139, label %._crit_edge140

237:                                              ; preds = %232, %230
  %.pn108 = phi { ptr, i32 } [ %233, %232 ], [ %231, %230 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  br label %290

._crit_edge146:                                   ; preds = %282, %._crit_edge140
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #9
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %25) #9
  call void @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #9
  br label %340

238:                                              ; preds = %.lr.ph145, %282
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #9
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #9
  %239 = call noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %25) #9
  invoke void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %239)
          to label %240 unwind label %249

240:                                              ; preds = %238
  %241 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  %242 = load i32, ptr %30, align 4, !tbaa !42
  %243 = sext i32 %242 to i64
  %244 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %241, i64 noundef %243) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #9
  %245 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %244) #9
  store ptr %245, ptr %32, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #9
  %246 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %244) #9
  store ptr %246, ptr %33, align 8
  %247 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  br i1 %247, label %.lr.ph142, label %._crit_edge143

._crit_edge143:                                   ; preds = %267, %240
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #9
  %248 = invoke ptr @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEE4findERS8_(ptr noundef nonnull align 8 dereferenceable(48) %24, ptr noundef nonnull align 8 dereferenceable(24) %31)
          to label %271 unwind label %278

249:                                              ; preds = %238
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %289

.lr.ph142:                                        ; preds = %240, %267
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  %251 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %251) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #9
  %252 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %34) #9
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(72) %252)
          to label %253 unwind label %263

253:                                              ; preds = %.lr.ph142
  %254 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %35, i64 noundef 0)
  %255 = load i8, ptr %254, align 1, !tbaa !41
  %.not102 = icmp eq i8 %255, 95
  br i1 %.not102, label %267, label %256

256:                                              ; preds = %253
  %257 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %25, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %258 unwind label %265

258:                                              ; preds = %256
  %259 = load i32, ptr %257, align 4, !tbaa !42
  %260 = sext i32 %259 to i64
  %261 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %260) #9
  %262 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI7HtnTermEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %261, ptr noundef nonnull align 8 dereferenceable(16) %218) #9
  br label %267

263:                                              ; preds = %.lr.ph142
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %270

265:                                              ; preds = %256
  %266 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  br label %270

267:                                              ; preds = %258, %253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  %268 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  %269 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  br i1 %269, label %.lr.ph142, label %._crit_edge143

270:                                              ; preds = %265, %263
  %.pn103 = phi { ptr, i32 } [ %266, %265 ], [ %264, %263 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  br label %289

271:                                              ; preds = %._crit_edge143
  store ptr %248, ptr %36, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #9
  %272 = call ptr @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %24) #9
  store ptr %272, ptr %37, align 8
  %273 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKSt6vectorISt10shared_ptrI7HtnTermESaIS4_EEiEESB_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #9
  br i1 %273, label %274, label %282

274:                                              ; preds = %271
  %275 = load i32, ptr %30, align 4, !tbaa !42
  %276 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEEixERS8_(ptr noundef nonnull align 8 dereferenceable(48) %24, ptr noundef nonnull align 8 dereferenceable(24) %31)
          to label %277 unwind label %280

277:                                              ; preds = %274
  store i32 %275, ptr %276, align 4, !tbaa !42
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 4 dereferenceable(4) %30)
          to label %282 unwind label %280

278:                                              ; preds = %._crit_edge143
  %279 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #9
  br label %289

280:                                              ; preds = %277, %274
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %289

282:                                              ; preds = %277, %271
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #9
  %283 = load i32, ptr %30, align 4, !tbaa !42
  %284 = add nsw i32 %283, 1
  store i32 %284, ptr %30, align 4, !tbaa !42
  %285 = sext i32 %284 to i64
  %286 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  %287 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %286) #9
  %288 = icmp ugt i64 %287, %285
  br i1 %288, label %238, label %._crit_edge146, !llvm.loop !43

289:                                              ; preds = %270, %278, %280, %249
  %.pn103.pn.pn = phi { ptr, i32 } [ %250, %249 ], [ %.pn103, %270 ], [ %281, %280 ], [ %279, %278 ]
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #9
  br label %290

290:                                              ; preds = %289, %237
  %.pn108.pn = phi { ptr, i32 } [ %.pn108, %237 ], [ %.pn103.pn.pn, %289 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4lessIS5_ESaISt4pairIKS5_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %25) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %25) #9
  call void @_ZNSt3mapISt6vectorISt10shared_ptrI7HtnTermESaIS3_EEi21HtnTermVectorComparerSaISt4pairIKS5_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %24) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %24) #9
  br label %444

291:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %38) #9
  call void @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #9
  store i32 0, ptr %39, align 4, !tbaa !42
  %292 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  %293 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %292) #9
  %.not153 = icmp eq i64 %293, 0
  br i1 %.not153, label %._crit_edge, label %.lr.ph136

.lr.ph136:                                        ; preds = %291
  %294 = getelementptr inbounds i8, ptr %42, i64 16
  br label %295

._crit_edge:                                      ; preds = %330, %291
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #9
  call void @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %38) #9
  br label %340

295:                                              ; preds = %.lr.ph136, %330
  %296 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  %297 = load i32, ptr %39, align 4, !tbaa !42
  %298 = sext i32 %297 to i64
  %299 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %296, i64 noundef %298) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #9
  %300 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %299) #9
  store ptr %300, ptr %40, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #9
  %301 = call ptr @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %299) #9
  store ptr %301, ptr %41, align 8
  %302 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #9
  br i1 %302, label %.lr.ph, label %.loopexit

.lr.ph:                                           ; preds = %295, %325
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #9
  %303 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_EC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(32) %303) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #9
  %304 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %42) #9
  invoke void @_ZNK7HtnTerm4nameB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(72) %304)
          to label %305 unwind label %318

305:                                              ; preds = %.lr.ph
  %306 = 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) %43, ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  br i1 %306, label %307, label %325

307:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %44) #9
  call void @_ZNSt10shared_ptrI7HtnTermEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef nonnull align 8 dereferenceable(16) %294) #9
  %308 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr null) #9
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext %308, ptr noundef nonnull @.str.4, i64 noundef 1630)
          to label %309 unwind label %320

309:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #9
  %310 = invoke ptr @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEE4findERS5_(ptr noundef nonnull align 8 dereferenceable(48) %38, ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %311 unwind label %322

311:                                              ; preds = %309
  store ptr %310, ptr %45, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #9
  %312 = call ptr @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %38) #9
  store ptr %312, ptr %46, align 8
  %313 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKSt10shared_ptrI7HtnTermEiEES8_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #9
  br i1 %313, label %314, label %.thread

314:                                              ; preds = %311
  %315 = load i32, ptr %39, align 4, !tbaa !42
  %316 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEEixERS5_(ptr noundef nonnull align 8 dereferenceable(48) %38, ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %317 unwind label %320

317:                                              ; preds = %314
  store i32 %315, ptr %316, align 4, !tbaa !42
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %.thread unwind label %320

318:                                              ; preds = %.lr.ph
  %319 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  br label %328

320:                                              ; preds = %317, %314, %307
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %324

322:                                              ; preds = %309
  %323 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #9
  br label %324

.thread:                                          ; preds = %311, %317
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #9
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  br label %.loopexit

324:                                              ; preds = %322, %320
  %.pn = phi { ptr, i32 } [ %321, %320 ], [ %323, %322 ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #9
  br label %328

325:                                              ; preds = %305
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  %326 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #9
  %327 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairISt10shared_ptrI7HtnTermES4_ESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #9
  br i1 %327, label %.lr.ph, label %.loopexit

328:                                              ; preds = %324, %318
  %.pn.pn = phi { ptr, i32 } [ %.pn, %324 ], [ %319, %318 ]
  call void @_ZNSt4pairISt10shared_ptrI7HtnTermES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #9
  br label %339

.loopexit:                                        ; preds = %325, %295, %.thread
  %329 = phi i1 [ true, %.thread ], [ false, %295 ], [ false, %325 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #9
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext %329, ptr noundef nonnull @.str.4, i64 noundef 1643)
          to label %330 unwind label %337

330:                                              ; preds = %.loopexit
  %331 = load i32, ptr %39, align 4, !tbaa !42
  %332 = add nsw i32 %331, 1
  store i32 %332, ptr %39, align 4, !tbaa !42
  %333 = sext i32 %332 to i64
  %334 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  %335 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %334) #9
  %336 = icmp ugt i64 %335, %333
  br i1 %336, label %295, label %._crit_edge, !llvm.loop !45

337:                                              ; preds = %.loopexit
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %339

339:                                              ; preds = %337, %328
  %.pn85 = phi { ptr, i32 } [ %338, %337 ], [ %.pn.pn, %328 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #9
  call void @_ZNSt3mapISt10shared_ptrI7HtnTermEi15HtnTermComparerSaISt4pairIKS2_iEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %38) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %38) #9
  br label %444

340:                                              ; preds = %207, %._crit_edge146, %._crit_edge
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #9
  %341 = invoke noalias noundef nonnull dereferenceable(40) ptr @_Znwm(i64 noundef 40) #10
          to label %342 unwind label %357

342:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.21, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %343 unwind label %.thread130

343:                                              ; preds = %342
  invoke void @_ZN14HtnTermFactory14CreateConstantERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.28") align 8 %48, ptr noundef nonnull align 8 dereferenceable(33088) %68, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %344 unwind label %360

344:                                              ; preds = %343
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %51, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #9
  invoke void @_ZN7HtnRuleC2ESt10shared_ptrI7HtnTermESt6vectorIS2_SaIS2_EE(ptr noundef nonnull align 8 dereferenceable(40) %341, ptr noundef nonnull %48, ptr noundef nonnull %51)
          to label %345 unwind label %362

345:                                              ; preds = %344
  invoke void @_ZNSt10shared_ptrI7HtnRuleEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull %341)
          to label %346 unwind label %362

346:                                              ; preds = %345
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %52) #9
  %347 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #10
          to label %348 unwind label %366

348:                                              ; preds = %346
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %347, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %347) #9
  invoke void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEEC2ISB_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull %347)
          to label %349 unwind label %366

349:                                              ; preds = %348
  %350 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  %351 = getelementptr inbounds i8, ptr %350, i64 40
  %352 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEEaSEOSC_(ptr noundef nonnull align 8 dereferenceable(16) %351, ptr noundef nonnull align 8 dereferenceable(16) %52) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #9
  %353 = call ptr @_ZNSt6vectorIiSaIiEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  store ptr %353, ptr %53, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #9
  %354 = call ptr @_ZNSt6vectorIiSaIiEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  store ptr %354, ptr %54, align 8
  %355 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #9
  br i1 %355, label %.lr.ph148, label %._crit_edge149

._crit_edge149:                                   ; preds = %377, %349
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %56) #9
  %356 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #10
          to label %385 unwind label %422

357:                                              ; preds = %340
  %358 = landingpad { ptr, i32 }
          cleanup
  br label %443

.thread130:                                       ; preds = %342
  %359 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #9
  br label %365

360:                                              ; preds = %343
  %361 = landingpad { ptr, i32 }
          cleanup
  br label %364

362:                                              ; preds = %345, %344
  %.074 = phi i1 [ false, %345 ], [ true, %344 ]
  %363 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #9
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #9
  br label %364

364:                                              ; preds = %360, %362
  %.175 = phi i1 [ %.074, %362 ], [ true, %360 ]
  %.pn88 = phi { ptr, i32 } [ %363, %362 ], [ %361, %360 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #9
  br i1 %.175, label %365, label %443

365:                                              ; preds = %.thread130, %364
  %.pn88.pn133 = phi { ptr, i32 } [ %359, %.thread130 ], [ %.pn88, %364 ]
  call void @_ZdlPvm(ptr noundef nonnull %341, i64 noundef 40) #11
  br label %443

366:                                              ; preds = %348, %346
  %367 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #9
  br label %442

.lr.ph148:                                        ; preds = %349, %377
  %368 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  %369 = load i32, ptr %368, align 4, !tbaa !42
  %370 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  %371 = getelementptr inbounds i8, ptr %370, i64 40
  %372 = 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) %371) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %55) #9
  %373 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %66) #9
  %374 = sext i32 %369 to i64
  %375 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %373, i64 noundef %374) #9
  invoke void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEEC2IRS2_RS8_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40) %55, ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 8 dereferenceable(24) %375)
          to label %376 unwind label %380

376:                                              ; preds = %.lr.ph148
  invoke void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EE9push_backEOS9_(ptr noundef nonnull align 8 dereferenceable(24) %372, ptr noundef nonnull align 8 dereferenceable(40) %55)
          to label %377 unwind label %382

377:                                              ; preds = %376
  call void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %55) #9
  %378 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPiSt6vectorIiSaIiEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  %379 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPiSt6vectorIiSaIiEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #9
  br i1 %379, label %.lr.ph148, label %._crit_edge149

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

382:                                              ; preds = %376
  %383 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %55) #9
  br label %384

384:                                              ; preds = %382, %380
  %.pn98 = phi { ptr, i32 } [ %383, %382 ], [ %381, %380 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #9
  br label %442

385:                                              ; preds = %._crit_edge149
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %356, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %356) #9
  invoke void @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEC2IS6_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %56, ptr noundef nonnull %356)
          to label %386 unwind label %422

386:                                              ; preds = %385
  %387 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  %388 = getelementptr inbounds i8, ptr %387, i64 56
  %389 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEEaSEOS7_(ptr noundef nonnull align 8 dereferenceable(16) %388, ptr noundef nonnull align 8 dereferenceable(16) %56) #9
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #9
  %390 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %391 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %390)
  %392 = and i64 %391, 8388608
  %.not91 = icmp eq i64 %392, 0
  br i1 %.not91, label %438, label %393

393:                                              ; preds = %386
  %394 = getelementptr inbounds i8, ptr %0, i64 96
  %395 = load i8, ptr %394, align 8, !tbaa !37, !range !38, !noundef !39
  %396 = trunc nuw i8 %395 to i1
  %397 = select i1 %396, i32 0, i32 2
  %398 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %399 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %398)
  %.not92 = icmp sgt i32 %397, %399
  br i1 %.not92, label %438, label %400

400:                                              ; preds = %393
  %401 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #9
  %402 = getelementptr inbounds i8, ptr %0, i64 160
  %403 = load i32, ptr %402, align 8, !tbaa !40
  %404 = sext i32 %403 to i64
  %405 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %62) #9
  %406 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %405) #9
  %407 = add i64 %406, %404
  %408 = mul i64 %407, 11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %61) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, i64 noundef %408, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %409 unwind label %424

409:                                              ; preds = %400
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %410 unwind label %426

410:                                              ; preds = %409
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull @.str.6)
          to label %411 unwind label %428

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 %57, ptr noundef nonnull align 8 dereferenceable(32) %58, ptr noundef nonnull @.str.99)
          to label %412 unwind label %430

412:                                              ; preds = %411
  %413 = load i8, ptr %394, align 8, !tbaa !37, !range !38, !noundef !39
  %414 = trunc nuw i8 %413 to i1
  %415 = select i1 %414, i32 0, i32 2
  %416 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  %417 = getelementptr inbounds i8, ptr %416, i64 40
  %418 = 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) %417) #9
  %419 = call noundef i64 @_ZNKSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %418) #9
  %420 = invoke noundef double @_ZN9NanoTrace5TraceImEEdRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %401, ptr noundef nonnull align 8 dereferenceable(32) %57, i32 noundef 8388608, i32 noundef %415, i64 noundef %419)
          to label %421 unwind label %432

421:                                              ; preds = %412
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #9
  br label %438

422:                                              ; preds = %385, %._crit_edge149
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #9
  br label %442

424:                                              ; preds = %400
  %425 = landingpad { ptr, i32 }
          cleanup
  br label %437

426:                                              ; preds = %409
  %427 = landingpad { ptr, i32 }
          cleanup
  br label %436

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

430:                                              ; preds = %411
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %434

432:                                              ; preds = %412
  %433 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %434

434:                                              ; preds = %432, %430
  %.pn93 = phi { ptr, i32 } [ %433, %432 ], [ %431, %430 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #9
  br label %435

435:                                              ; preds = %434, %428
  %.pn93.pn = phi { ptr, i32 } [ %.pn93, %434 ], [ %429, %428 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %436

436:                                              ; preds = %435, %426
  %.pn93.pn.pn = phi { ptr, i32 } [ %.pn93.pn, %435 ], [ %427, %426 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  br label %437

437:                                              ; preds = %436, %424
  %.pn93.pn.pn.pn = phi { ptr, i32 } [ %.pn93.pn.pn, %436 ], [ %425, %424 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #9
  br label %442

438:                                              ; preds = %421, %393, %386
  %439 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  %440 = getelementptr inbounds i8, ptr %439, i64 32
  store i32 -1, ptr %440, align 8, !tbaa !46
  %441 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  store i32 7, ptr %441, align 8, !tbaa !28
  call void @_ZNSt12__shared_ptrI7HtnRuleLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #9
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br label %446

442:                                              ; preds = %437, %422, %384, %366
  %.pn98.pn = phi { ptr, i32 } [ %.pn98, %384 ], [ %.pn93.pn.pn.pn, %437 ], [ %423, %422 ], [ %367, %366 ]
  call void @_ZNSt12__shared_ptrI7HtnRuleLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #9
  br label %443

443:                                              ; preds = %364, %365, %442, %357
  %.pn98.pn.pn = phi { ptr, i32 } [ %.pn98.pn, %442 ], [ %.pn88.pn133, %365 ], [ %.pn88, %364 ], [ %358, %357 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #9
  br label %444

444:                                              ; preds = %443, %339, %290
  %.pn108.pn.pn = phi { ptr, i32 } [ %.pn108.pn, %290 ], [ %.pn98.pn.pn, %443 ], [ %.pn85, %339 ]
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %445

445:                                              ; preds = %444, %219
  %.pn108.pn.pn.pn = phi { ptr, i32 } [ %.pn108.pn.pn, %444 ], [ %220, %219 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  br label %450

446:                                              ; preds = %438, %181
  %447 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #9
  invoke void @_ZN11ResolveNode20PopStandaloneResolveEP12ResolveState(ptr noundef nonnull align 8 dereferenceable(144) %447, ptr noundef %0)
          to label %449 unwind label %113

448:                                              ; preds = %1
  invoke void @_Z35failfast_uncaught_exception_handlerbPKcl(i1 noundef zeroext false, ptr noundef nonnull @.str.4, i64 noundef 1672)
          to label %449 unwind label %113

449:                                              ; preds = %448, %446, %137, %173
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #9
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #9
  ret void

450:                                              ; preds = %445, %183, %177, %146, %131, %113
  %.pn127 = phi { ptr, i32 } [ %114, %113 ], [ %184, %183 ], [ %.pn108.pn.pn.pn, %445 ], [ %.pn124.pn, %146 ], [ %.pn118.pn.pn.pn.pn, %131 ], [ %.pn113.pn, %177 ]
  call void @_ZNSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #9
  call void @_ZNSt12__shared_ptrI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #9
  resume { ptr, i32 } %.pn127
}

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt10shared_ptrI7HtnRuleEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) 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: mustprogress uwtable
declare dso_local void @_ZNSt6vectorISt4pairISt10shared_ptrI7HtnRuleES_IS0_IS1_I7HtnTermES5_ESaIS6_EEESaIS9_EE9push_backEOS9_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt4pairISt10shared_ptrI7HtnRuleESt6vectorIS_IS0_I7HtnTermES5_ESaIS6_EEEC2IRS2_RS8_TnNSt9enable_ifIXaaclsr5_PCCPE22_MoveConstructiblePairIT_T0_EEclsr5_PCCPE30_ImplicitlyMoveConvertiblePairISE_SF_EEEbE4typeELb1EEEOSE_OSF_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #2 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 #3 align 2

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

; 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 nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(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 @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_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 #3

; 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 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: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_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 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { builtin allocsize(0) }
attributes #11 = { builtin 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 = !{!29, !30, i64 0}
!29 = !{!"_ZTS11ResolveNode", !30, i64 0, !15, i64 8, !10, i64 32, !10, i64 36, !31, i64 40, !33, i64 56, !21, i64 72, !7, i64 80, !7, i64 81, !26, i64 88, !35, i64 104, !7, i64 120, !7, i64 121, !22, i64 128}
!30 = !{!"_ZTS20ResolveContinuePoint", !8, i64 0}
!31 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnRuleES0_IS1_IS_I7HtnTermES5_ESaIS6_EEESaIS9_EEE", !32, i64 0}
!32 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnRuleES0_IS1_IS2_I7HtnTermES6_ESaIS7_EEESaISA_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!33 = !{!"_ZTSSt10shared_ptrISt6vectorISt4pairIS_I7HtnTermES3_ESaIS4_EEE", !34, i64 0}
!34 = !{!"_ZTSSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!35 = !{!"_ZTSSt10shared_ptrISt3setIS_I7HtnTermE15HtnTermComparerSaIS2_EEE", !36, i64 0}
!36 = !{!"_ZTSSt12__shared_ptrISt3setISt10shared_ptrI7HtnTermE15HtnTermComparerSaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !14, i64 8}
!37 = !{!6, !7, i64 96}
!38 = !{i8 0, i8 2}
!39 = !{}
!40 = !{!6, !10, i64 160}
!41 = !{!8, !8, i64 0}
!42 = !{!10, !10, i64 0}
!43 = distinct !{!43, !44}
!44 = !{!"llvm.loop.mustprogress"}
!45 = distinct !{!45, !44}
!46 = !{!29, !10, i64 32}


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