; LLVM IR from BehaviorTree/BehaviorTree.CPP :: src (xml_parsing)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::shared_ptr.123" = type { %"class.std::__shared_ptr.124" }
%"class.std::__shared_ptr.124" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::basic_string_view" = type { i64, ptr }
%"class.std::allocator" = type { i8 }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"class.std::unordered_map.140" = type { %"class.std::_Hashtable.141" }
%"class.std::_Hashtable.141" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"struct.std::__detail::_Node_const_iterator.154" = type { %"struct.std::__detail::_Node_iterator_base.155" }
%"struct.std::__detail::_Node_iterator_base.155" = type { ptr }
%"class.BT::Any" = type { %"class.linb::any", %"struct.std::type_index" }
%"class.linb::any" = type { %"union.linb::any::storage_union", ptr }
%"union.linb::any::storage_union" = type { ptr, [8 x i8] }
%"struct.std::type_index" = type { ptr }
%"struct.BT::NodeConfig" = type { %"class.std::shared_ptr.120", %"class.std::shared_ptr.158", %"class.std::unordered_map.140", %"class.std::unordered_map.140", %"class.std::unordered_map.140", ptr, i16, %"class.std::__cxx11::basic_string", %"class.std::map.161", %"class.std::map.167" }
%"class.std::shared_ptr.120" = type { %"class.std::__shared_ptr.121" }
%"class.std::__shared_ptr.121" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.158" = type { %"class.std::__shared_ptr.159" }
%"class.std::__shared_ptr.159" = type { ptr, %"class.std::__shared_count" }
%"class.std::map.161" = type { %"class.std::_Rb_tree.162" }
%"class.std::_Rb_tree.162" = type { %"struct.std::_Rb_tree<BT::PreCond, std::pair<const BT::PreCond, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const BT::PreCond, std::__cxx11::basic_string<char>>>, std::less<BT::PreCond>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<BT::PreCond, std::pair<const BT::PreCond, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const BT::PreCond, std::__cxx11::basic_string<char>>>, std::less<BT::PreCond>>::_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.167" = type { %"class.std::_Rb_tree.168" }
%"class.std::_Rb_tree.168" = type { %"struct.std::_Rb_tree<BT::PostCond, std::pair<const BT::PostCond, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const BT::PostCond, std::__cxx11::basic_string<char>>>, std::less<BT::PostCond>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<BT::PostCond, std::pair<const BT::PostCond, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const BT::PostCond, std::__cxx11::basic_string<char>>>, std::less<BT::PostCond>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%class.anon.173 = type { ptr, ptr }
%"class.std::unique_ptr.174" = type { %"struct.std::__uniq_ptr_data.175" }
%"struct.std::__uniq_ptr_data.175" = type { %"class.std::__uniq_ptr_impl.176" }
%"class.std::__uniq_ptr_impl.176" = type { %"class.std::tuple.177" }
%"class.std::tuple.177" = type { %"struct.std::_Tuple_impl.178" }
%"struct.std::_Tuple_impl.178" = type { %"struct.std::_Head_base.181" }
%"struct.std::_Head_base.181" = type { ptr }
%"struct.std::__detail::_Node_iterator.182" = type { %"struct.std::__detail::_Node_iterator_base.183" }
%"struct.std::__detail::_Node_iterator_base.183" = type { ptr }
%"class.nonstd::expected_lite::expected.186" = type { %"class.nonstd::expected_lite::detail::storage_t.187" }
%"class.nonstd::expected_lite::detail::storage_t.187" = type { %"class.nonstd::expected_lite::detail::storage_t_impl.base.190", [7 x i8] }
%"class.nonstd::expected_lite::detail::storage_t_impl.base.190" = type <{ %union.anon.189, i8 }>
%union.anon.189 = type { %"class.std::__cxx11::basic_string" }
%"struct.std::pair.206" = type <{ %"struct.std::__detail::_Node_iterator.182", i8, [7 x i8] }>
%"struct.std::pair.184" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"struct.BT::XMLParser::PImpl" = type <{ %"class.std::__cxx11::list", %"class.std::map", ptr, %"class.std::filesystem::__cxx11::path", %"class.std::map.25", i32, [4 x i8] }>
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<std::unique_ptr<tinyxml2::XMLDocument>, std::allocator<std::unique_ptr<tinyxml2::XMLDocument>>>::_List_impl" }
%"struct.std::__cxx11::_List_base<std::unique_ptr<tinyxml2::XMLDocument>, std::allocator<std::unique_ptr<tinyxml2::XMLDocument>>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, const tinyxml2::XMLElement *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, const tinyxml2::XMLElement *>>, 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>, const tinyxml2::XMLElement *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, const tinyxml2::XMLElement *>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::filesystem::__cxx11::path" = type { %"class.std::__cxx11::basic_string", %"struct.std::filesystem::__cxx11::path::_List" }
%"struct.std::filesystem::__cxx11::path::_List" = type { %"class.std::unique_ptr.17" }
%"class.std::unique_ptr.17" = type { %"struct.std::__uniq_ptr_data.18" }
%"struct.std::__uniq_ptr_data.18" = type { %"class.std::__uniq_ptr_impl.19" }
%"class.std::__uniq_ptr_impl.19" = type { %"class.std::tuple.20" }
%"class.std::tuple.20" = type { %"struct.std::_Tuple_impl.21" }
%"struct.std::_Tuple_impl.21" = type { %"struct.std::_Head_base.24" }
%"struct.std::_Head_base.24" = type { ptr }
%"class.std::map.25" = type { %"class.std::_Rb_tree.26" }
%"class.std::_Rb_tree.26" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, BT::SubtreeModel>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, BT::SubtreeModel>>, 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>, BT::SubtreeModel>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, BT::SubtreeModel>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::pair.91" = type { %"class.std::__cxx11::basic_string", %"struct.BT::TreeNodeManifest" }
%"struct.BT::TreeNodeManifest" = type { i32, %"class.std::__cxx11::basic_string", %"class.std::unordered_map", %"class.std::vector.93" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.93" = type { %"struct.std::_Vector_base.94" }
%"struct.std::_Vector_base.94" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::allocator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.156" = type { %"class.std::__cxx11::basic_string", %"class.BT::PortInfo" }
%"class.BT::PortInfo" = type { %"class.BT::TypeInfo", i32, %"class.std::__cxx11::basic_string", %"class.BT::Any", %"class.std::__cxx11::basic_string" }
%"class.BT::TypeInfo" = type { %"struct.std::type_index", %"class.std::function", %"class.std::__cxx11::basic_string" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }

@.str.14 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZTISt9exception = external constant ptr
@_ZTIN2BT12RuntimeErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.46 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [27 x i8], align 1
@_ZTIN2BT10LogicErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.57 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTIN2BT8TreeNodeE = external constant ptr
@_ZTIN2BT11SubTreeNodeE = external constant ptr
@.str.58 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [80 x i8], align 1
@_ZTINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE = external dso_local constant { ptr, ptr }, align 8
@.str.64 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [27 x i8], align 1
@_ZTIN2BT11ControlNodeE = external constant ptr
@_ZTIN2BT13DecoratorNodeE = external constant ptr

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

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

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

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

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

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

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

declare noundef ptr @_ZNK8tinyxml210XMLElement9AttributeEPKcS2_(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef, ptr noundef) #3

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_free_exception(ptr)

declare void @__cxa_throw(ptr, ptr, ptr)

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

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

declare noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory9manifestsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK8tinyxml210XMLElement4NameEv(ptr noundef nonnull align 8 dereferenceable(120)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeE(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr noundef nonnull align 8 dereferenceable(172) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(98) %6) #2 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.std::basic_string_view", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca ptr, align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca i1, align 1
  %28 = alloca i1, align 1
  %29 = alloca ptr, align 8
  %30 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %31 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %32 = alloca %"class.std::unordered_map.140", align 8
  %33 = alloca %"class.std::unordered_map.140", align 8
  %34 = alloca ptr, align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::basic_string_view", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::allocator", align 1
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::allocator", align 1
  %44 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %45 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::basic_string_view", align 8
  %48 = alloca %"class.std::basic_string_view", align 8
  %49 = alloca %"class.std::basic_string_view", align 8
  %50 = alloca %"class.std::basic_string_view", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca i1, align 1
  %53 = alloca ptr, align 8
  %54 = alloca i8, align 1
  %55 = alloca %"class.BT::Any", align 8
  %56 = alloca %"class.std::basic_string_view", align 8
  %57 = alloca ptr, align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::basic_string_view", align 8
  %60 = alloca %"class.std::basic_string_view", align 8
  %61 = alloca %"class.std::basic_string_view", align 8
  %62 = alloca %"class.std::basic_string_view", align 8
  %63 = alloca %"class.std::basic_string_view", align 8
  %64 = alloca %"struct.BT::NodeConfig", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %class.anon.173, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca i1, align 1
  %78 = alloca %"class.std::unique_ptr.174", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca i32, align 4
  %81 = alloca ptr, align 8
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %"class.std::basic_string_view", align 8
  %84 = alloca %"class.std::basic_string_view", align 8
  %85 = alloca %"class.std::basic_string_view", align 8
  %86 = alloca ptr, align 8
  %87 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %88 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %89 = alloca ptr, align 8
  %90 = alloca ptr, align 8
  %91 = alloca ptr, align 8
  %92 = alloca ptr, align 8
  %93 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %94 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %95 = alloca i32, align 4
  %96 = alloca ptr, align 8
  %97 = alloca ptr, align 8
  %98 = alloca ptr, align 8
  %99 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %100 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %101 = alloca %"class.std::basic_string_view", align 8
  %102 = alloca %"class.nonstd::expected_lite::expected.186", align 8
  %103 = alloca %"class.std::basic_string_view", align 8
  %104 = alloca %"class.std::basic_string_view", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::allocator", align 1
  %107 = alloca ptr, align 8
  %108 = alloca i8, align 1
  %109 = alloca i8, align 1
  %110 = alloca %"struct.std::type_index", align 8
  %111 = alloca %"class.std::__cxx11::basic_string", align 8
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca i1, align 1
  %114 = alloca ptr, align 8
  %115 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %116 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %117 = alloca ptr, align 8
  %118 = alloca ptr, align 8
  %119 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %120 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %121 = alloca i32, align 4
  %122 = alloca %"struct.std::pair.206", align 8
  %123 = alloca %"struct.std::pair.206", align 8
  %124 = alloca ptr, align 8
  %125 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %126 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %127 = alloca ptr, align 8
  %128 = alloca ptr, align 8
  %129 = alloca ptr, align 8
  %130 = alloca i32, align 4
  %131 = alloca ptr, align 8
  %132 = alloca %"struct.std::pair.184", align 8
  %133 = alloca %"struct.std::pair.206", align 8
  %134 = alloca %"class.std::basic_string_view", align 8
  %135 = alloca %"struct.std::pair.184", align 8
  %136 = alloca %"struct.std::pair.206", align 8
  %137 = alloca %"class.std::unique_ptr.174", align 8
  %138 = alloca ptr, align 8
  %139 = alloca ptr, align 8
  store ptr %0, ptr %8, align 8
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  store ptr %6, ptr %14, align 8, !tbaa !5
  %140 = load ptr, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %141 = load ptr, ptr %10, align 8, !tbaa !5
  %142 = call noundef ptr @_ZNK8tinyxml210XMLElement4NameEv(ptr noundef nonnull align 8 dereferenceable(120) %141)
  store ptr %142, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %143 = load ptr, ptr %10, align 8, !tbaa !5
  %144 = call noundef ptr @_ZNK8tinyxml210XMLElement9AttributeEPKcS2_(ptr noundef nonnull align 8 dereferenceable(120) %143, ptr noundef @.str.14, ptr noundef null)
  store ptr %144, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %145 = load ptr, ptr %15, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef %145) #10
  %146 = getelementptr inbounds { i64, ptr }, ptr %18, i32 0, i32 0
  %147 = load i64, ptr %146, align 8
  %148 = getelementptr inbounds { i64, ptr }, ptr %18, i32 0, i32 1
  %149 = load ptr, ptr %148, align 8
  %150 = call noundef i32 @_ZN2BT17convertFromStringINS_8NodeTypeEEET_St17basic_string_viewIcSt11char_traitsIcEE(i64 %147, ptr %149)
  store i32 %150, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  %151 = load i32, ptr %17, align 4, !tbaa !9
  %152 = icmp eq i32 %151, 0
  br i1 %152, label %153, label %197

153:                                              ; preds = %7
  %154 = getelementptr inbounds %"struct.BT::XMLParser::PImpl", ptr %140, i32 0, i32 2
  %155 = load ptr, ptr %154, align 8, !tbaa !11
  %156 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory8buildersB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8) %155)
          to label %157 unwind label %166

157:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #10
  %158 = load ptr, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %158, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %159 unwind label %170

159:                                              ; preds = %157
  %160 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS9_EERKS5_RKNS8_10NodeConfigEEESt4hashIS5_ESt8equal_toIS5_ESaISt4pairISD_SJ_EEE5countESE_(ptr noundef nonnull align 8 dereferenceable(56) %156, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %161 unwind label %174

161:                                              ; preds = %159
  %162 = icmp eq i64 %160, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #10
  br i1 %162, label %163, label %183

163:                                              ; preds = %161
  %164 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT12RuntimeErrorC2IJPKcA26_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %164, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 1 dereferenceable(26) @.str.46)
          to label %165 unwind label %179

165:                                              ; preds = %163
  invoke void @__cxa_throw(ptr %164, ptr @_ZTIN2BT12RuntimeErrorE, ptr @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %1188 unwind label %166

166:                                              ; preds = %207, %202, %191, %183, %165, %153
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %20, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %21, align 4
  br label %1179

170:                                              ; preds = %157
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %20, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %21, align 4
  br label %178

174:                                              ; preds = %159
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %20, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %21, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %178

178:                                              ; preds = %174, %170
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #10
  br label %1179

179:                                              ; preds = %163
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %20, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %21, align 4
  call void @__cxa_free_exception(ptr %164) #10
  br label %1179

183:                                              ; preds = %161
  %184 = load ptr, ptr %15, align 8, !tbaa !5
  %185 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %184)
          to label %186 unwind label %166

186:                                              ; preds = %183
  %187 = load ptr, ptr %16, align 8, !tbaa !5
  %188 = icmp ne ptr %187, null
  br i1 %188, label %189, label %196

189:                                              ; preds = %186
  %190 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT12RuntimeErrorC2IJA35_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %190, ptr noundef nonnull align 1 dereferenceable(35) @.str.47, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 1 dereferenceable(2) @.str.48)
          to label %191 unwind label %192

191:                                              ; preds = %189
  invoke void @__cxa_throw(ptr %190, ptr @_ZTIN2BT12RuntimeErrorE, ptr @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %1188 unwind label %166

192:                                              ; preds = %189
  %193 = landingpad { ptr, i32 }
          cleanup
  %194 = extractvalue { ptr, i32 } %193, 0
  store ptr %194, ptr %20, align 8
  %195 = extractvalue { ptr, i32 } %193, 1
  store i32 %195, ptr %21, align 4
  call void @__cxa_free_exception(ptr %190) #10
  br label %1179

196:                                              ; preds = %186
  br label %211

197:                                              ; preds = %7
  %198 = load ptr, ptr %16, align 8, !tbaa !5
  %199 = icmp ne ptr %198, null
  br i1 %199, label %207, label %200

200:                                              ; preds = %197
  %201 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT12RuntimeErrorC2IJA33_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %201, ptr noundef nonnull align 1 dereferenceable(33) @.str.49, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 1 dereferenceable(2) @.str.48)
          to label %202 unwind label %203

202:                                              ; preds = %200
  invoke void @__cxa_throw(ptr %201, ptr @_ZTIN2BT12RuntimeErrorE, ptr @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %1188 unwind label %166

203:                                              ; preds = %200
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %20, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %21, align 4
  call void @__cxa_free_exception(ptr %201) #10
  br label %1179

207:                                              ; preds = %197
  %208 = load ptr, ptr %16, align 8, !tbaa !5
  %209 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %208)
          to label %210 unwind label %166

210:                                              ; preds = %207
  br label %211

211:                                              ; preds = %210, %196
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #10
  %212 = load ptr, ptr %10, align 8, !tbaa !5
  %213 = invoke noundef ptr @_ZNK8tinyxml210XMLElement9AttributeEPKcS2_(ptr noundef nonnull align 8 dereferenceable(120) %212, ptr noundef @.str.18, ptr noundef null)
          to label %214 unwind label %248

214:                                              ; preds = %211
  store ptr %213, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #10
  %215 = load ptr, ptr %24, align 8, !tbaa !5
  %216 = icmp ne ptr %215, null
  store i1 false, ptr %27, align 1
  store i1 false, ptr %28, align 1
  br i1 %216, label %217, label %220

217:                                              ; preds = %214
  %218 = load ptr, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #10
  store i1 true, ptr %27, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #10
  store i1 true, ptr %28, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %218, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %219 unwind label %252

219:                                              ; preds = %217
  br label %222

220:                                              ; preds = %214
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %221 unwind label %252

221:                                              ; preds = %220
  br label %222

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

224:                                              ; preds = %222
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #10
  br label %225

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

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

228:                                              ; preds = %227, %225
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  store ptr null, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %229 = getelementptr inbounds %"struct.BT::XMLParser::PImpl", ptr %140, i32 0, i32 2
  %230 = load ptr, ptr %229, align 8, !tbaa !11
  %231 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory9manifestsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8) %230)
          to label %232 unwind label %262

232:                                              ; preds = %228
  %233 = invoke ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT16TreeNodeManifestESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE4findERSD_(ptr noundef nonnull align 8 dereferenceable(56) %231, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %234 unwind label %262

234:                                              ; preds = %232
  %235 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %30, i32 0, i32 0
  %236 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %235, i32 0, i32 0
  store ptr %233, ptr %236, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %237 = getelementptr inbounds %"struct.BT::XMLParser::PImpl", ptr %140, i32 0, i32 2
  %238 = load ptr, ptr %237, align 8, !tbaa !11
  %239 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory9manifestsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8) %238)
          to label %240 unwind label %266

240:                                              ; preds = %234
  %241 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT16TreeNodeManifestESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %239) #10
  %242 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator", ptr %31, i32 0, i32 0
  %243 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %242, i32 0, i32 0
  store ptr %241, ptr %243, align 8
  %244 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT16TreeNodeManifestEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br i1 %244, label %245, label %270

245:                                              ; preds = %240
  %246 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT16TreeNodeManifestEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #10
  %247 = getelementptr inbounds %"struct.std::pair.91", ptr %246, i32 0, i32 1
  store ptr %247, ptr %29, align 8, !tbaa !5
  br label %270

248:                                              ; preds = %211
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %20, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %21, align 4
  br label %1178

252:                                              ; preds = %220, %217
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %20, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %21, align 4
  %256 = load i1, ptr %28, align 1
  br i1 %256, label %257, label %258

257:                                              ; preds = %252
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #10
  br label %258

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

260:                                              ; preds = %258
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #10
  br label %261

261:                                              ; preds = %260, %258
  br label %1177

262:                                              ; preds = %232, %228
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %20, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %21, align 4
  br label %1176

266:                                              ; preds = %234
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %20, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %1176

270:                                              ; preds = %245, %240
  call void @llvm.lifetime.start.p0(i64 56, ptr %32) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %32) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr %33) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %33) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %271 = load ptr, ptr %10, align 8, !tbaa !5
  %272 = invoke noundef ptr @_ZNK8tinyxml210XMLElement14FirstAttributeEv(ptr noundef nonnull align 8 dereferenceable(120) %271)
          to label %273 unwind label %278

273:                                              ; preds = %270
  store ptr %272, ptr %34, align 8, !tbaa !5
  br label %274

274:                                              ; preds = %531, %273
  %275 = load ptr, ptr %34, align 8, !tbaa !5
  %276 = icmp ne ptr %275, null
  br i1 %276, label %282, label %277

277:                                              ; preds = %274
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  br label %536

278:                                              ; preds = %528, %270
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %20, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %21, align 4
  br label %535

282:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #10
  %283 = load ptr, ptr %34, align 8, !tbaa !5
  %284 = invoke noundef ptr @_ZNK8tinyxml212XMLAttribute4NameEv(ptr noundef nonnull align 8 dereferenceable(80) %283)
          to label %285 unwind label %341

285:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %284, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %286 unwind label %345

286:                                              ; preds = %285
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #10
  %287 = load ptr, ptr %34, align 8, !tbaa !5
  %288 = invoke noundef ptr @_ZNK8tinyxml212XMLAttribute5ValueEv(ptr noundef nonnull align 8 dereferenceable(80) %287)
          to label %289 unwind label %349

289:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef %288, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %290 unwind label %353

290:                                              ; preds = %289
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #10
  %291 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  %292 = getelementptr inbounds { i64, ptr }, ptr %39, i32 0, i32 0
  %293 = extractvalue { i64, ptr } %291, 0
  store i64 %293, ptr %292, align 8
  %294 = getelementptr inbounds { i64, ptr }, ptr %39, i32 0, i32 1
  %295 = extractvalue { i64, ptr } %291, 1
  store ptr %295, ptr %294, align 8
  %296 = getelementptr inbounds { i64, ptr }, ptr %39, i32 0, i32 0
  %297 = load i64, ptr %296, align 8
  %298 = getelementptr inbounds { i64, ptr }, ptr %39, i32 0, i32 1
  %299 = load ptr, ptr %298, align 8
  %300 = invoke noundef zeroext i1 @_ZN2BT17IsAllowedPortNameESt17basic_string_viewIcSt11char_traitsIcEE(i64 %297, ptr %299)
          to label %301 unwind label %357

301:                                              ; preds = %290
  br i1 %300, label %302, label %509

302:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #10
  %303 = load ptr, ptr %34, align 8, !tbaa !5
  %304 = invoke noundef ptr @_ZNK8tinyxml212XMLAttribute4NameEv(ptr noundef nonnull align 8 dereferenceable(80) %303)
          to label %305 unwind label %361

305:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef %304, ptr noundef nonnull align 1 dereferenceable(1) %41)
          to label %306 unwind label %365

306:                                              ; preds = %305
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #10
  %307 = load ptr, ptr %34, align 8, !tbaa !5
  %308 = invoke noundef ptr @_ZNK8tinyxml212XMLAttribute5ValueEv(ptr noundef nonnull align 8 dereferenceable(80) %307)
          to label %309 unwind label %369

309:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef %308, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %310 unwind label %373

310:                                              ; preds = %309
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #10
  %311 = load ptr, ptr %29, align 8, !tbaa !5
  %312 = icmp ne ptr %311, null
  br i1 %312, label %313, label %497

313:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %314 = load ptr, ptr %29, align 8, !tbaa !5
  %315 = getelementptr inbounds %"struct.BT::TreeNodeManifest", ptr %314, i32 0, i32 2
  %316 = invoke ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE4findERSD_(ptr noundef nonnull align 8 dereferenceable(56) %315, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %317 unwind label %377

317:                                              ; preds = %313
  %318 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.154", ptr %44, i32 0, i32 0
  %319 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.155", ptr %318, i32 0, i32 0
  store ptr %316, ptr %319, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  %320 = load ptr, ptr %29, align 8, !tbaa !5
  %321 = getelementptr inbounds %"struct.BT::TreeNodeManifest", ptr %320, i32 0, i32 2
  %322 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %321) #10
  %323 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.154", ptr %45, i32 0, i32 0
  %324 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.155", ptr %323, i32 0, i32 0
  store ptr %322, ptr %324, align 8
  %325 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  br i1 %325, label %326, label %403

326:                                              ; preds = %317
  store i1 true, ptr %52, align 1
  %327 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef @.str.50) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %48) #10
  %328 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  %329 = getelementptr inbounds { i64, ptr }, ptr %48, i32 0, i32 0
  %330 = extractvalue { i64, ptr } %328, 0
  store i64 %330, ptr %329, align 8
  %331 = getelementptr inbounds { i64, ptr }, ptr %48, i32 0, i32 1
  %332 = extractvalue { i64, ptr } %328, 1
  store ptr %332, ptr %331, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %49) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef @.str.51) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #10
  %333 = load ptr, ptr %10, align 8, !tbaa !5
  %334 = invoke noundef ptr @_ZNK8tinyxml210XMLElement4NameEv(ptr noundef nonnull align 8 dereferenceable(120) %333)
          to label %335 unwind label %381

335:                                              ; preds = %326
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef %334) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #10
  %336 = load ptr, ptr %34, align 8, !tbaa !5
  %337 = invoke noundef i32 @_ZNK8tinyxml212XMLAttribute10GetLineNumEv(ptr noundef nonnull align 8 dereferenceable(80) %336)
          to label %338 unwind label %385

338:                                              ; preds = %335
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, i32 noundef %337) #10
  invoke void @_ZN2BT6StrCatIJA9_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA62_cEEES7_RKSt17basic_string_viewIcS5_ESC_SC_SC_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(16) %49, ptr noundef nonnull align 8 dereferenceable(16) %50, ptr noundef nonnull align 1 dereferenceable(9) @.str.52, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 1 dereferenceable(62) @.str.53)
          to label %339 unwind label %389

339:                                              ; preds = %338
  invoke void @_ZN2BT12RuntimeErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %327, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %340 unwind label %393

340:                                              ; preds = %339
  store i1 false, ptr %52, align 1
  invoke void @__cxa_throw(ptr %327, ptr @_ZTIN2BT12RuntimeErrorE, ptr @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %1188 unwind label %393

341:                                              ; preds = %282
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %20, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %21, align 4
  br label %534

345:                                              ; preds = %285
  %346 = landingpad { ptr, i32 }
          cleanup
  %347 = extractvalue { ptr, i32 } %346, 0
  store ptr %347, ptr %20, align 8
  %348 = extractvalue { ptr, i32 } %346, 1
  store i32 %348, ptr %21, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #10
  br label %534

349:                                              ; preds = %286
  %350 = landingpad { ptr, i32 }
          cleanup
  %351 = extractvalue { ptr, i32 } %350, 0
  store ptr %351, ptr %20, align 8
  %352 = extractvalue { ptr, i32 } %350, 1
  store i32 %352, ptr %21, align 4
  br label %533

353:                                              ; preds = %289
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %20, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %21, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #10
  br label %533

357:                                              ; preds = %523, %521, %509, %290
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %20, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %21, align 4
  br label %532

361:                                              ; preds = %302
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %20, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %21, align 4
  br label %508

365:                                              ; preds = %305
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %20, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %21, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %41) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #10
  br label %508

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

373:                                              ; preds = %309
  %374 = landingpad { ptr, i32 }
          cleanup
  %375 = extractvalue { ptr, i32 } %374, 0
  store ptr %375, ptr %20, align 8
  %376 = extractvalue { ptr, i32 } %374, 1
  store i32 %376, ptr %21, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %43) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #10
  br label %507

377:                                              ; preds = %313
  %378 = landingpad { ptr, i32 }
          cleanup
  %379 = extractvalue { ptr, i32 } %378, 0
  store ptr %379, ptr %20, align 8
  %380 = extractvalue { ptr, i32 } %378, 1
  store i32 %380, ptr %21, align 4
  br label %496

381:                                              ; preds = %326
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %20, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %21, align 4
  br label %399

385:                                              ; preds = %335
  %386 = landingpad { ptr, i32 }
          cleanup
  %387 = extractvalue { ptr, i32 } %386, 0
  store ptr %387, ptr %20, align 8
  %388 = extractvalue { ptr, i32 } %386, 1
  store i32 %388, ptr %21, align 4
  br label %398

389:                                              ; preds = %338
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %20, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %21, align 4
  br label %397

393:                                              ; preds = %340, %339
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %20, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %21, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #10
  br label %397

397:                                              ; preds = %393, %389
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #10
  br label %398

398:                                              ; preds = %397, %385
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #10
  br label %399

399:                                              ; preds = %398, %381
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #10
  %400 = load i1, ptr %52, align 1
  br i1 %400, label %401, label %402

401:                                              ; preds = %399
  call void @__cxa_free_exception(ptr %327) #10
  br label %402

402:                                              ; preds = %401, %399
  br label %496

403:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  %404 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  %405 = getelementptr inbounds %"struct.std::pair.156", ptr %404, i32 0, i32 1
  store ptr %405, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #10
  %406 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  %407 = icmp uge i64 %406, 3
  br i1 %407, label %408, label %418

408:                                              ; preds = %403
  %409 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  %410 = load i8, ptr %409, align 1, !tbaa !41
  %411 = sext i8 %410 to i32
  %412 = icmp eq i32 %411, 123
  br i1 %412, label %413, label %418

413:                                              ; preds = %408
  %414 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  %415 = load i8, ptr %414, align 1, !tbaa !41
  %416 = sext i8 %415 to i32
  %417 = icmp eq i32 %416, 125
  br label %418

418:                                              ; preds = %413, %408, %403
  %419 = phi i1 [ false, %408 ], [ false, %403 ], [ %417, %413 ]
  %420 = zext i1 %419 to i8
  store i8 %420, ptr %54, align 1, !tbaa !42
  %421 = load i8, ptr %54, align 1, !tbaa !42, !range !44, !noundef !45
  %422 = trunc i8 %421 to i1
  br i1 %422, label %493, label %423

423:                                              ; preds = %418
  %424 = load ptr, ptr %53, align 8, !tbaa !5
  %425 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8TypeInfo9converterEv(ptr noundef nonnull align 8 dereferenceable(72) %424)
          to label %426 unwind label %446

426:                                              ; preds = %423
  %427 = call noundef zeroext i1 @_ZNKSt8functionIFN2BT3AnyESt17basic_string_viewIcSt11char_traitsIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(32) %425) #10
  br i1 %427, label %428, label %493

428:                                              ; preds = %426
  %429 = load ptr, ptr %53, align 8, !tbaa !5
  %430 = invoke noundef zeroext i1 @_ZNK2BT8TypeInfo15isStronglyTypedEv(ptr noundef nonnull align 8 dereferenceable(72) %429)
          to label %431 unwind label %446

431:                                              ; preds = %428
  br i1 %430, label %432, label %493

432:                                              ; preds = %431
  %433 = load ptr, ptr %53, align 8, !tbaa !5
  %434 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8TypeInfo9converterEv(ptr noundef nonnull align 8 dereferenceable(72) %433)
          to label %435 unwind label %450

435:                                              ; preds = %432
  %436 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  %437 = getelementptr inbounds { i64, ptr }, ptr %56, i32 0, i32 0
  %438 = extractvalue { i64, ptr } %436, 0
  store i64 %438, ptr %437, align 8
  %439 = getelementptr inbounds { i64, ptr }, ptr %56, i32 0, i32 1
  %440 = extractvalue { i64, ptr } %436, 1
  store ptr %440, ptr %439, align 8
  %441 = getelementptr inbounds { i64, ptr }, ptr %56, i32 0, i32 0
  %442 = load i64, ptr %441, align 8
  %443 = getelementptr inbounds { i64, ptr }, ptr %56, i32 0, i32 1
  %444 = load ptr, ptr %443, align 8
  invoke void @_ZNKSt8functionIFN2BT3AnyESt17basic_string_viewIcSt11char_traitsIcEEEEclES5_(ptr dead_on_unwind writable sret(%"class.BT::Any") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %434, i64 %442, ptr %444)
          to label %445 unwind label %450

445:                                              ; preds = %435
  call void @_ZN2BT3AnyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  br label %492

446:                                              ; preds = %428, %423
  %447 = landingpad { ptr, i32 }
          cleanup
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %20, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %21, align 4
  br label %494

450:                                              ; preds = %435, %432
  %451 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %20, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %21, align 4
  br label %454

454:                                              ; preds = %450
  %455 = load i32, ptr %21, align 4
  %456 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #10
  %457 = icmp eq i32 %455, %456
  br i1 %457, label %458, label %494

458:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  %459 = load ptr, ptr %20, align 8
  %460 = call ptr @__cxa_begin_catch(ptr %459) #10
  store ptr %460, ptr %57, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef @.str.54) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #10
  %461 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  %462 = getelementptr inbounds { i64, ptr }, ptr %60, i32 0, i32 0
  %463 = extractvalue { i64, ptr } %461, 0
  store i64 %463, ptr %462, align 8
  %464 = getelementptr inbounds { i64, ptr }, ptr %60, i32 0, i32 1
  %465 = extractvalue { i64, ptr } %461, 1
  store ptr %465, ptr %464, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef @.str.55) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %62) #10
  %466 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  %467 = getelementptr inbounds { i64, ptr }, ptr %62, i32 0, i32 0
  %468 = extractvalue { i64, ptr } %466, 0
  store i64 %468, ptr %467, align 8
  %469 = getelementptr inbounds { i64, ptr }, ptr %62, i32 0, i32 1
  %470 = extractvalue { i64, ptr } %466, 1
  store ptr %470, ptr %469, align 8
  %471 = load ptr, ptr %53, align 8, !tbaa !5
  %472 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8TypeInfo8typeNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72) %471)
          to label %473 unwind label %477

473:                                              ; preds = %458
  invoke void @_ZN2BT6StrCatIJA27_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES7_RKSt17basic_string_viewIcS5_ESB_SB_SB_DpRKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 1 dereferenceable(27) @.str.56, ptr noundef nonnull align 8 dereferenceable(32) %472)
          to label %474 unwind label %477

474:                                              ; preds = %473
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #10
  %475 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT10LogicErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %475, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %476 unwind label %481

476:                                              ; preds = %474
  invoke void @__cxa_throw(ptr %475, ptr @_ZTIN2BT10LogicErrorE, ptr @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %1188 unwind label %485

477:                                              ; preds = %473, %458
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %20, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #10
  br label %490

481:                                              ; preds = %474
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %20, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %21, align 4
  call void @__cxa_free_exception(ptr %475) #10
  br label %489

485:                                              ; preds = %476
  %486 = landingpad { ptr, i32 }
          cleanup
  %487 = extractvalue { ptr, i32 } %486, 0
  store ptr %487, ptr %20, align 8
  %488 = extractvalue { ptr, i32 } %486, 1
  store i32 %488, ptr %21, align 4
  br label %489

489:                                              ; preds = %485, %481
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #10
  br label %490

490:                                              ; preds = %489, %477
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #10
  invoke void @__cxa_end_catch()
          to label %491 unwind label %1185

491:                                              ; preds = %490
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  br label %494

492:                                              ; preds = %445
  br label %493

493:                                              ; preds = %492, %431, %426, %418
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  br label %495

494:                                              ; preds = %491, %454, %446
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  br label %496

495:                                              ; preds = %493
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  br label %497

496:                                              ; preds = %494, %402, %377
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  br label %506

497:                                              ; preds = %495, %310
  %498 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(56) %32, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %499 unwind label %502

499:                                              ; preds = %497
  %500 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %498, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %501 unwind label %502

501:                                              ; preds = %499
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  br label %527

502:                                              ; preds = %499, %497
  %503 = landingpad { ptr, i32 }
          cleanup
  %504 = extractvalue { ptr, i32 } %503, 0
  store ptr %504, ptr %20, align 8
  %505 = extractvalue { ptr, i32 } %503, 1
  store i32 %505, ptr %21, align 4
  br label %506

506:                                              ; preds = %502, %496
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  br label %507

507:                                              ; preds = %506, %373, %369
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %508

508:                                              ; preds = %507, %365, %361
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  br label %532

509:                                              ; preds = %301
  %510 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  %511 = getelementptr inbounds { i64, ptr }, ptr %63, i32 0, i32 0
  %512 = extractvalue { i64, ptr } %510, 0
  store i64 %512, ptr %511, align 8
  %513 = getelementptr inbounds { i64, ptr }, ptr %63, i32 0, i32 1
  %514 = extractvalue { i64, ptr } %510, 1
  store ptr %514, ptr %513, align 8
  %515 = getelementptr inbounds { i64, ptr }, ptr %63, i32 0, i32 0
  %516 = load i64, ptr %515, align 8
  %517 = getelementptr inbounds { i64, ptr }, ptr %63, i32 0, i32 1
  %518 = load ptr, ptr %517, align 8
  %519 = invoke noundef zeroext i1 @_ZN2BT19IsReservedAttributeESt17basic_string_viewIcSt11char_traitsIcEE(i64 %516, ptr %518)
          to label %520 unwind label %357

520:                                              ; preds = %509
  br i1 %519, label %526, label %521

521:                                              ; preds = %520
  %522 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(56) %33, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %523 unwind label %357

523:                                              ; preds = %521
  %524 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %522, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %525 unwind label %357

525:                                              ; preds = %523
  br label %526

526:                                              ; preds = %525, %520
  br label %527

527:                                              ; preds = %526, %501
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #10
  br label %528

528:                                              ; preds = %527
  %529 = load ptr, ptr %34, align 8, !tbaa !5
  %530 = invoke noundef ptr @_ZNK8tinyxml212XMLAttribute4NextEv(ptr noundef nonnull align 8 dereferenceable(80) %529)
          to label %531 unwind label %278

531:                                              ; preds = %528
  store ptr %530, ptr %34, align 8, !tbaa !5
  br label %274, !llvm.loop !46

532:                                              ; preds = %508, %357
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  br label %533

533:                                              ; preds = %532, %353, %349
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  br label %534

534:                                              ; preds = %533, %345, %341
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #10
  br label %535

535:                                              ; preds = %534, %278
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  br label %1175

536:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 344, ptr %64) #10
  invoke void @_ZN2BT10NodeConfigC2Ev(ptr noundef nonnull align 8 dereferenceable(344) %64)
          to label %537 unwind label %561

537:                                              ; preds = %536
  %538 = load ptr, ptr %11, align 8, !tbaa !5
  %539 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 0
  %540 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN2BT10BlackboardEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %539, ptr noundef nonnull align 8 dereferenceable(16) %538) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #10
  %541 = load ptr, ptr %13, align 8, !tbaa !5
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(32) %541, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %542 unwind label %565

542:                                              ; preds = %537
  %543 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 7
  %544 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %543, ptr noundef nonnull align 8 dereferenceable(32) %65) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #10
  %545 = load ptr, ptr %14, align 8, !tbaa !5
  %546 = invoke noundef zeroext i16 @_ZN2BT4Tree6getUIDEv(ptr noundef nonnull align 8 dereferenceable(98) %545)
          to label %547 unwind label %569

547:                                              ; preds = %542
  %548 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 6
  store i16 %546, ptr %548, align 8, !tbaa !48
  %549 = load ptr, ptr %29, align 8, !tbaa !5
  %550 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 5
  store ptr %549, ptr %550, align 8, !tbaa !71
  %551 = 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) %19, ptr noundef nonnull align 8 dereferenceable(32) %25) #10
  br i1 %551, label %552, label %587

552:                                              ; preds = %547
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %68) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef @.str.57, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %553 unwind label %573

553:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #10
  %554 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 6
  %555 = load i16, ptr %554, align 8, !tbaa !48
  %556 = zext i16 %555 to i32
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, i32 noundef %556) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %557 unwind label %577

557:                                              ; preds = %553
  %558 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 7
  %559 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %558, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %560 unwind label %581

560:                                              ; preds = %557
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #10
  br label %587

561:                                              ; preds = %536
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %20, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %21, align 4
  br label %1174

565:                                              ; preds = %537
  %566 = landingpad { ptr, i32 }
          cleanup
  %567 = extractvalue { ptr, i32 } %566, 0
  store ptr %567, ptr %20, align 8
  %568 = extractvalue { ptr, i32 } %566, 1
  store i32 %568, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #10
  br label %1173

569:                                              ; preds = %542
  %570 = landingpad { ptr, i32 }
          cleanup
  %571 = extractvalue { ptr, i32 } %570, 0
  store ptr %571, ptr %20, align 8
  %572 = extractvalue { ptr, i32 } %570, 1
  store i32 %572, ptr %21, align 4
  br label %1173

573:                                              ; preds = %552
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %20, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %21, align 4
  br label %586

577:                                              ; preds = %553
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %20, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %21, align 4
  br label %585

581:                                              ; preds = %557
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %20, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %21, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #10
  br label %585

585:                                              ; preds = %581, %577
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  br label %586

586:                                              ; preds = %585, %573
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #10
  br label %1173

587:                                              ; preds = %560, %547
  call void @llvm.lifetime.start.p0(i64 16, ptr %70) #10
  %588 = getelementptr inbounds %class.anon.173, ptr %70, i32 0, i32 0
  store ptr %10, ptr %588, align 8, !tbaa !5
  %589 = getelementptr inbounds %class.anon.173, ptr %70, i32 0, i32 1
  store ptr %33, ptr %589, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  store i32 0, ptr %71, align 4, !tbaa !72
  br label %590

590:                                              ; preds = %601, %587
  %591 = load i32, ptr %71, align 4, !tbaa !72
  %592 = icmp slt i32 %591, 4
  br i1 %592, label %594, label %593

593:                                              ; preds = %590
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %613

594:                                              ; preds = %590
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %595 = load i32, ptr %71, align 4, !tbaa !72
  store i32 %595, ptr %72, align 4, !tbaa !73
  %596 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #10
  invoke void @_ZN2BT5toStrINS_7PreCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 4 dereferenceable(4) %72)
          to label %597 unwind label %604

597:                                              ; preds = %594
  %598 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  %599 = load i32, ptr %72, align 4, !tbaa !73
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_7PreCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 8 dereferenceable(48) %596, ptr noundef %598, i32 noundef %599)
          to label %600 unwind label %608

600:                                              ; preds = %597
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %601

601:                                              ; preds = %600
  %602 = load i32, ptr %71, align 4, !tbaa !72
  %603 = add nsw i32 %602, 1
  store i32 %603, ptr %71, align 4, !tbaa !72
  br label %590, !llvm.loop !75

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

608:                                              ; preds = %597
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %20, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %21, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  br label %612

612:                                              ; preds = %608, %604
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %1172

613:                                              ; preds = %593
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  store i32 0, ptr %74, align 4, !tbaa !72
  br label %614

614:                                              ; preds = %625, %613
  %615 = load i32, ptr %74, align 4, !tbaa !72
  %616 = icmp slt i32 %615, 4
  br i1 %616, label %618, label %617

617:                                              ; preds = %614
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %637

618:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %619 = load i32, ptr %74, align 4, !tbaa !72
  store i32 %619, ptr %75, align 4, !tbaa !76
  %620 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 9
  call void @llvm.lifetime.start.p0(i64 32, ptr %76) #10
  invoke void @_ZN2BT5toStrINS_8PostCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 4 dereferenceable(4) %75)
          to label %621 unwind label %628

621:                                              ; preds = %618
  %622 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  %623 = load i32, ptr %75, align 4, !tbaa !76
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_8PostCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 8 dereferenceable(48) %620, ptr noundef %622, i32 noundef %623)
          to label %624 unwind label %632

624:                                              ; preds = %621
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %625

625:                                              ; preds = %624
  %626 = load i32, ptr %74, align 4, !tbaa !72
  %627 = add nsw i32 %626, 1
  store i32 %627, ptr %74, align 4, !tbaa !72
  br label %614, !llvm.loop !78

628:                                              ; preds = %618
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %20, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %21, align 4
  br label %636

632:                                              ; preds = %621
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %20, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %21, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #10
  br label %636

636:                                              ; preds = %632, %628
  call void @llvm.lifetime.end.p0(i64 32, ptr %76) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %1172

637:                                              ; preds = %617
  %638 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 4
  %639 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEaSERKSE_(ptr noundef nonnull align 8 dereferenceable(56) %638, ptr noundef nonnull align 8 dereferenceable(56) %33)
          to label %640 unwind label %657

640:                                              ; preds = %637
  store i1 false, ptr %77, align 1
  call void @_ZNSt10shared_ptrIN2BT8TreeNodeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  %641 = load i32, ptr %17, align 4, !tbaa !9
  %642 = icmp eq i32 %641, 5
  br i1 %642, label %643, label %688

643:                                              ; preds = %640
  %644 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 2
  %645 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEaSERKSE_(ptr noundef nonnull align 8 dereferenceable(56) %644, ptr noundef nonnull align 8 dereferenceable(56) %32)
          to label %646 unwind label %661

646:                                              ; preds = %643
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #10
  %647 = getelementptr inbounds %"struct.BT::XMLParser::PImpl", ptr %140, i32 0, i32 2
  %648 = load ptr, ptr %647, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  store i32 5, ptr %80, align 4, !tbaa !9
  invoke void @_ZN2BT5toStrINS_8NodeTypeEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %649 unwind label %665

649:                                              ; preds = %646
  invoke void @_ZNK2BT19BehaviorTreeFactory19instantiateTreeNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKNS_10NodeConfigE(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.174") align 8 %78, ptr noundef nonnull align 8 dereferenceable(8) %648, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(344) %64)
          to label %650 unwind label %669

650:                                              ; preds = %649
  %651 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN2BT8TreeNodeEEaSIS1_St14default_deleteIS1_EEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EESt10unique_ptrIT_T0_EEE5valueERS2_E4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(8) %78)
          to label %652 unwind label %673

652:                                              ; preds = %650
  call void @_ZNSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #10
  %653 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  %654 = icmp eq ptr %653, null
  br i1 %654, label %679, label %655

655:                                              ; preds = %652
  %656 = call ptr @__dynamic_cast(ptr %653, ptr @_ZTIN2BT8TreeNodeE, ptr @_ZTIN2BT11SubTreeNodeE, i64 0) #10
  br label %680

657:                                              ; preds = %637
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %20, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %21, align 4
  br label %1172

661:                                              ; preds = %643
  %662 = landingpad { ptr, i32 }
          cleanup
  %663 = extractvalue { ptr, i32 } %662, 0
  store ptr %663, ptr %20, align 8
  %664 = extractvalue { ptr, i32 } %662, 1
  store i32 %664, ptr %21, align 4
  br label %1171

665:                                              ; preds = %646
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %20, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %21, align 4
  br label %678

669:                                              ; preds = %649
  %670 = landingpad { ptr, i32 }
          cleanup
  %671 = extractvalue { ptr, i32 } %670, 0
  store ptr %671, ptr %20, align 8
  %672 = extractvalue { ptr, i32 } %670, 1
  store i32 %672, ptr %21, align 4
  br label %677

673:                                              ; preds = %650
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %20, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %21, align 4
  call void @_ZNSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #10
  br label %677

677:                                              ; preds = %673, %669
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #10
  br label %678

678:                                              ; preds = %677, %665
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #10
  br label %1171

679:                                              ; preds = %652
  br label %680

680:                                              ; preds = %679, %655
  %681 = phi ptr [ %656, %655 ], [ null, %679 ]
  store ptr %681, ptr %81, align 8, !tbaa !5
  %682 = load ptr, ptr %81, align 8, !tbaa !5
  invoke void @_ZN2BT11SubTreeNode12setSubtreeIDERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(56) %682, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %683 unwind label %684

683:                                              ; preds = %680
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  br label %1123

684:                                              ; preds = %680
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %20, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #10
  br label %1171

688:                                              ; preds = %640
  %689 = load ptr, ptr %29, align 8, !tbaa !5
  %690 = icmp ne ptr %689, null
  br i1 %690, label %710, label %691

691:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 32, ptr %82) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %83) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef @.str.58) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %84) #10
  %692 = load ptr, ptr %16, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef %692) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %85) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %85, ptr noundef @.str.59) #10
  invoke void @_ZN2BT6StrCatB5cxx11ERKSt17basic_string_viewIcSt11char_traitsIcEES5_S5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull align 8 dereferenceable(16) %84, ptr noundef nonnull align 8 dereferenceable(16) %85)
          to label %693 unwind label %696

693:                                              ; preds = %691
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #10
  %694 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT12RuntimeErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %694, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %695 unwind label %700

695:                                              ; preds = %693
  invoke void @__cxa_throw(ptr %694, ptr @_ZTIN2BT12RuntimeErrorE, ptr @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %1188 unwind label %704

696:                                              ; preds = %691
  %697 = landingpad { ptr, i32 }
          cleanup
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %20, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %85) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %84) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #10
  br label %709

700:                                              ; preds = %693
  %701 = landingpad { ptr, i32 }
          cleanup
  %702 = extractvalue { ptr, i32 } %701, 0
  store ptr %702, ptr %20, align 8
  %703 = extractvalue { ptr, i32 } %701, 1
  store i32 %703, ptr %21, align 4
  call void @__cxa_free_exception(ptr %694) #10
  br label %708

704:                                              ; preds = %695
  %705 = landingpad { ptr, i32 }
          cleanup
  %706 = extractvalue { ptr, i32 } %705, 0
  store ptr %706, ptr %20, align 8
  %707 = extractvalue { ptr, i32 } %705, 1
  store i32 %707, ptr %21, align 4
  br label %708

708:                                              ; preds = %704, %700
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  br label %709

709:                                              ; preds = %708, %696
  call void @llvm.lifetime.end.p0(i64 32, ptr %82) #10
  br label %1171

710:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  store ptr %32, ptr %86, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #10
  %711 = load ptr, ptr %86, align 8, !tbaa !5
  %712 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %711) #10
  %713 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.182", ptr %87, i32 0, i32 0
  %714 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.183", ptr %713, i32 0, i32 0
  store ptr %712, ptr %714, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #10
  %715 = load ptr, ptr %86, align 8, !tbaa !5
  %716 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %715) #10
  %717 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.182", ptr %88, i32 0, i32 0
  %718 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.183", ptr %717, i32 0, i32 0
  store ptr %716, ptr %718, align 8
  br label %719

719:                                              ; preds = %748, %710
  %720 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(8) %88) #10
  br i1 %720, label %722, label %721

721:                                              ; preds = %719
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  br label %751

722:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #10
  %723 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  store ptr %723, ptr %89, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #10
  %724 = load ptr, ptr %89, align 8, !tbaa !5
  %725 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSB_(ptr noundef nonnull align 8 dereferenceable(64) %724) #10
  store ptr %725, ptr %90, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #10
  %726 = load ptr, ptr %89, align 8, !tbaa !5
  %727 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSB_(ptr noundef nonnull align 8 dereferenceable(64) %726) #10
  store ptr %727, ptr %91, align 8, !tbaa !5
  %728 = load ptr, ptr %29, align 8, !tbaa !5
  %729 = getelementptr inbounds %"struct.BT::TreeNodeManifest", ptr %728, i32 0, i32 2
  %730 = load ptr, ptr %90, align 8, !tbaa !5
  %731 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %729, ptr noundef nonnull align 8 dereferenceable(32) %730)
          to label %732 unwind label %739

732:                                              ; preds = %722
  %733 = icmp eq i64 %731, 0
  br i1 %733, label %734, label %747

734:                                              ; preds = %732
  %735 = call ptr @__cxa_allocate_exception(i64 40) #10
  %736 = load ptr, ptr %90, align 8, !tbaa !5
  %737 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 7
  invoke void @_ZN2BT12RuntimeErrorC2IJA53_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA12_cS8_A7_cS8_A80_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %735, ptr noundef nonnull align 1 dereferenceable(53) @.str.60, ptr noundef nonnull align 8 dereferenceable(32) %736, ptr noundef nonnull align 1 dereferenceable(12) @.str.61, ptr noundef nonnull align 8 dereferenceable(32) %737, ptr noundef nonnull align 1 dereferenceable(7) @.str.62, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 1 dereferenceable(80) @.str.63)
          to label %738 unwind label %743

738:                                              ; preds = %734
  invoke void @__cxa_throw(ptr %735, ptr @_ZTIN2BT12RuntimeErrorE, ptr @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %1188 unwind label %739

739:                                              ; preds = %738, %722
  %740 = landingpad { ptr, i32 }
          cleanup
  %741 = extractvalue { ptr, i32 } %740, 0
  store ptr %741, ptr %20, align 8
  %742 = extractvalue { ptr, i32 } %740, 1
  store i32 %742, ptr %21, align 4
  br label %750

743:                                              ; preds = %734
  %744 = landingpad { ptr, i32 }
          cleanup
  %745 = extractvalue { ptr, i32 } %744, 0
  store ptr %745, ptr %20, align 8
  %746 = extractvalue { ptr, i32 } %744, 1
  store i32 %746, ptr %21, align 4
  call void @__cxa_free_exception(ptr %735) #10
  br label %750

747:                                              ; preds = %732
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  br label %748

748:                                              ; preds = %747
  %749 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  br label %719

750:                                              ; preds = %743, %739
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  br label %1171

751:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  %752 = load ptr, ptr %29, align 8, !tbaa !5
  %753 = getelementptr inbounds %"struct.BT::TreeNodeManifest", ptr %752, i32 0, i32 2
  store ptr %753, ptr %92, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %93) #10
  %754 = load ptr, ptr %92, align 8, !tbaa !5
  %755 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %754) #10
  %756 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.154", ptr %93, i32 0, i32 0
  %757 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.155", ptr %756, i32 0, i32 0
  store ptr %755, ptr %757, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #10
  %758 = load ptr, ptr %92, align 8, !tbaa !5
  %759 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %758) #10
  %760 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.154", ptr %94, i32 0, i32 0
  %761 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.155", ptr %760, i32 0, i32 0
  store ptr %759, ptr %761, align 8
  br label %762

762:                                              ; preds = %921, %751
  %763 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(8) %94) #10
  br i1 %763, label %765, label %764

764:                                              ; preds = %762
  store i32 13, ptr %95, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %925

765:                                              ; preds = %762
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #10
  %766 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %93) #10
  store ptr %766, ptr %96, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  %767 = load ptr, ptr %96, align 8, !tbaa !5
  %768 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSD_(ptr noundef nonnull align 8 dereferenceable(208) %767) #10
  store ptr %768, ptr %97, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #10
  %769 = load ptr, ptr %96, align 8, !tbaa !5
  %770 = call noundef nonnull align 8 dereferenceable(176) ptr @_ZSt3getILm1EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSD_(ptr noundef nonnull align 8 dereferenceable(208) %769) #10
  store ptr %770, ptr %98, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #10
  %771 = load ptr, ptr %97, align 8, !tbaa !5
  %772 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %32, ptr noundef nonnull align 8 dereferenceable(32) %771)
          to label %773 unwind label %781

773:                                              ; preds = %765
  %774 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.182", ptr %99, i32 0, i32 0
  %775 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.183", ptr %774, i32 0, i32 0
  store ptr %772, ptr %775, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #10
  %776 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %32) #10
  %777 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.182", ptr %100, i32 0, i32 0
  %778 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.183", ptr %777, i32 0, i32 0
  store ptr %776, ptr %778, align 8
  %779 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %100) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #10
  br i1 %779, label %780, label %785

780:                                              ; preds = %773
  store i32 14, ptr %95, align 4
  br label %915

781:                                              ; preds = %765
  %782 = landingpad { ptr, i32 }
          cleanup
  %783 = extractvalue { ptr, i32 } %782, 0
  store ptr %783, ptr %20, align 8
  %784 = extractvalue { ptr, i32 } %782, 1
  store i32 %784, ptr %21, align 4
  br label %924

785:                                              ; preds = %773
  call void @llvm.lifetime.start.p0(i64 16, ptr %101) #10
  %786 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %99) #10
  %787 = getelementptr inbounds %"struct.std::pair.184", ptr %786, i32 0, i32 1
  %788 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %787) #10
  %789 = getelementptr inbounds { i64, ptr }, ptr %101, i32 0, i32 0
  %790 = extractvalue { i64, ptr } %788, 0
  store i64 %790, ptr %789, align 8
  %791 = getelementptr inbounds { i64, ptr }, ptr %101, i32 0, i32 1
  %792 = extractvalue { i64, ptr } %788, 1
  store ptr %792, ptr %791, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr %102) #10
  %793 = load ptr, ptr %97, align 8, !tbaa !5
  %794 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %793) #10
  %795 = getelementptr inbounds { i64, ptr }, ptr %103, i32 0, i32 0
  %796 = extractvalue { i64, ptr } %794, 0
  store i64 %796, ptr %795, align 8
  %797 = getelementptr inbounds { i64, ptr }, ptr %103, i32 0, i32 1
  %798 = extractvalue { i64, ptr } %794, 1
  store ptr %798, ptr %797, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %104, ptr align 8 %101, i64 16, i1 false), !tbaa.struct !79
  %799 = getelementptr inbounds { i64, ptr }, ptr %103, i32 0, i32 0
  %800 = load i64, ptr %799, align 8
  %801 = getelementptr inbounds { i64, ptr }, ptr %103, i32 0, i32 1
  %802 = load ptr, ptr %801, align 8
  %803 = getelementptr inbounds { i64, ptr }, ptr %104, i32 0, i32 0
  %804 = load i64, ptr %803, align 8
  %805 = getelementptr inbounds { i64, ptr }, ptr %104, i32 0, i32 1
  %806 = load ptr, ptr %805, align 8
  invoke void @_ZN2BT8TreeNode14getRemappedKeyB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEES4_(ptr dead_on_unwind writable sret(%"class.nonstd::expected_lite::expected.186") align 8 %102, i64 %800, ptr %802, i64 %804, ptr %806)
          to label %807 unwind label %862

807:                                              ; preds = %785
  %808 = call noundef zeroext i1 @_ZNK6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %102) #10
  br i1 %808, label %809, label %914

809:                                              ; preds = %807
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #10
  %810 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNR6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEE5valueEv(ptr noundef nonnull align 8 dereferenceable(40) %102)
          to label %811 unwind label %866

811:                                              ; preds = %809
  call void @llvm.lifetime.start.p0(i64 1, ptr %106) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ISt17basic_string_viewIcS2_EvEERKT_RKS3_(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(16) %810, ptr noundef nonnull align 1 dereferenceable(1) %106)
          to label %812 unwind label %870

812:                                              ; preds = %811
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #10
  %813 = load ptr, ptr %11, align 8, !tbaa !5
  %814 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN2BT10BlackboardELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %813) #10
  %815 = invoke noundef ptr @_ZN2BT10Blackboard9entryInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(217) %814, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %816 unwind label %874

816:                                              ; preds = %812
  store ptr %815, ptr %107, align 8, !tbaa !5
  %817 = load ptr, ptr %107, align 8, !tbaa !5
  %818 = icmp ne ptr %817, null
  br i1 %818, label %819, label %906

819:                                              ; preds = %816
  call void @llvm.lifetime.start.p0(i64 1, ptr %108) #10
  %820 = load ptr, ptr %107, align 8, !tbaa !5
  %821 = invoke noundef zeroext i1 @_ZNK2BT8TypeInfo15isStronglyTypedEv(ptr noundef nonnull align 8 dereferenceable(72) %820)
          to label %822 unwind label %878

822:                                              ; preds = %819
  br i1 %821, label %823, label %835

823:                                              ; preds = %822
  %824 = load ptr, ptr %98, align 8, !tbaa !5
  %825 = invoke noundef zeroext i1 @_ZNK2BT8TypeInfo15isStronglyTypedEv(ptr noundef nonnull align 8 dereferenceable(72) %824)
          to label %826 unwind label %878

826:                                              ; preds = %823
  br i1 %825, label %827, label %835

827:                                              ; preds = %826
  %828 = load ptr, ptr %107, align 8, !tbaa !5
  %829 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %828)
          to label %830 unwind label %878

830:                                              ; preds = %827
  %831 = load ptr, ptr %98, align 8, !tbaa !5
  %832 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %831)
          to label %833 unwind label %878

833:                                              ; preds = %830
  %834 = call noundef zeroext i1 @_ZNKSt10type_indexneERKS_(ptr noundef nonnull align 8 dereferenceable(8) %829, ptr noundef nonnull align 8 dereferenceable(8) %832) #10
  br label %835

835:                                              ; preds = %833, %826, %822
  %836 = phi i1 [ false, %826 ], [ false, %822 ], [ %834, %833 ]
  %837 = zext i1 %836 to i8
  store i8 %837, ptr %108, align 1, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %109) #10
  %838 = load ptr, ptr %107, align 8, !tbaa !5
  %839 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %838)
          to label %840 unwind label %882

840:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #10
  call void @_ZNSt10type_indexC2ERKSt9type_info(ptr noundef nonnull align 8 dereferenceable(8) %110, ptr noundef nonnull align 8 dereferenceable(16) @_ZTINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE) #10
  %841 = call noundef zeroext i1 @_ZNKSt10type_indexeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %839, ptr noundef nonnull align 8 dereferenceable(8) %110) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #10
  %842 = zext i1 %841 to i8
  store i8 %842, ptr %109, align 1, !tbaa !42
  %843 = load i8, ptr %108, align 1, !tbaa !42, !range !44, !noundef !45
  %844 = trunc i8 %843 to i1
  br i1 %844, label %845, label %903

845:                                              ; preds = %840
  %846 = load i8, ptr %109, align 1, !tbaa !42, !range !44, !noundef !45
  %847 = trunc i8 %846 to i1
  br i1 %847, label %903, label %848

848:                                              ; preds = %845
  %849 = load ptr, ptr %11, align 8, !tbaa !5
  %850 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN2BT10BlackboardELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %849) #10
  invoke void @_ZNK2BT10Blackboard12debugMessageEv(ptr noundef nonnull align 8 dereferenceable(217) %850)
          to label %851 unwind label %882

851:                                              ; preds = %848
  store i1 true, ptr %113, align 1
  %852 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %111) #10
  %853 = load ptr, ptr %107, align 8, !tbaa !5
  %854 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %853)
          to label %855 unwind label %886

855:                                              ; preds = %851
  invoke void @_ZN2BT8demangleB5cxx11ERKSt10type_index(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %111, ptr noundef nonnull align 8 dereferenceable(8) %854)
          to label %856 unwind label %886

856:                                              ; preds = %855
  call void @llvm.lifetime.start.p0(i64 32, ptr %112) #10
  %857 = load ptr, ptr %98, align 8, !tbaa !5
  %858 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %857)
          to label %859 unwind label %890

859:                                              ; preds = %856
  invoke void @_ZN2BT8demangleB5cxx11ERKSt10type_index(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %112, ptr noundef nonnull align 8 dereferenceable(8) %858)
          to label %860 unwind label %890

860:                                              ; preds = %859
  invoke void @_ZN2BT12RuntimeErrorC2IJA51_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cS8_A20_cS8_A27_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %852, ptr noundef nonnull align 1 dereferenceable(51) @.str.64, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 1 dereferenceable(36) @.str.65, ptr noundef nonnull align 8 dereferenceable(32) %111, ptr noundef nonnull align 1 dereferenceable(20) @.str.66, ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull align 1 dereferenceable(27) @.str.67)
          to label %861 unwind label %894

861:                                              ; preds = %860
  store i1 false, ptr %113, align 1
  invoke void @__cxa_throw(ptr %852, ptr @_ZTIN2BT12RuntimeErrorE, ptr @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %1188 unwind label %894

862:                                              ; preds = %785
  %863 = landingpad { ptr, i32 }
          cleanup
  %864 = extractvalue { ptr, i32 } %863, 0
  store ptr %864, ptr %20, align 8
  %865 = extractvalue { ptr, i32 } %863, 1
  store i32 %865, ptr %21, align 4
  br label %923

866:                                              ; preds = %809
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %20, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %21, align 4
  br label %913

870:                                              ; preds = %811
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %20, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %21, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %106) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #10
  br label %913

874:                                              ; preds = %906, %812
  %875 = landingpad { ptr, i32 }
          cleanup
  %876 = extractvalue { ptr, i32 } %875, 0
  store ptr %876, ptr %20, align 8
  %877 = extractvalue { ptr, i32 } %875, 1
  store i32 %877, ptr %21, align 4
  br label %912

878:                                              ; preds = %830, %827, %823, %819
  %879 = landingpad { ptr, i32 }
          cleanup
  %880 = extractvalue { ptr, i32 } %879, 0
  store ptr %880, ptr %20, align 8
  %881 = extractvalue { ptr, i32 } %879, 1
  store i32 %881, ptr %21, align 4
  br label %905

882:                                              ; preds = %848, %835
  %883 = landingpad { ptr, i32 }
          cleanup
  %884 = extractvalue { ptr, i32 } %883, 0
  store ptr %884, ptr %20, align 8
  %885 = extractvalue { ptr, i32 } %883, 1
  store i32 %885, ptr %21, align 4
  br label %904

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

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

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

898:                                              ; preds = %894, %890
  call void @llvm.lifetime.end.p0(i64 32, ptr %112) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %111) #10
  br label %899

899:                                              ; preds = %898, %886
  call void @llvm.lifetime.end.p0(i64 32, ptr %111) #10
  %900 = load i1, ptr %113, align 1
  br i1 %900, label %901, label %902

901:                                              ; preds = %899
  call void @__cxa_free_exception(ptr %852) #10
  br label %902

902:                                              ; preds = %901, %899
  br label %904

903:                                              ; preds = %845, %840
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #10
  br label %911

904:                                              ; preds = %902, %882
  call void @llvm.lifetime.end.p0(i64 1, ptr %109) #10
  br label %905

905:                                              ; preds = %904, %878
  call void @llvm.lifetime.end.p0(i64 1, ptr %108) #10
  br label %912

906:                                              ; preds = %816
  %907 = load ptr, ptr %11, align 8, !tbaa !5
  %908 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN2BT10BlackboardELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %907) #10
  %909 = load ptr, ptr %98, align 8, !tbaa !5
  invoke void @_ZN2BT10Blackboard11createEntryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8TypeInfoE(ptr noundef nonnull align 8 dereferenceable(217) %908, ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 8 dereferenceable(72) %909)
          to label %910 unwind label %874

910:                                              ; preds = %906
  br label %911

911:                                              ; preds = %910, %903
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #10
  br label %914

912:                                              ; preds = %905, %874
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #10
  br label %913

913:                                              ; preds = %912, %870, %866
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #10
  call void @_ZN6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %102) #10
  br label %923

914:                                              ; preds = %911, %807
  call void @_ZN6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %102) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #10
  store i32 0, ptr %95, align 4
  br label %915

915:                                              ; preds = %914, %780
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  %916 = load i32, ptr %95, align 4
  switch i32 %916, label %918 [
    i32 0, label %917
  ]

917:                                              ; preds = %915
  store i32 0, ptr %95, align 4
  br label %918

918:                                              ; preds = %917, %915
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  %919 = load i32, ptr %95, align 4
  switch i32 %919, label %1188 [
    i32 0, label %920
    i32 14, label %921
  ]

920:                                              ; preds = %918
  br label %921

921:                                              ; preds = %920, %918
  %922 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %93) #10
  br label %762

923:                                              ; preds = %913, %862
  call void @llvm.lifetime.end.p0(i64 40, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #10
  br label %924

924:                                              ; preds = %923, %781
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %93) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %1171

925:                                              ; preds = %764
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #10
  store ptr %32, ptr %114, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  %926 = load ptr, ptr %114, align 8, !tbaa !5
  %927 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %926) #10
  %928 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.182", ptr %115, i32 0, i32 0
  %929 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.183", ptr %928, i32 0, i32 0
  store ptr %927, ptr %929, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #10
  %930 = load ptr, ptr %114, align 8, !tbaa !5
  %931 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %930) #10
  %932 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.182", ptr %116, i32 0, i32 0
  %933 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.183", ptr %932, i32 0, i32 0
  store ptr %931, ptr %933, align 8
  br label %934

934:                                              ; preds = %992, %925
  %935 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 8 dereferenceable(8) %116) #10
  br i1 %935, label %937, label %936

936:                                              ; preds = %934
  store i32 15, ptr %95, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #10
  br label %995

937:                                              ; preds = %934
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #10
  %938 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %115) #10
  store ptr %938, ptr %117, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %118) #10
  %939 = load ptr, ptr %117, align 8, !tbaa !5
  %940 = getelementptr inbounds %"struct.std::pair.184", ptr %939, i32 0, i32 0
  store ptr %940, ptr %118, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %119) #10
  %941 = load ptr, ptr %29, align 8, !tbaa !5
  %942 = getelementptr inbounds %"struct.BT::TreeNodeManifest", ptr %941, i32 0, i32 2
  %943 = load ptr, ptr %118, align 8, !tbaa !5
  %944 = invoke ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE4findERSD_(ptr noundef nonnull align 8 dereferenceable(56) %942, ptr noundef nonnull align 8 dereferenceable(32) %943)
          to label %945 unwind label %970

945:                                              ; preds = %937
  %946 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.154", ptr %119, i32 0, i32 0
  %947 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.155", ptr %946, i32 0, i32 0
  store ptr %944, ptr %947, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %120) #10
  %948 = load ptr, ptr %29, align 8, !tbaa !5
  %949 = getelementptr inbounds %"struct.BT::TreeNodeManifest", ptr %948, i32 0, i32 2
  %950 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %949) #10
  %951 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.154", ptr %120, i32 0, i32 0
  %952 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.155", ptr %951, i32 0, i32 0
  store ptr %950, ptr %952, align 8
  %953 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %119, ptr noundef nonnull align 8 dereferenceable(8) %120) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %120) #10
  br i1 %953, label %954, label %991

954:                                              ; preds = %945
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %955 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %119) #10
  %956 = getelementptr inbounds %"struct.std::pair.156", ptr %955, i32 0, i32 1
  %957 = invoke noundef i32 @_ZNK2BT8PortInfo9directionEv(ptr noundef nonnull align 8 dereferenceable(176) %956)
          to label %958 unwind label %974

958:                                              ; preds = %954
  store i32 %957, ptr %121, align 4, !tbaa !81
  %959 = load i32, ptr %121, align 4, !tbaa !81
  %960 = icmp ne i32 %959, 1
  br i1 %960, label %961, label %978

961:                                              ; preds = %958
  %962 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 2
  %963 = load ptr, ptr %117, align 8, !tbaa !5
  %964 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertERKSC_(ptr noundef nonnull align 8 dereferenceable(56) %962, ptr noundef nonnull align 8 dereferenceable(64) %963)
          to label %965 unwind label %974

965:                                              ; preds = %961
  %966 = getelementptr inbounds { ptr, i8 }, ptr %122, i32 0, i32 0
  %967 = extractvalue { ptr, i8 } %964, 0
  store ptr %967, ptr %966, align 8
  %968 = getelementptr inbounds { ptr, i8 }, ptr %122, i32 0, i32 1
  %969 = extractvalue { ptr, i8 } %964, 1
  store i8 %969, ptr %968, align 8
  br label %978

970:                                              ; preds = %937
  %971 = landingpad { ptr, i32 }
          cleanup
  %972 = extractvalue { ptr, i32 } %971, 0
  store ptr %972, ptr %20, align 8
  %973 = extractvalue { ptr, i32 } %971, 1
  store i32 %973, ptr %21, align 4
  br label %994

974:                                              ; preds = %981, %961, %954
  %975 = landingpad { ptr, i32 }
          cleanup
  %976 = extractvalue { ptr, i32 } %975, 0
  store ptr %976, ptr %20, align 8
  %977 = extractvalue { ptr, i32 } %975, 1
  store i32 %977, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %994

978:                                              ; preds = %965, %958
  %979 = load i32, ptr %121, align 4, !tbaa !81
  %980 = icmp ne i32 %979, 0
  br i1 %980, label %981, label %990

981:                                              ; preds = %978
  %982 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 3
  %983 = load ptr, ptr %117, align 8, !tbaa !5
  %984 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertERKSC_(ptr noundef nonnull align 8 dereferenceable(56) %982, ptr noundef nonnull align 8 dereferenceable(64) %983)
          to label %985 unwind label %974

985:                                              ; preds = %981
  %986 = getelementptr inbounds { ptr, i8 }, ptr %123, i32 0, i32 0
  %987 = extractvalue { ptr, i8 } %984, 0
  store ptr %987, ptr %986, align 8
  %988 = getelementptr inbounds { ptr, i8 }, ptr %123, i32 0, i32 1
  %989 = extractvalue { ptr, i8 } %984, 1
  store i8 %989, ptr %988, align 8
  br label %990

990:                                              ; preds = %985, %978
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %991

991:                                              ; preds = %990, %945
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #10
  br label %992

992:                                              ; preds = %991
  %993 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %115) #10
  br label %934

994:                                              ; preds = %974, %970
  call void @llvm.lifetime.end.p0(i64 8, ptr %119) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %118) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #10
  br label %1171

995:                                              ; preds = %936
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  %996 = load ptr, ptr %29, align 8, !tbaa !5
  %997 = getelementptr inbounds %"struct.BT::TreeNodeManifest", ptr %996, i32 0, i32 2
  store ptr %997, ptr %124, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #10
  %998 = load ptr, ptr %124, align 8, !tbaa !5
  %999 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %998) #10
  %1000 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.154", ptr %125, i32 0, i32 0
  %1001 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.155", ptr %1000, i32 0, i32 0
  store ptr %999, ptr %1001, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #10
  %1002 = load ptr, ptr %124, align 8, !tbaa !5
  %1003 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %1002) #10
  %1004 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.154", ptr %126, i32 0, i32 0
  %1005 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.155", ptr %1004, i32 0, i32 0
  store ptr %1003, ptr %1005, align 8
  br label %1006

1006:                                             ; preds = %1104, %995
  %1007 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef nonnull align 8 dereferenceable(8) %126) #10
  br i1 %1007, label %1009, label %1008

1008:                                             ; preds = %1006
  store i32 17, ptr %95, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  br label %1108

1009:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #10
  %1010 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %125) #10
  store ptr %1010, ptr %127, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  %1011 = load ptr, ptr %127, align 8, !tbaa !5
  %1012 = getelementptr inbounds %"struct.std::pair.156", ptr %1011, i32 0, i32 0
  store ptr %1012, ptr %128, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %129) #10
  %1013 = load ptr, ptr %127, align 8, !tbaa !5
  %1014 = getelementptr inbounds %"struct.std::pair.156", ptr %1013, i32 0, i32 1
  store ptr %1014, ptr %129, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %1015 = load ptr, ptr %129, align 8, !tbaa !5
  %1016 = invoke noundef i32 @_ZNK2BT8PortInfo9directionEv(ptr noundef nonnull align 8 dereferenceable(176) %1015)
          to label %1017 unwind label %1043

1017:                                             ; preds = %1009
  store i32 %1016, ptr %130, align 4, !tbaa !81
  call void @llvm.lifetime.start.p0(i64 8, ptr %131) #10
  %1018 = load ptr, ptr %129, align 8, !tbaa !5
  %1019 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8PortInfo18defaultValueStringB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(176) %1018)
          to label %1020 unwind label %1047

1020:                                             ; preds = %1017
  store ptr %1019, ptr %131, align 8, !tbaa !5
  %1021 = load ptr, ptr %131, align 8, !tbaa !5
  %1022 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %1021) #10
  br i1 %1022, label %1103, label %1023

1023:                                             ; preds = %1020
  %1024 = load i32, ptr %130, align 4, !tbaa !81
  %1025 = icmp ne i32 %1024, 1
  br i1 %1025, label %1026, label %1060

1026:                                             ; preds = %1023
  %1027 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 2
  %1028 = load ptr, ptr %128, align 8, !tbaa !5
  %1029 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE5countERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1027, ptr noundef nonnull align 8 dereferenceable(32) %1028)
          to label %1030 unwind label %1047

1030:                                             ; preds = %1026
  %1031 = icmp eq i64 %1029, 0
  br i1 %1031, label %1032, label %1060

1032:                                             ; preds = %1030
  %1033 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 64, ptr %132) #10
  %1034 = load ptr, ptr %128, align 8, !tbaa !5
  %1035 = load ptr, ptr %131, align 8, !tbaa !5
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EC2IS6_S5_TnNSt9enable_ifIXaaclsr5_PCCPE18_ConstructiblePairIT_T0_EEclsr5_PCCPE26_ImplicitlyConvertiblePairISA_SB_EEEbE4typeELb1EEERS6_SE_(ptr noundef nonnull align 8 dereferenceable(64) %132, ptr noundef nonnull align 8 dereferenceable(32) %1034, ptr noundef nonnull align 8 dereferenceable(32) %1035)
          to label %1036 unwind label %1051

1036:                                             ; preds = %1032
  %1037 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56) %1033, ptr noundef nonnull align 8 dereferenceable(64) %132)
          to label %1038 unwind label %1055

1038:                                             ; preds = %1036
  %1039 = getelementptr inbounds { ptr, i8 }, ptr %133, i32 0, i32 0
  %1040 = extractvalue { ptr, i8 } %1037, 0
  store ptr %1040, ptr %1039, align 8
  %1041 = getelementptr inbounds { ptr, i8 }, ptr %133, i32 0, i32 1
  %1042 = extractvalue { ptr, i8 } %1037, 1
  store i8 %1042, ptr %1041, align 8
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %132) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %132) #10
  br label %1060

1043:                                             ; preds = %1009
  %1044 = landingpad { ptr, i32 }
          cleanup
  %1045 = extractvalue { ptr, i32 } %1044, 0
  store ptr %1045, ptr %20, align 8
  %1046 = extractvalue { ptr, i32 } %1044, 1
  store i32 %1046, ptr %21, align 4
  br label %1107

1047:                                             ; preds = %1069, %1063, %1026, %1017
  %1048 = landingpad { ptr, i32 }
          cleanup
  %1049 = extractvalue { ptr, i32 } %1048, 0
  store ptr %1049, ptr %20, align 8
  %1050 = extractvalue { ptr, i32 } %1048, 1
  store i32 %1050, ptr %21, align 4
  br label %1106

1051:                                             ; preds = %1032
  %1052 = landingpad { ptr, i32 }
          cleanup
  %1053 = extractvalue { ptr, i32 } %1052, 0
  store ptr %1053, ptr %20, align 8
  %1054 = extractvalue { ptr, i32 } %1052, 1
  store i32 %1054, ptr %21, align 4
  br label %1059

1055:                                             ; preds = %1036
  %1056 = landingpad { ptr, i32 }
          cleanup
  %1057 = extractvalue { ptr, i32 } %1056, 0
  store ptr %1057, ptr %20, align 8
  %1058 = extractvalue { ptr, i32 } %1056, 1
  store i32 %1058, ptr %21, align 4
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %132) #10
  br label %1059

1059:                                             ; preds = %1055, %1051
  call void @llvm.lifetime.end.p0(i64 64, ptr %132) #10
  br label %1106

1060:                                             ; preds = %1038, %1030, %1023
  %1061 = load i32, ptr %130, align 4, !tbaa !81
  %1062 = icmp ne i32 %1061, 0
  br i1 %1062, label %1063, label %1102

1063:                                             ; preds = %1060
  %1064 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 3
  %1065 = load ptr, ptr %128, align 8, !tbaa !5
  %1066 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE5countERSB_(ptr noundef nonnull align 8 dereferenceable(56) %1064, ptr noundef nonnull align 8 dereferenceable(32) %1065)
          to label %1067 unwind label %1047

1067:                                             ; preds = %1063
  %1068 = icmp eq i64 %1066, 0
  br i1 %1068, label %1069, label %1102

1069:                                             ; preds = %1067
  %1070 = load ptr, ptr %131, align 8, !tbaa !5
  %1071 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1070) #10
  %1072 = getelementptr inbounds { i64, ptr }, ptr %134, i32 0, i32 0
  %1073 = extractvalue { i64, ptr } %1071, 0
  store i64 %1073, ptr %1072, align 8
  %1074 = getelementptr inbounds { i64, ptr }, ptr %134, i32 0, i32 1
  %1075 = extractvalue { i64, ptr } %1071, 1
  store ptr %1075, ptr %1074, align 8
  %1076 = getelementptr inbounds { i64, ptr }, ptr %134, i32 0, i32 0
  %1077 = load i64, ptr %1076, align 8
  %1078 = getelementptr inbounds { i64, ptr }, ptr %134, i32 0, i32 1
  %1079 = load ptr, ptr %1078, align 8
  %1080 = invoke noundef zeroext i1 @_ZN2BT8TreeNode19isBlackboardPointerESt17basic_string_viewIcSt11char_traitsIcEEPS4_(i64 %1077, ptr %1079, ptr noundef null)
          to label %1081 unwind label %1047

1081:                                             ; preds = %1069
  br i1 %1080, label %1082, label %1102

1082:                                             ; preds = %1081
  %1083 = getelementptr inbounds %"struct.BT::NodeConfig", ptr %64, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 64, ptr %135) #10
  %1084 = load ptr, ptr %128, align 8, !tbaa !5
  %1085 = load ptr, ptr %131, align 8, !tbaa !5
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EC2IS6_S5_TnNSt9enable_ifIXaaclsr5_PCCPE18_ConstructiblePairIT_T0_EEclsr5_PCCPE26_ImplicitlyConvertiblePairISA_SB_EEEbE4typeELb1EEERS6_SE_(ptr noundef nonnull align 8 dereferenceable(64) %135, ptr noundef nonnull align 8 dereferenceable(32) %1084, ptr noundef nonnull align 8 dereferenceable(32) %1085)
          to label %1086 unwind label %1093

1086:                                             ; preds = %1082
  %1087 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56) %1083, ptr noundef nonnull align 8 dereferenceable(64) %135)
          to label %1088 unwind label %1097

1088:                                             ; preds = %1086
  %1089 = getelementptr inbounds { ptr, i8 }, ptr %136, i32 0, i32 0
  %1090 = extractvalue { ptr, i8 } %1087, 0
  store ptr %1090, ptr %1089, align 8
  %1091 = getelementptr inbounds { ptr, i8 }, ptr %136, i32 0, i32 1
  %1092 = extractvalue { ptr, i8 } %1087, 1
  store i8 %1092, ptr %1091, align 8
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %135) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr %135) #10
  br label %1102

1093:                                             ; preds = %1082
  %1094 = landingpad { ptr, i32 }
          cleanup
  %1095 = extractvalue { ptr, i32 } %1094, 0
  store ptr %1095, ptr %20, align 8
  %1096 = extractvalue { ptr, i32 } %1094, 1
  store i32 %1096, ptr %21, align 4
  br label %1101

1097:                                             ; preds = %1086
  %1098 = landingpad { ptr, i32 }
          cleanup
  %1099 = extractvalue { ptr, i32 } %1098, 0
  store ptr %1099, ptr %20, align 8
  %1100 = extractvalue { ptr, i32 } %1098, 1
  store i32 %1100, ptr %21, align 4
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %135) #10
  br label %1101

1101:                                             ; preds = %1097, %1093
  call void @llvm.lifetime.end.p0(i64 64, ptr %135) #10
  br label %1106

1102:                                             ; preds = %1088, %1081, %1067, %1060
  br label %1103

1103:                                             ; preds = %1102, %1020
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  br label %1104

1104:                                             ; preds = %1103
  %1105 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %125) #10
  br label %1006

1106:                                             ; preds = %1101, %1059, %1047
  call void @llvm.lifetime.end.p0(i64 8, ptr %131) #10
  br label %1107

1107:                                             ; preds = %1106, %1043
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %129) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  br label %1171

1108:                                             ; preds = %1008
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #10
  %1109 = getelementptr inbounds %"struct.BT::XMLParser::PImpl", ptr %140, i32 0, i32 2
  %1110 = load ptr, ptr %1109, align 8, !tbaa !11
  invoke void @_ZNK2BT19BehaviorTreeFactory19instantiateTreeNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKNS_10NodeConfigE(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.174") align 8 %137, ptr noundef nonnull align 8 dereferenceable(8) %1110, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(344) %64)
          to label %1111 unwind label %1114

1111:                                             ; preds = %1108
  %1112 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN2BT8TreeNodeEEaSIS1_St14default_deleteIS1_EEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EESt10unique_ptrIT_T0_EEE5valueERS2_E4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(8) %137)
          to label %1113 unwind label %1118

1113:                                             ; preds = %1111
  call void @_ZNSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #10
  br label %1123

1114:                                             ; preds = %1108
  %1115 = landingpad { ptr, i32 }
          cleanup
  %1116 = extractvalue { ptr, i32 } %1115, 0
  store ptr %1116, ptr %20, align 8
  %1117 = extractvalue { ptr, i32 } %1115, 1
  store i32 %1117, ptr %21, align 4
  br label %1122

1118:                                             ; preds = %1111
  %1119 = landingpad { ptr, i32 }
          cleanup
  %1120 = extractvalue { ptr, i32 } %1119, 0
  store ptr %1120, ptr %20, align 8
  %1121 = extractvalue { ptr, i32 } %1119, 1
  store i32 %1121, ptr %21, align 4
  call void @_ZNSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %137) #10
  br label %1122

1122:                                             ; preds = %1118, %1114
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #10
  br label %1171

1123:                                             ; preds = %1113, %683
  %1124 = load ptr, ptr %12, align 8, !tbaa !5
  %1125 = call noundef zeroext i1 @_ZStneIN2BT8TreeNodeEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %1124, ptr null) #10
  br i1 %1125, label %1126, label %1167

1126:                                             ; preds = %1123
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #10
  %1127 = load ptr, ptr %12, align 8, !tbaa !5
  %1128 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %1127) #10
  %1129 = icmp eq ptr %1128, null
  br i1 %1129, label %1132, label %1130

1130:                                             ; preds = %1126
  %1131 = call ptr @__dynamic_cast(ptr %1128, ptr @_ZTIN2BT8TreeNodeE, ptr @_ZTIN2BT11ControlNodeE, i64 0) #10
  br label %1133

1132:                                             ; preds = %1126
  br label %1133

1133:                                             ; preds = %1132, %1130
  %1134 = phi ptr [ %1131, %1130 ], [ null, %1132 ]
  store ptr %1134, ptr %138, align 8, !tbaa !5
  %1135 = load ptr, ptr %138, align 8, !tbaa !5
  %1136 = icmp ne ptr %1135, null
  br i1 %1136, label %1137, label %1145

1137:                                             ; preds = %1133
  %1138 = load ptr, ptr %138, align 8, !tbaa !5
  %1139 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  invoke void @_ZN2BT11ControlNode8addChildEPNS_8TreeNodeE(ptr noundef nonnull align 8 dereferenceable(40) %1138, ptr noundef %1139)
          to label %1140 unwind label %1141

1140:                                             ; preds = %1137
  br label %1165

1141:                                             ; preds = %1137
  %1142 = landingpad { ptr, i32 }
          cleanup
  %1143 = extractvalue { ptr, i32 } %1142, 0
  store ptr %1143, ptr %20, align 8
  %1144 = extractvalue { ptr, i32 } %1142, 1
  store i32 %1144, ptr %21, align 4
  br label %1166

1145:                                             ; preds = %1133
  call void @llvm.lifetime.start.p0(i64 8, ptr %139) #10
  %1146 = load ptr, ptr %12, align 8, !tbaa !5
  %1147 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %1146) #10
  %1148 = icmp eq ptr %1147, null
  br i1 %1148, label %1151, label %1149

1149:                                             ; preds = %1145
  %1150 = call ptr @__dynamic_cast(ptr %1147, ptr @_ZTIN2BT8TreeNodeE, ptr @_ZTIN2BT13DecoratorNodeE, i64 0) #10
  br label %1152

1151:                                             ; preds = %1145
  br label %1152

1152:                                             ; preds = %1151, %1149
  %1153 = phi ptr [ %1150, %1149 ], [ null, %1151 ]
  store ptr %1153, ptr %139, align 8, !tbaa !5
  %1154 = load ptr, ptr %139, align 8, !tbaa !5
  %1155 = icmp ne ptr %1154, null
  br i1 %1155, label %1156, label %1164

1156:                                             ; preds = %1152
  %1157 = load ptr, ptr %139, align 8, !tbaa !5
  %1158 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  invoke void @_ZN2BT13DecoratorNode8setChildEPNS_8TreeNodeE(ptr noundef nonnull align 8 dereferenceable(24) %1157, ptr noundef %1158)
          to label %1159 unwind label %1160

1159:                                             ; preds = %1156
  br label %1164

1160:                                             ; preds = %1156
  %1161 = landingpad { ptr, i32 }
          cleanup
  %1162 = extractvalue { ptr, i32 } %1161, 0
  store ptr %1162, ptr %20, align 8
  %1163 = extractvalue { ptr, i32 } %1161, 1
  store i32 %1163, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  br label %1166

1164:                                             ; preds = %1159, %1152
  call void @llvm.lifetime.end.p0(i64 8, ptr %139) #10
  br label %1165

1165:                                             ; preds = %1164, %1140
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  br label %1167

1166:                                             ; preds = %1160, %1141
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #10
  br label %1171

1167:                                             ; preds = %1165, %1123
  store i1 true, ptr %77, align 1
  store i32 1, ptr %95, align 4
  %1168 = load i1, ptr %77, align 1
  br i1 %1168, label %1170, label %1169

1169:                                             ; preds = %1167
  call void @_ZNSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  br label %1170

1170:                                             ; preds = %1169, %1167
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #10
  call void @_ZN2BT10NodeConfigD2Ev(ptr noundef nonnull align 8 dereferenceable(344) %64) #10
  call void @llvm.lifetime.end.p0(i64 344, ptr %64) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %33) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %33) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %32) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  ret void

1171:                                             ; preds = %1166, %1122, %1107, %994, %924, %750, %709, %684, %678, %661
  call void @_ZNSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  br label %1172

1172:                                             ; preds = %1171, %657, %636, %612
  call void @llvm.lifetime.end.p0(i64 16, ptr %70) #10
  br label %1173

1173:                                             ; preds = %1172, %586, %569, %565
  call void @_ZN2BT10NodeConfigD2Ev(ptr noundef nonnull align 8 dereferenceable(344) %64) #10
  br label %1174

1174:                                             ; preds = %1173, %561
  call void @llvm.lifetime.end.p0(i64 344, ptr %64) #10
  br label %1175

1175:                                             ; preds = %1174, %535
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %33) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %33) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %32) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr %32) #10
  br label %1176

1176:                                             ; preds = %1175, %266, %262
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #10
  br label %1177

1177:                                             ; preds = %1176, %261
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #10
  br label %1178

1178:                                             ; preds = %1177, %248
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #10
  br label %1179

1179:                                             ; preds = %1178, %203, %192, %179, %178, %166
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  br label %1180

1180:                                             ; preds = %1179
  %1181 = load ptr, ptr %20, align 8
  %1182 = load i32, ptr %21, align 4
  %1183 = insertvalue { ptr, i32 } poison, ptr %1181, 0
  %1184 = insertvalue { ptr, i32 } %1183, i32 %1182, 1
  resume { ptr, i32 } %1184

1185:                                             ; preds = %490
  %1186 = landingpad { ptr, i32 }
          catch ptr null
  %1187 = extractvalue { ptr, i32 } %1186, 0
  call void @__clang_call_terminate(ptr %1187) #12
  unreachable

1188:                                             ; preds = %918, %861, %738, %695, %476, %340, %202, %191, %165
  unreachable
}

declare noundef i32 @_ZN2BT17convertFromStringINS_8NodeTypeEEET_St17basic_string_viewIcSt11char_traitsIcEE(i64, ptr) #3

declare noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory8buildersB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #0 align 2

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

declare noundef ptr @_ZNK8tinyxml212XMLAttribute4NameEv(ptr noundef nonnull align 8 dereferenceable(80)) #3

declare noundef ptr @_ZNK8tinyxml212XMLAttribute5ValueEv(ptr noundef nonnull align 8 dereferenceable(80)) #3

declare noundef zeroext i1 @_ZN2BT17IsAllowedPortNameESt17basic_string_viewIcSt11char_traitsIcEE(i64, ptr) #3

; Function Attrs: mustprogress nounwind uwtable
declare { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8tinyxml212XMLAttribute10GetLineNumEv(ptr noundef nonnull align 8 dereferenceable(80)) #0 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt8functionIFN2BT3AnyESt17basic_string_viewIcSt11char_traitsIcEEEEclES5_(ptr dead_on_unwind noalias writable sret(%"class.BT::Any") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64, ptr) #2 align 2

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

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #6

declare ptr @__cxa_begin_catch(ptr)

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

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8TypeInfo8typeNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72)) #3

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

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

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #7

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

declare noundef zeroext i1 @_ZN2BT19IsReservedAttributeESt17basic_string_viewIcSt11char_traitsIcEE(i64, ptr) #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2BT10NodeConfigC2Ev(ptr noundef nonnull align 8 dereferenceable(344)) unnamed_addr #0 align 2

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

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

declare noundef zeroext i16 @_ZN2BT4Tree6getUIDEv(ptr noundef nonnull align 8 dereferenceable(98)) #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_7PreCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i32 noundef) #5 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_8PostCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i32 noundef) #5 align 2

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

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

declare void @_ZNK2BT19BehaviorTreeFactory19instantiateTreeNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKNS_10NodeConfigE(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.174") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(344)) #3

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

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

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

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

; Function Attrs: nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) #8

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSB_(ptr noundef nonnull align 8 dereferenceable(64)) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSB_(ptr noundef nonnull align 8 dereferenceable(64)) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2BT12RuntimeErrorC2IJA53_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA12_cS8_A7_cS8_A80_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(53), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(80)) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSD_(ptr noundef nonnull align 8 dereferenceable(208)) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(176) ptr @_ZSt3getILm1EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSD_(ptr noundef nonnull align 8 dereferenceable(208)) #0

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

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

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

declare void @_ZN2BT8TreeNode14getRemappedKeyB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEES4_(ptr dead_on_unwind writable sret(%"class.nonstd::expected_lite::expected.186") align 8, i64, ptr, i64, ptr) #3

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40)) #0 align 2

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

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

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

declare noundef ptr @_ZN2BT10Blackboard9entryInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(217), ptr noundef nonnull align 8 dereferenceable(32)) #3

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72)) #3

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

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

declare void @_ZNK2BT10Blackboard12debugMessageEv(ptr noundef nonnull align 8 dereferenceable(217)) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2BT12RuntimeErrorC2IJA51_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cS8_A20_cS8_A27_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(51), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(27)) unnamed_addr #2 align 2

declare void @_ZN2BT10Blackboard11createEntryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8TypeInfoE(ptr noundef nonnull align 8 dereferenceable(217), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(72)) #3

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

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

declare noundef i32 @_ZNK2BT8PortInfo9directionEv(ptr noundef nonnull align 8 dereferenceable(176)) #3

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertERKSC_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8PortInfo18defaultValueStringB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(176)) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(64)) #2 align 2

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

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

declare noundef zeroext i1 @_ZN2BT8TreeNode19isBlackboardPointerESt17basic_string_viewIcSt11char_traitsIcEEPS4_(i64, ptr, ptr noundef) #3

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

declare void @_ZN2BT11ControlNode8addChildEPNS_8TreeNodeE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) #3

declare void @_ZN2BT13DecoratorNode8setChildEPNS_8TreeNodeE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) #3

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"_ZTSN2BT8NodeTypeE", !7, i64 0}
!11 = !{!12, !6, i64 72}
!12 = !{!"_ZTSN2BT9XMLParser5PImplE", !13, i64 0, !19, i64 24, !6, i64 72, !27, i64 80, !37, i64 120, !40, i64 168}
!13 = !{!"_ZTSNSt7__cxx114listISt10unique_ptrIN8tinyxml211XMLDocumentESt14default_deleteIS3_EESaIS6_EEE", !14, i64 0}
!14 = !{!"_ZTSNSt7__cxx1110_List_baseISt10unique_ptrIN8tinyxml211XMLDocumentESt14default_deleteIS3_EESaIS6_EEE", !15, i64 0}
!15 = !{!"_ZTSNSt7__cxx1110_List_baseISt10unique_ptrIN8tinyxml211XMLDocumentESt14default_deleteIS3_EESaIS6_EE10_List_implE", !16, i64 0}
!16 = !{!"_ZTSNSt8__detail17_List_node_headerE", !17, i64 0, !18, i64 16}
!17 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!18 = !{!"long", !7, i64 0}
!19 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN8tinyxml210XMLElementESt4lessIS5_ESaISt4pairIKS5_S9_EEE", !20, i64 0}
!20 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PKN8tinyxml210XMLElementEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE", !21, i64 0}
!21 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PKN8tinyxml210XMLElementEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !22, i64 0, !24, i64 8}
!22 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !23, i64 0}
!23 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!24 = !{!"_ZTSSt15_Rb_tree_header", !25, i64 0, !18, i64 32}
!25 = !{!"_ZTSSt18_Rb_tree_node_base", !26, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!26 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!27 = !{!"_ZTSNSt10filesystem7__cxx114pathE", !28, i64 0, !30, i64 32}
!28 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !29, i64 0, !18, i64 8, !7, i64 16}
!29 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!30 = !{!"_ZTSNSt10filesystem7__cxx114path5_ListE", !31, i64 0}
!31 = !{!"_ZTSSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEE", !32, i64 0}
!32 = !{!"_ZTSSt15__uniq_ptr_dataINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterELb1ELb1EE", !33, i64 0}
!33 = !{!"_ZTSSt15__uniq_ptr_implINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEE", !34, i64 0}
!34 = !{!"_ZTSSt5tupleIJPNSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEEE", !35, i64 0}
!35 = !{!"_ZTSSt11_Tuple_implILm0EJPNSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEEE", !36, i64 0}
!36 = !{!"_ZTSSt10_Head_baseILm0EPNSt10filesystem7__cxx114path5_List5_ImplELb0EE", !6, i64 0}
!37 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT12SubtreeModelESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !38, i64 0}
!38 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2BT12SubtreeModelEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !39, i64 0}
!39 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2BT12SubtreeModelEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !22, i64 0, !24, i64 8}
!40 = !{!"int", !7, i64 0}
!41 = !{!7, !7, i64 0}
!42 = !{!43, !43, i64 0}
!43 = !{!"bool", !7, i64 0}
!44 = !{i8 0, i8 2}
!45 = !{}
!46 = distinct !{!46, !47}
!47 = !{!"llvm.loop.mustprogress"}
!48 = !{!49, !60, i64 208}
!49 = !{!"_ZTSN2BT10NodeConfigE", !50, i64 0, !53, i64 16, !55, i64 32, !55, i64 88, !55, i64 144, !6, i64 200, !60, i64 208, !28, i64 216, !61, i64 248, !66, i64 296}
!50 = !{!"_ZTSSt10shared_ptrIN2BT10BlackboardEE", !51, i64 0}
!51 = !{!"_ZTSSt12__shared_ptrIN2BT10BlackboardELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !52, i64 8}
!52 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!53 = !{!"_ZTSSt10shared_ptrISt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS6_ESt8equal_toIS6_ESaISt4pairIKS6_iEEEE", !54, i64 0}
!54 = !{!"_ZTSSt12__shared_ptrISt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS6_ESt8equal_toIS6_ESaISt4pairIKS6_iEEELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !52, i64 8}
!55 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE", !56, i64 0}
!56 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !18, i64 8, !57, i64 16, !18, i64 24, !58, i64 32, !6, i64 48}
!57 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!58 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !59, i64 0, !18, i64 8}
!59 = !{!"float", !7, i64 0}
!60 = !{!"short", !7, i64 0}
!61 = !{!"_ZTSSt3mapIN2BT7PreCondENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !62, i64 0}
!62 = !{!"_ZTSSt8_Rb_treeIN2BT7PreCondESt4pairIKS1_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !63, i64 0}
!63 = !{!"_ZTSNSt8_Rb_treeIN2BT7PreCondESt4pairIKS1_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !64, i64 0, !24, i64 8}
!64 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN2BT7PreCondEEE", !65, i64 0}
!65 = !{!"_ZTSSt4lessIN2BT7PreCondEE"}
!66 = !{!"_ZTSSt3mapIN2BT8PostCondENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !67, i64 0}
!67 = !{!"_ZTSSt8_Rb_treeIN2BT8PostCondESt4pairIKS1_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !68, i64 0}
!68 = !{!"_ZTSNSt8_Rb_treeIN2BT8PostCondESt4pairIKS1_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !69, i64 0, !24, i64 8}
!69 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN2BT8PostCondEEE", !70, i64 0}
!70 = !{!"_ZTSSt4lessIN2BT8PostCondEE"}
!71 = !{!49, !6, i64 200}
!72 = !{!40, !40, i64 0}
!73 = !{!74, !74, i64 0}
!74 = !{!"_ZTSN2BT7PreCondE", !7, i64 0}
!75 = distinct !{!75, !47}
!76 = !{!77, !77, i64 0}
!77 = !{!"_ZTSN2BT8PostCondE", !7, i64 0}
!78 = distinct !{!78, !47}
!79 = !{i64 0, i64 8, !80, i64 8, i64 8, !5}
!80 = !{!18, !18, i64 0}
!81 = !{!82, !82, i64 0}
!82 = !{!"_ZTSN2BT13PortDirectionE", !7, i64 0}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::shared_ptr.123" = type { %"class.std::__shared_ptr.124" }
%"class.std::__shared_ptr.124" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::basic_string_view" = type { i64, ptr }
%"class.std::allocator" = type { i8 }
%"struct.std::__detail::_Node_const_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"class.std::unordered_map.140" = type { %"class.std::_Hashtable.141" }
%"class.std::_Hashtable.141" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"struct.std::__detail::_Node_const_iterator.154" = type { %"struct.std::__detail::_Node_iterator_base.155" }
%"struct.std::__detail::_Node_iterator_base.155" = type { ptr }
%"class.BT::Any" = type { %"class.linb::any", %"struct.std::type_index" }
%"class.linb::any" = type { %"union.linb::any::storage_union", ptr }
%"union.linb::any::storage_union" = type { ptr, [8 x i8] }
%"struct.std::type_index" = type { ptr }
%"struct.BT::NodeConfig" = type { %"class.std::shared_ptr.120", %"class.std::shared_ptr.158", %"class.std::unordered_map.140", %"class.std::unordered_map.140", %"class.std::unordered_map.140", ptr, i16, %"class.std::__cxx11::basic_string", %"class.std::map.161", %"class.std::map.167" }
%"class.std::shared_ptr.120" = type { %"class.std::__shared_ptr.121" }
%"class.std::__shared_ptr.121" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.158" = type { %"class.std::__shared_ptr.159" }
%"class.std::__shared_ptr.159" = type { ptr, %"class.std::__shared_count" }
%"class.std::map.161" = type { %"class.std::_Rb_tree.162" }
%"class.std::_Rb_tree.162" = type { %"struct.std::_Rb_tree<BT::PreCond, std::pair<const BT::PreCond, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const BT::PreCond, std::__cxx11::basic_string<char>>>, std::less<BT::PreCond>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<BT::PreCond, std::pair<const BT::PreCond, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const BT::PreCond, std::__cxx11::basic_string<char>>>, std::less<BT::PreCond>>::_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.167" = type { %"class.std::_Rb_tree.168" }
%"class.std::_Rb_tree.168" = type { %"struct.std::_Rb_tree<BT::PostCond, std::pair<const BT::PostCond, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const BT::PostCond, std::__cxx11::basic_string<char>>>, std::less<BT::PostCond>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<BT::PostCond, std::pair<const BT::PostCond, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const BT::PostCond, std::__cxx11::basic_string<char>>>, std::less<BT::PostCond>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%class.anon.173 = type { ptr, ptr }
%"class.std::unique_ptr.174" = type { %"struct.std::__uniq_ptr_data.175" }
%"struct.std::__uniq_ptr_data.175" = type { %"class.std::__uniq_ptr_impl.176" }
%"class.std::__uniq_ptr_impl.176" = type { %"class.std::tuple.177" }
%"class.std::tuple.177" = type { %"struct.std::_Tuple_impl.178" }
%"struct.std::_Tuple_impl.178" = type { %"struct.std::_Head_base.181" }
%"struct.std::_Head_base.181" = type { ptr }
%"struct.std::__detail::_Node_iterator.182" = type { %"struct.std::__detail::_Node_iterator_base.183" }
%"struct.std::__detail::_Node_iterator_base.183" = type { ptr }
%"class.nonstd::expected_lite::expected.186" = type { %"class.nonstd::expected_lite::detail::storage_t.187" }
%"class.nonstd::expected_lite::detail::storage_t.187" = type { %"class.nonstd::expected_lite::detail::storage_t_impl.base.190", [7 x i8] }
%"class.nonstd::expected_lite::detail::storage_t_impl.base.190" = type <{ %union.anon.189, i8 }>
%union.anon.189 = type { %"class.std::__cxx11::basic_string" }
%"struct.std::pair.184" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }

@.str.14 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@_ZTISt9exception = external constant ptr
@_ZTIN2BT12RuntimeErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.46 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [27 x i8], align 1
@_ZTIN2BT10LogicErrorE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.57 = external hidden unnamed_addr constant [3 x i8], align 1
@_ZTIN2BT8TreeNodeE = external constant ptr
@_ZTIN2BT11SubTreeNodeE = external constant ptr
@.str.58 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [80 x i8], align 1
@_ZTINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE = external dso_local constant { ptr, ptr }, align 8
@.str.64 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [27 x i8], align 1
@_ZTIN2BT11ControlNodeE = external constant ptr
@_ZTIN2BT13DecoratorNodeE = external constant ptr

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

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

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

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

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

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

declare noundef ptr @_ZNK8tinyxml210XMLElement9AttributeEPKcS2_(ptr noundef nonnull align 8 dereferenceable(120), ptr noundef, ptr noundef) local_unnamed_addr #3

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

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

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

declare noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory9manifestsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeE(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.123") align 8 %0, ptr nocapture noundef nonnull readonly align 8 dereferenceable(172) %1, ptr noundef nonnull %2, ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %4, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(98) %6) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::basic_string_view", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %17 = alloca %"struct.std::__detail::_Node_const_iterator", align 8
  %18 = alloca %"class.std::unordered_map.140", align 8
  %19 = alloca %"class.std::unordered_map.140", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::allocator", align 1
  %28 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %29 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::basic_string_view", align 8
  %32 = alloca %"class.std::basic_string_view", align 8
  %33 = alloca %"class.std::basic_string_view", align 8
  %34 = alloca %"class.std::basic_string_view", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.BT::Any", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::basic_string_view", align 8
  %39 = alloca %"class.std::basic_string_view", align 8
  %40 = alloca %"class.std::basic_string_view", align 8
  %41 = alloca %"class.std::basic_string_view", align 8
  %42 = alloca %"struct.BT::NodeConfig", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %class.anon.173, align 8
  %49 = alloca i32, align 4
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca i32, align 4
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::unique_ptr.174", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca i32, align 4
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::basic_string_view", align 8
  %58 = alloca %"class.std::basic_string_view", align 8
  %59 = alloca %"class.std::basic_string_view", align 8
  %60 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %61 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %62 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %63 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %64 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %65 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %66 = alloca %"class.nonstd::expected_lite::expected.186", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca %"struct.std::type_index", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %73 = alloca %"struct.std::__detail::_Node_iterator.182", align 8
  %74 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %75 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %76 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %77 = alloca %"struct.std::__detail::_Node_const_iterator.154", align 8
  %78 = alloca %"struct.std::pair.184", align 8
  %79 = alloca %"struct.std::pair.184", align 8
  %80 = alloca %"class.std::unique_ptr.174", align 8
  store ptr %2, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  %81 = tail call noundef ptr @_ZNK8tinyxml210XMLElement4NameEv(ptr noundef nonnull align 8 dereferenceable(120) %2)
  store ptr %81, ptr %9, align 8, !tbaa !5
  %82 = tail call noundef ptr @_ZNK8tinyxml210XMLElement9AttributeEPKcS2_(ptr noundef nonnull align 8 dereferenceable(120) %2, ptr noundef nonnull @.str.14, ptr noundef null)
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef %81) #10
  %83 = load i64, ptr %10, align 8
  %84 = getelementptr inbounds i8, ptr %10, i64 8
  %85 = load ptr, ptr %84, align 8
  %86 = call noundef i32 @_ZN2BT17convertFromStringINS_8NodeTypeEEET_St17basic_string_viewIcSt11char_traitsIcEE(i64 %83, ptr %85)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  %87 = icmp eq i32 %86, 0
  br i1 %87, label %88, label %121

88:                                               ; preds = %7
  %89 = getelementptr inbounds i8, ptr %1, i64 72
  %90 = load ptr, ptr %89, align 8, !tbaa !9
  %91 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory8buildersB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8) %90)
          to label %92 unwind label %99

92:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull %81, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %93 unwind label %103

93:                                               ; preds = %92
  %94 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS9_EERKS5_RKNS8_10NodeConfigEEESt4hashIS5_ESt8equal_toIS5_ESaISt4pairISD_SJ_EEE5countESE_(ptr noundef nonnull align 8 dereferenceable(56) %91, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %95 unwind label %105

95:                                               ; preds = %93
  %96 = icmp eq i64 %94, 0
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  br i1 %96, label %97, label %112

97:                                               ; preds = %95
  %98 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT12RuntimeErrorC2IJPKcA26_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %98, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 1 dereferenceable(26) @.str.46)
          to label %.invoke unwind label %108

99:                                               ; preds = %.invoke, %129, %112, %88
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  %102 = extractvalue { ptr, i32 } %100, 1
  br label %675

103:                                              ; preds = %92
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %107

105:                                              ; preds = %93
  %106 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #10
  br label %107

107:                                              ; preds = %105, %103
  %.pn = phi { ptr, i32 } [ %106, %105 ], [ %104, %103 ]
  %.0 = extractvalue { ptr, i32 } %.pn, 0
  %.0127 = extractvalue { ptr, i32 } %.pn, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  br label %675

108:                                              ; preds = %97
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  %111 = extractvalue { ptr, i32 } %109, 1
  call void @__cxa_free_exception(ptr %98) #10
  br label %675

112:                                              ; preds = %95
  %113 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull %81)
          to label %114 unwind label %99

114:                                              ; preds = %112
  %.not197 = icmp eq ptr %82, null
  br i1 %.not197, label %131, label %115

115:                                              ; preds = %114
  %116 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT12RuntimeErrorC2IJA35_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %116, ptr noundef nonnull align 1 dereferenceable(35) @.str.47, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(2) @.str.48)
          to label %.invoke unwind label %117

117:                                              ; preds = %115
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  %120 = extractvalue { ptr, i32 } %118, 1
  call void @__cxa_free_exception(ptr %116) #10
  br label %675

121:                                              ; preds = %7
  %.not = icmp eq ptr %82, null
  br i1 %.not, label %122, label %129

122:                                              ; preds = %121
  %123 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT12RuntimeErrorC2IJA33_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA2_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %123, ptr noundef nonnull align 1 dereferenceable(33) @.str.49, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(2) @.str.48)
          to label %.invoke unwind label %125

.invoke:                                          ; preds = %97, %122, %115
  %124 = phi ptr [ %116, %115 ], [ %123, %122 ], [ %98, %97 ]
  invoke void @__cxa_throw(ptr nonnull %124, ptr nonnull @_ZTIN2BT12RuntimeErrorE, ptr nonnull @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %.cont unwind label %99

.cont:                                            ; preds = %.invoke
  unreachable

125:                                              ; preds = %122
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  %128 = extractvalue { ptr, i32 } %126, 1
  call void @__cxa_free_exception(ptr %123) #10
  br label %675

129:                                              ; preds = %121
  %130 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull %82)
          to label %131 unwind label %99

131:                                              ; preds = %129, %114
  %132 = load ptr, ptr %8, align 8, !tbaa !5
  %133 = invoke noundef ptr @_ZNK8tinyxml210XMLElement9AttributeEPKcS2_(ptr noundef nonnull align 8 dereferenceable(120) %132, ptr noundef nonnull @.str.18, ptr noundef null)
          to label %134 unwind label %155

134:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #10
  %.not198.not.not = icmp eq ptr %133, null
  br i1 %.not198.not.not, label %136, label %135

135:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull %133, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %140 unwind label %159

136:                                              ; preds = %134
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %.critedge unwind label %.thread260

.thread260:                                       ; preds = %136
  %137 = landingpad { ptr, i32 }
          cleanup
  %138 = extractvalue { ptr, i32 } %137, 0
  %139 = extractvalue { ptr, i32 } %137, 1
  br label %.critedge255

140:                                              ; preds = %135
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #10
  br label %.critedge

.critedge:                                        ; preds = %136, %140
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #10
  %141 = getelementptr inbounds i8, ptr %1, i64 72
  %142 = load ptr, ptr %141, align 8, !tbaa !9
  %143 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory9manifestsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8) %142)
          to label %144 unwind label %163

144:                                              ; preds = %.critedge
  %145 = invoke ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT16TreeNodeManifestESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE4findERSD_(ptr noundef nonnull align 8 dereferenceable(56) %143, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %146 unwind label %163

146:                                              ; preds = %144
  store ptr %145, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #10
  %147 = load ptr, ptr %141, align 8, !tbaa !9
  %148 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory9manifestsB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8) %147)
          to label %149 unwind label %167

149:                                              ; preds = %146
  %150 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT16TreeNodeManifestESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %148) #10
  store ptr %150, ptr %17, align 8
  %151 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT16TreeNodeManifestEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #10
  br i1 %151, label %152, label %171

152:                                              ; preds = %149
  %153 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT16TreeNodeManifestEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #10
  %154 = getelementptr inbounds i8, ptr %153, i64 32
  br label %171

155:                                              ; preds = %131
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  %158 = extractvalue { ptr, i32 } %156, 1
  br label %675

159:                                              ; preds = %135
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  %162 = extractvalue { ptr, i32 } %160, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #10
  br label %.critedge255

163:                                              ; preds = %144, %.critedge
  %164 = landingpad { ptr, i32 }
          cleanup
  %165 = extractvalue { ptr, i32 } %164, 0
  %166 = extractvalue { ptr, i32 } %164, 1
  br label %674

167:                                              ; preds = %146
  %168 = landingpad { ptr, i32 }
          cleanup
  %169 = extractvalue { ptr, i32 } %168, 0
  %170 = extractvalue { ptr, i32 } %168, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #10
  br label %674

171:                                              ; preds = %152, %149
  %.0176 = phi ptr [ %154, %152 ], [ null, %149 ]
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %18) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %18) #10
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %19) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %19) #10
  %172 = load ptr, ptr %8, align 8, !tbaa !5
  %173 = call noundef ptr @_ZNK8tinyxml210XMLElement14FirstAttributeEv(ptr noundef nonnull align 8 dereferenceable(120) %172)
  %.not199313 = icmp eq ptr %173, null
  br i1 %.not199313, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %171
  %.not247 = icmp eq ptr %.0176, null
  %174 = getelementptr inbounds i8, ptr %.0176, i64 40
  br label %176

._crit_edge:                                      ; preds = %334, %171
  call void @llvm.lifetime.start.p0(i64 344, ptr nonnull %42) #10
  call void @_ZN2BT10NodeConfigC2Ev(ptr noundef nonnull align 8 dereferenceable(344) %42)
  %175 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN2BT10BlackboardEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 8 dereferenceable(16) %3) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %339 unwind label %354

176:                                              ; preds = %.lr.ph, %334
  %.0177314 = phi ptr [ %173, %.lr.ph ], [ %335, %334 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #10
  %177 = invoke noundef ptr @_ZNK8tinyxml212XMLAttribute4NameEv(ptr noundef nonnull align 8 dereferenceable(80) %.0177314)
          to label %178 unwind label %212

178:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef %177, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %179 unwind label %216

179:                                              ; preds = %178
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #10
  %180 = invoke noundef ptr @_ZNK8tinyxml212XMLAttribute5ValueEv(ptr noundef nonnull align 8 dereferenceable(80) %.0177314)
          to label %181 unwind label %220

181:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %180, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %182 unwind label %224

182:                                              ; preds = %181
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  %183 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  %184 = extractvalue { i64, ptr } %183, 0
  %185 = extractvalue { i64, ptr } %183, 1
  %186 = invoke noundef zeroext i1 @_ZN2BT17IsAllowedPortNameESt17basic_string_viewIcSt11char_traitsIcEE(i64 %184, ptr %185)
          to label %187 unwind label %228

187:                                              ; preds = %182
  br i1 %186, label %188, label %324

188:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #10
  %189 = invoke noundef ptr @_ZNK8tinyxml212XMLAttribute4NameEv(ptr noundef nonnull align 8 dereferenceable(80) %.0177314)
          to label %190 unwind label %232

190:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef %189, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %191 unwind label %236

191:                                              ; preds = %190
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #10
  %192 = invoke noundef ptr @_ZNK8tinyxml212XMLAttribute5ValueEv(ptr noundef nonnull align 8 dereferenceable(80) %.0177314)
          to label %193 unwind label %240

193:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %27) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef %192, ptr noundef nonnull align 1 dereferenceable(1) %27)
          to label %194 unwind label %244

194:                                              ; preds = %193
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #10
  br i1 %.not247, label %312, label %195

195:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #10
  %196 = invoke ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE4findERSD_(ptr noundef nonnull align 8 dereferenceable(56) %174, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %197 unwind label %248

197:                                              ; preds = %195
  store ptr %196, ptr %28, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  %198 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %174) #10
  store ptr %198, ptr %29, align 8
  %199 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  br i1 %199, label %200, label %257

200:                                              ; preds = %197
  %201 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef @.str.50) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #10
  %202 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  %203 = extractvalue { i64, ptr } %202, 0
  store i64 %203, ptr %32, align 8
  %204 = getelementptr inbounds i8, ptr %32, i64 8
  %205 = extractvalue { i64, ptr } %202, 1
  store ptr %205, ptr %204, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %33) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef @.str.51) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #10
  %206 = load ptr, ptr %8, align 8, !tbaa !5
  %207 = invoke noundef ptr @_ZNK8tinyxml210XMLElement4NameEv(ptr noundef nonnull align 8 dereferenceable(120) %206)
          to label %208 unwind label %.thread261

208:                                              ; preds = %200
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef %207) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #10
  %209 = call noundef i32 @_ZNK8tinyxml212XMLAttribute10GetLineNumEv(ptr noundef nonnull align 8 dereferenceable(80) %.0177314)
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, i32 noundef %209) #10
  invoke void @_ZN2BT6StrCatIJA9_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA62_cEEES7_RKSt17basic_string_viewIcS5_ESC_SC_SC_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 1 dereferenceable(9) @.str.52, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 1 dereferenceable(62) @.str.53)
          to label %210 unwind label %.thread268

210:                                              ; preds = %208
  invoke void @_ZN2BT12RuntimeErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %201, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %211 unwind label %254

211:                                              ; preds = %210
  invoke void @__cxa_throw(ptr nonnull %201, ptr nonnull @_ZTIN2BT12RuntimeErrorE, ptr nonnull @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %681 unwind label %254

212:                                              ; preds = %176
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  %215 = extractvalue { ptr, i32 } %213, 1
  br label %338

216:                                              ; preds = %178
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  %219 = extractvalue { ptr, i32 } %217, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #10
  br label %338

220:                                              ; preds = %179
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  %223 = extractvalue { ptr, i32 } %221, 1
  br label %337

224:                                              ; preds = %181
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  %227 = extractvalue { ptr, i32 } %225, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #10
  br label %337

228:                                              ; preds = %332, %330, %324, %182
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  %231 = extractvalue { ptr, i32 } %229, 1
  br label %336

232:                                              ; preds = %188
  %233 = landingpad { ptr, i32 }
          cleanup
  %234 = extractvalue { ptr, i32 } %233, 0
  %235 = extractvalue { ptr, i32 } %233, 1
  br label %323

236:                                              ; preds = %190
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  %239 = extractvalue { ptr, i32 } %237, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #10
  br label %323

240:                                              ; preds = %191
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  %243 = extractvalue { ptr, i32 } %241, 1
  br label %322

244:                                              ; preds = %193
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  %247 = extractvalue { ptr, i32 } %245, 1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %27) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %27) #10
  br label %322

248:                                              ; preds = %195
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  %251 = extractvalue { ptr, i32 } %249, 1
  br label %311

.thread261:                                       ; preds = %200
  %252 = landingpad { ptr, i32 }
          cleanup
  %.2264 = extractvalue { ptr, i32 } %252, 0
  %.2129265 = extractvalue { ptr, i32 } %252, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #10
  br label %256

.thread268:                                       ; preds = %208
  %253 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #10
  %.2271 = extractvalue { ptr, i32 } %253, 0
  %.2129272 = extractvalue { ptr, i32 } %253, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #10
  br label %256

254:                                              ; preds = %210, %211
  %.0178 = phi i1 [ false, %211 ], [ true, %210 ]
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #10
  %.2 = extractvalue { ptr, i32 } %255, 0
  %.2129 = extractvalue { ptr, i32 } %255, 1
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %33) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #10
  br i1 %.0178, label %256, label %311

256:                                              ; preds = %.thread268, %.thread261, %254
  %.2129267 = phi i32 [ %.2129265, %.thread261 ], [ %.2129, %254 ], [ %.2129272, %.thread268 ]
  %.2266 = phi ptr [ %.2264, %.thread261 ], [ %.2, %254 ], [ %.2271, %.thread268 ]
  call void @__cxa_free_exception(ptr %201) #10
  br label %311

257:                                              ; preds = %197
  %258 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  %259 = getelementptr inbounds i8, ptr %258, i64 32
  %260 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  %261 = icmp ugt i64 %260, 2
  br i1 %261, label %262, label %.critedge257

262:                                              ; preds = %257
  %263 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5frontEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  %264 = load i8, ptr %263, align 1, !tbaa !39
  %265 = icmp eq i8 %264, 123
  br i1 %265, label %266, label %.critedge257

266:                                              ; preds = %262
  %267 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4backEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  %268 = load i8, ptr %267, align 1, !tbaa !39
  %269 = icmp eq i8 %268, 125
  br i1 %269, label %310, label %.critedge257

.critedge257:                                     ; preds = %262, %257, %266
  %270 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8TypeInfo9converterEv(ptr noundef nonnull align 8 dereferenceable(72) %259)
  %271 = call noundef zeroext i1 @_ZNKSt8functionIFN2BT3AnyESt17basic_string_viewIcSt11char_traitsIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(32) %270) #10
  br i1 %271, label %272, label %310

272:                                              ; preds = %.critedge257
  %273 = call noundef zeroext i1 @_ZNK2BT8TypeInfo15isStronglyTypedEv(ptr noundef nonnull align 8 dereferenceable(72) %259)
  br i1 %273, label %274, label %310

274:                                              ; preds = %272
  %275 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8TypeInfo9converterEv(ptr noundef nonnull align 8 dereferenceable(72) %259)
  %276 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  %277 = extractvalue { i64, ptr } %276, 0
  %278 = extractvalue { i64, ptr } %276, 1
  invoke void @_ZNKSt8functionIFN2BT3AnyESt17basic_string_viewIcSt11char_traitsIcEEEEclES5_(ptr dead_on_unwind nonnull writable sret(%"class.BT::Any") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %275, i64 %277, ptr %278)
          to label %279 unwind label %280

279:                                              ; preds = %274
  call void @_ZN2BT3AnyD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %310

280:                                              ; preds = %274
  %281 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %282 = extractvalue { ptr, i32 } %281, 0
  %283 = extractvalue { ptr, i32 } %281, 1
  %284 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %285 = icmp eq i32 %283, %284
  br i1 %285, label %286, label %311

286:                                              ; preds = %280
  %287 = call ptr @__cxa_begin_catch(ptr %282) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef @.str.54) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %39) #10
  %288 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  %289 = extractvalue { i64, ptr } %288, 0
  store i64 %289, ptr %39, align 8
  %290 = getelementptr inbounds i8, ptr %39, i64 8
  %291 = extractvalue { i64, ptr } %288, 1
  store ptr %291, ptr %290, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef @.str.55) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #10
  %292 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  %293 = extractvalue { i64, ptr } %292, 0
  store i64 %293, ptr %41, align 8
  %294 = getelementptr inbounds i8, ptr %41, i64 8
  %295 = extractvalue { i64, ptr } %292, 1
  store ptr %295, ptr %294, align 8
  %296 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8TypeInfo8typeNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72) %259)
          to label %297 unwind label %301

297:                                              ; preds = %286
  invoke void @_ZN2BT6StrCatIJA27_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEES7_RKSt17basic_string_viewIcS5_ESB_SB_SB_DpRKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 1 dereferenceable(27) @.str.56, ptr noundef nonnull align 8 dereferenceable(32) %296)
          to label %298 unwind label %301

298:                                              ; preds = %297
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #10
  %299 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT10LogicErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %299, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %300 unwind label %303

300:                                              ; preds = %298
  invoke void @__cxa_throw(ptr nonnull %299, ptr nonnull @_ZTIN2BT10LogicErrorE, ptr nonnull @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %681 unwind label %305

301:                                              ; preds = %297, %286
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %39) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #10
  br label %308

303:                                              ; preds = %298
  %304 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %299) #10
  br label %307

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

307:                                              ; preds = %305, %303
  %.pn248 = phi { ptr, i32 } [ %306, %305 ], [ %304, %303 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #10
  br label %308

308:                                              ; preds = %307, %301
  %.pn248.pn = phi { ptr, i32 } [ %.pn248, %307 ], [ %302, %301 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #10
  invoke void @__cxa_end_catch()
          to label %309 unwind label %678

309:                                              ; preds = %308
  %.4 = extractvalue { ptr, i32 } %.pn248.pn, 0
  %.4131 = extractvalue { ptr, i32 } %.pn248.pn, 1
  br label %311

310:                                              ; preds = %279, %272, %.critedge257, %266
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  br label %312

311:                                              ; preds = %280, %309, %254, %256, %248
  %.6133 = phi i32 [ %.2129267, %256 ], [ %.2129, %254 ], [ %251, %248 ], [ %.4131, %309 ], [ %283, %280 ]
  %.6 = phi ptr [ %.2266, %256 ], [ %.2, %254 ], [ %250, %248 ], [ %.4, %309 ], [ %282, %280 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  br label %321

312:                                              ; preds = %310, %194
  %313 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(56) %18, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %314 unwind label %317

314:                                              ; preds = %312
  %315 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %316 unwind label %317

316:                                              ; preds = %314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #10
  br label %334

317:                                              ; preds = %314, %312
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  %320 = extractvalue { ptr, i32 } %318, 1
  br label %321

321:                                              ; preds = %317, %311
  %.7134 = phi i32 [ %.6133, %311 ], [ %320, %317 ]
  %.7 = phi ptr [ %.6, %311 ], [ %319, %317 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #10
  br label %322

322:                                              ; preds = %321, %244, %240
  %.8135 = phi i32 [ %.7134, %321 ], [ %247, %244 ], [ %243, %240 ]
  %.8 = phi ptr [ %.7, %321 ], [ %246, %244 ], [ %242, %240 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #10
  br label %323

323:                                              ; preds = %322, %236, %232
  %.9136 = phi i32 [ %.8135, %322 ], [ %239, %236 ], [ %235, %232 ]
  %.9 = phi ptr [ %.8, %322 ], [ %238, %236 ], [ %234, %232 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #10
  br label %336

324:                                              ; preds = %187
  %325 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  %326 = extractvalue { i64, ptr } %325, 0
  %327 = extractvalue { i64, ptr } %325, 1
  %328 = invoke noundef zeroext i1 @_ZN2BT19IsReservedAttributeESt17basic_string_viewIcSt11char_traitsIcEE(i64 %326, ptr %327)
          to label %329 unwind label %228

329:                                              ; preds = %324
  br i1 %328, label %334, label %330

330:                                              ; preds = %329
  %331 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEixERSB_(ptr noundef nonnull align 8 dereferenceable(56) %19, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %332 unwind label %228

332:                                              ; preds = %330
  %333 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %331, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %334 unwind label %228

334:                                              ; preds = %329, %332, %316
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #10
  %335 = call noundef ptr @_ZNK8tinyxml212XMLAttribute4NextEv(ptr noundef nonnull align 8 dereferenceable(80) %.0177314)
  %.not199 = icmp eq ptr %335, null
  br i1 %.not199, label %._crit_edge, label %176, !llvm.loop !40

336:                                              ; preds = %323, %228
  %.10137 = phi i32 [ %.9136, %323 ], [ %231, %228 ]
  %.10 = phi ptr [ %.9, %323 ], [ %230, %228 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %337

337:                                              ; preds = %336, %224, %220
  %.11138 = phi i32 [ %.10137, %336 ], [ %227, %224 ], [ %223, %220 ]
  %.11 = phi ptr [ %.10, %336 ], [ %226, %224 ], [ %222, %220 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  br label %338

338:                                              ; preds = %337, %216, %212
  %.12139 = phi i32 [ %.11138, %337 ], [ %219, %216 ], [ %215, %212 ]
  %.12 = phi ptr [ %.11, %337 ], [ %218, %216 ], [ %214, %212 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #10
  br label %673

339:                                              ; preds = %._crit_edge
  %340 = getelementptr inbounds i8, ptr %42, i64 216
  %341 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #10
  %342 = invoke noundef zeroext i16 @_ZN2BT4Tree6getUIDEv(ptr noundef nonnull align 8 dereferenceable(98) %6)
          to label %343 unwind label %356

343:                                              ; preds = %339
  %344 = getelementptr inbounds i8, ptr %42, i64 208
  store i16 %342, ptr %344, align 8, !tbaa !42
  %345 = getelementptr inbounds i8, ptr %42, i64 200
  store ptr %.0176, ptr %345, align 8, !tbaa !65
  %346 = 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) %11, ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  br i1 %346, label %347, label %366

347:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull @.str.57, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %348 unwind label %358

348:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #10
  %349 = load i16, ptr %344, align 8, !tbaa !42
  %350 = zext i16 %349 to i32
  call void @_ZNSt7__cxx119to_stringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %47, i32 noundef %350) #10
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %351 unwind label %360

351:                                              ; preds = %348
  %352 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %353 unwind label %362

353:                                              ; preds = %351
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  br label %366

354:                                              ; preds = %._crit_edge
  %355 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #10
  br label %672

356:                                              ; preds = %339
  %357 = landingpad { ptr, i32 }
          cleanup
  br label %672

358:                                              ; preds = %347
  %359 = landingpad { ptr, i32 }
          cleanup
  br label %365

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

362:                                              ; preds = %351
  %363 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  br label %364

364:                                              ; preds = %362, %360
  %.pn200 = phi { ptr, i32 } [ %363, %362 ], [ %361, %360 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  br label %365

365:                                              ; preds = %364, %358
  %.pn200.pn = phi { ptr, i32 } [ %.pn200, %364 ], [ %359, %358 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #10
  br label %672

366:                                              ; preds = %353, %343
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #10
  store ptr %8, ptr %48, align 8, !tbaa !5
  %367 = getelementptr inbounds i8, ptr %48, i64 8
  store ptr %19, ptr %367, align 8, !tbaa !5
  %368 = getelementptr inbounds i8, ptr %42, i64 248
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #10
  store i32 0, ptr %49, align 4, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #10
  invoke void @_ZN2BT5toStrINS_7PreCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %369 unwind label %385

369:                                              ; preds = %366
  %370 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  %371 = load i32, ptr %49, align 4, !tbaa !66
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_7PreCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(48) %368, ptr noundef %370, i32 noundef %371)
          to label %372 unwind label %387

372:                                              ; preds = %369
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #10
  store i32 1, ptr %49, align 4, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #10
  invoke void @_ZN2BT5toStrINS_7PreCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %373 unwind label %385

373:                                              ; preds = %372
  %374 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  %375 = load i32, ptr %49, align 4, !tbaa !66
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_7PreCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(48) %368, ptr noundef %374, i32 noundef %375)
          to label %376 unwind label %387

376:                                              ; preds = %373
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #10
  store i32 2, ptr %49, align 4, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #10
  invoke void @_ZN2BT5toStrINS_7PreCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %377 unwind label %385

377:                                              ; preds = %376
  %378 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  %379 = load i32, ptr %49, align 4, !tbaa !66
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_7PreCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(48) %368, ptr noundef %378, i32 noundef %379)
          to label %380 unwind label %387

380:                                              ; preds = %377
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #10
  store i32 3, ptr %49, align 4, !tbaa !66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #10
  invoke void @_ZN2BT5toStrINS_7PreCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %381 unwind label %385

381:                                              ; preds = %380
  %382 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  %383 = load i32, ptr %49, align 4, !tbaa !66
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_7PreCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(48) %368, ptr noundef %382, i32 noundef %383)
          to label %.preheader unwind label %387

.preheader:                                       ; preds = %381
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #10
  %384 = getelementptr inbounds i8, ptr %42, i64 296
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #10
  store i32 0, ptr %51, align 4, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #10
  invoke void @_ZN2BT5toStrINS_8PostCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %390 unwind label %408

385:                                              ; preds = %380, %376, %372, %366
  %386 = landingpad { ptr, i32 }
          cleanup
  br label %389

387:                                              ; preds = %381, %377, %373, %369
  %388 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #10
  br label %389

389:                                              ; preds = %387, %385
  %.pn243 = phi { ptr, i32 } [ %388, %387 ], [ %386, %385 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #10
  br label %671

390:                                              ; preds = %.preheader
  %391 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  %392 = load i32, ptr %51, align 4, !tbaa !68
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_8PostCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(48) %384, ptr noundef %391, i32 noundef %392)
          to label %393 unwind label %410

393:                                              ; preds = %390
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #10
  store i32 1, ptr %51, align 4, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #10
  invoke void @_ZN2BT5toStrINS_8PostCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %394 unwind label %408

394:                                              ; preds = %393
  %395 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  %396 = load i32, ptr %51, align 4, !tbaa !68
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_8PostCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(48) %384, ptr noundef %395, i32 noundef %396)
          to label %397 unwind label %410

397:                                              ; preds = %394
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #10
  store i32 2, ptr %51, align 4, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #10
  invoke void @_ZN2BT5toStrINS_8PostCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %398 unwind label %408

398:                                              ; preds = %397
  %399 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  %400 = load i32, ptr %51, align 4, !tbaa !68
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_8PostCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(48) %384, ptr noundef %399, i32 noundef %400)
          to label %401 unwind label %410

401:                                              ; preds = %398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #10
  store i32 3, ptr %51, align 4, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #10
  invoke void @_ZN2BT5toStrINS_8PostCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %402 unwind label %408

402:                                              ; preds = %401
  %403 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  %404 = load i32, ptr %51, align 4, !tbaa !68
  invoke void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_8PostCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(48) %384, ptr noundef %403, i32 noundef %404)
          to label %405 unwind label %410

405:                                              ; preds = %402
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #10
  %406 = getelementptr inbounds i8, ptr %42, i64 144
  %407 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEaSERKSE_(ptr noundef nonnull align 8 dereferenceable(56) %406, ptr noundef nonnull align 8 dereferenceable(56) %19)
          to label %413 unwind label %427

408:                                              ; preds = %401, %397, %393, %.preheader
  %409 = landingpad { ptr, i32 }
          cleanup
  br label %412

410:                                              ; preds = %402, %398, %394, %390
  %411 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %412

412:                                              ; preds = %410, %408
  %.pn241 = phi { ptr, i32 } [ %411, %410 ], [ %409, %408 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #10
  br label %671

413:                                              ; preds = %405
  call void @_ZNSt10shared_ptrIN2BT8TreeNodeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  %414 = icmp eq i32 %86, 5
  br i1 %414, label %415, label %441

415:                                              ; preds = %413
  %416 = getelementptr inbounds i8, ptr %42, i64 32
  %417 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEaSERKSE_(ptr noundef nonnull align 8 dereferenceable(56) %416, ptr noundef nonnull align 8 dereferenceable(56) %18)
          to label %418 unwind label %429

418:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #10
  %419 = load ptr, ptr %141, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #10
  store i32 5, ptr %55, align 4, !tbaa !70
  invoke void @_ZN2BT5toStrINS_8NodeTypeEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull align 4 dereferenceable(4) %55)
          to label %420 unwind label %431

420:                                              ; preds = %418
  invoke void @_ZNK2BT19BehaviorTreeFactory19instantiateTreeNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKNS_10NodeConfigE(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.174") align 8 %53, ptr noundef nonnull align 8 dereferenceable(8) %419, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 8 dereferenceable(344) %42)
          to label %421 unwind label %433

421:                                              ; preds = %420
  %422 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN2BT8TreeNodeEEaSIS1_St14default_deleteIS1_EEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EESt10unique_ptrIT_T0_EEE5valueERS2_E4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %423 unwind label %435

423:                                              ; preds = %421
  call void @_ZNSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #10
  %424 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  %425 = icmp ne ptr %424, null
  call void @llvm.assume(i1 %425)
  %426 = call ptr @__dynamic_cast(ptr nonnull %424, ptr nonnull @_ZTIN2BT8TreeNodeE, ptr nonnull @_ZTIN2BT11SubTreeNodeE, i64 0) #10
  invoke void @_ZN2BT11SubTreeNode12setSubtreeIDERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(56) %426, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %651 unwind label %439

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

429:                                              ; preds = %415
  %430 = landingpad { ptr, i32 }
          cleanup
  br label %670

431:                                              ; preds = %418
  %432 = landingpad { ptr, i32 }
          cleanup
  br label %438

433:                                              ; preds = %420
  %434 = landingpad { ptr, i32 }
          cleanup
  br label %437

435:                                              ; preds = %421
  %436 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #10
  br label %437

437:                                              ; preds = %435, %433
  %.pn233 = phi { ptr, i32 } [ %436, %435 ], [ %434, %433 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  br label %438

438:                                              ; preds = %437, %431
  %.pn233.pn = phi { ptr, i32 } [ %.pn233, %437 ], [ %432, %431 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #10
  br label %670

439:                                              ; preds = %423
  %440 = landingpad { ptr, i32 }
          cleanup
  br label %670

441:                                              ; preds = %413
  %.not203 = icmp eq ptr %.0176, null
  br i1 %.not203, label %442, label %454

442:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %57) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef @.str.58) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %58) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef %82) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %59) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef @.str.59) #10
  invoke void @_ZN2BT6StrCatB5cxx11ERKSt17basic_string_viewIcSt11char_traitsIcEES5_S5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %59)
          to label %443 unwind label %446

443:                                              ; preds = %442
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #10
  %444 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT12RuntimeErrorC2IJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %444, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %445 unwind label %448

445:                                              ; preds = %443
  invoke void @__cxa_throw(ptr nonnull %444, ptr nonnull @_ZTIN2BT12RuntimeErrorE, ptr nonnull @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %681 unwind label %450

446:                                              ; preds = %442
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #10
  br label %453

448:                                              ; preds = %443
  %449 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %444) #10
  br label %452

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

452:                                              ; preds = %450, %448
  %.pn204 = phi { ptr, i32 } [ %451, %450 ], [ %449, %448 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #10
  br label %453

453:                                              ; preds = %452, %446
  %.pn204.pn = phi { ptr, i32 } [ %.pn204, %452 ], [ %447, %446 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #10
  br label %670

454:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #10
  %455 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %18) #10
  store ptr %455, ptr %60, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #10
  %456 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %18) #10
  store ptr %456, ptr %61, align 8
  %457 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  br i1 %457, label %.lr.ph319, label %._crit_edge320

.lr.ph319:                                        ; preds = %454
  %458 = getelementptr inbounds i8, ptr %.0176, i64 40
  br label %463

._crit_edge320:                                   ; preds = %475, %454
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #10
  %459 = getelementptr inbounds i8, ptr %.0176, i64 40
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #10
  %460 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %459) #10
  store ptr %460, ptr %62, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %63) #10
  %461 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %459) #10
  store ptr %461, ptr %63, align 8
  %462 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  br i1 %462, label %.lr.ph322, label %._crit_edge323

463:                                              ; preds = %.lr.ph319, %475
  %464 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  %465 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSB_(ptr noundef nonnull align 8 dereferenceable(64) %464) #10
  %466 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSB_(ptr noundef nonnull align 8 dereferenceable(64) %464) #10
  %467 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5countERSD_(ptr noundef nonnull align 8 dereferenceable(56) %458, ptr noundef nonnull align 8 dereferenceable(32) %465)
          to label %468 unwind label %.loopexit284

468:                                              ; preds = %463
  %469 = icmp eq i64 %467, 0
  br i1 %469, label %470, label %475

470:                                              ; preds = %468
  %471 = call ptr @__cxa_allocate_exception(i64 40) #10
  invoke void @_ZN2BT12RuntimeErrorC2IJA53_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA12_cS8_A7_cS8_A80_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %471, ptr noundef nonnull align 1 dereferenceable(53) @.str.60, ptr noundef nonnull align 8 dereferenceable(32) %465, ptr noundef nonnull align 1 dereferenceable(12) @.str.61, ptr noundef nonnull align 8 dereferenceable(32) %340, ptr noundef nonnull align 1 dereferenceable(7) @.str.62, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(80) @.str.63)
          to label %472 unwind label %473

472:                                              ; preds = %470
  invoke void @__cxa_throw(ptr nonnull %471, ptr nonnull @_ZTIN2BT12RuntimeErrorE, ptr nonnull @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %681 unwind label %.loopexit.split-lp285

.loopexit284:                                     ; preds = %463
  %lpad.loopexit286 = landingpad { ptr, i32 }
          cleanup
  br label %478

.loopexit.split-lp285:                            ; preds = %472
  %lpad.loopexit.split-lp287 = landingpad { ptr, i32 }
          cleanup
  br label %478

473:                                              ; preds = %470
  %474 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %471) #10
  br label %478

475:                                              ; preds = %468
  %476 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  %477 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %61) #10
  br i1 %477, label %463, label %._crit_edge320

478:                                              ; preds = %.loopexit284, %.loopexit.split-lp285, %473
  %.pn231 = phi { ptr, i32 } [ %474, %473 ], [ %lpad.loopexit286, %.loopexit284 ], [ %lpad.loopexit.split-lp287, %.loopexit.split-lp285 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #10
  br label %670

._crit_edge323:                                   ; preds = %558, %._crit_edge320
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #10
  %479 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %18) #10
  store ptr %479, ptr %72, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %73) #10
  %480 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %18) #10
  store ptr %480, ptr %73, align 8
  %481 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  br i1 %481, label %.lr.ph325, label %._crit_edge326

.lr.ph325:                                        ; preds = %._crit_edge323
  %482 = getelementptr inbounds i8, ptr %42, i64 32
  %483 = getelementptr inbounds i8, ptr %42, i64 88
  br label %568

.lr.ph322:                                        ; preds = %._crit_edge320, %558
  %484 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  %485 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSD_(ptr noundef nonnull align 8 dereferenceable(208) %484) #10
  %486 = call noundef nonnull align 8 dereferenceable(176) ptr @_ZSt3getILm1EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSD_(ptr noundef nonnull align 8 dereferenceable(208) %484) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #10
  %487 = invoke ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE4findERSB_(ptr noundef nonnull align 8 dereferenceable(56) %18, ptr noundef nonnull align 8 dereferenceable(32) %485)
          to label %488 unwind label %491

488:                                              ; preds = %.lr.ph322
  store ptr %487, ptr %64, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %65) #10
  %489 = call ptr @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %18) #10
  store ptr %489, ptr %65, align 8
  %490 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65) #10
  br i1 %490, label %558, label %493

491:                                              ; preds = %.lr.ph322
  %492 = landingpad { ptr, i32 }
          cleanup
  br label %562

493:                                              ; preds = %488
  %494 = call noundef ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  %495 = getelementptr inbounds i8, ptr %494, i64 32
  %496 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %495) #10
  %497 = extractvalue { i64, ptr } %496, 0
  %498 = extractvalue { i64, ptr } %496, 1
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %66) #10
  %499 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %485) #10
  %500 = extractvalue { i64, ptr } %499, 0
  %501 = extractvalue { i64, ptr } %499, 1
  invoke void @_ZN2BT8TreeNode14getRemappedKeyB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEES4_(ptr dead_on_unwind nonnull writable sret(%"class.nonstd::expected_lite::expected.186") align 8 %66, i64 %500, ptr %501, i64 %497, ptr %498)
          to label %502 unwind label %537

502:                                              ; preds = %493
  %503 = call noundef zeroext i1 @_ZNK6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %66) #10
  br i1 %503, label %504, label %557

504:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #10
  %505 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNR6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEE5valueEv(ptr noundef nonnull align 8 dereferenceable(40) %66)
          to label %506 unwind label %539

506:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ISt17basic_string_viewIcS2_EvEERKT_RKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(16) %505, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %507 unwind label %541

507:                                              ; preds = %506
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #10
  %508 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN2BT10BlackboardELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #10
  %509 = invoke noundef ptr @_ZN2BT10Blackboard9entryInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(217) %508, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %510 unwind label %543

510:                                              ; preds = %507
  %.not221 = icmp eq ptr %509, null
  br i1 %.not221, label %552, label %511

511:                                              ; preds = %510
  %512 = call noundef zeroext i1 @_ZNK2BT8TypeInfo15isStronglyTypedEv(ptr noundef nonnull align 8 dereferenceable(72) %509)
  br i1 %512, label %513, label %521

513:                                              ; preds = %511
  %514 = call noundef zeroext i1 @_ZNK2BT8TypeInfo15isStronglyTypedEv(ptr noundef nonnull align 8 dereferenceable(72) %486)
  br i1 %514, label %515, label %521

515:                                              ; preds = %513
  %516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %509)
          to label %517 unwind label %545

517:                                              ; preds = %515
  %518 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %486)
          to label %519 unwind label %545

519:                                              ; preds = %517
  %520 = call noundef zeroext i1 @_ZNKSt10type_indexneERKS_(ptr noundef nonnull align 8 dereferenceable(8) %516, ptr noundef nonnull align 8 dereferenceable(8) %518) #10
  br label %521

521:                                              ; preds = %519, %513, %511
  %522 = phi i1 [ false, %513 ], [ false, %511 ], [ %520, %519 ]
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %509)
          to label %524 unwind label %.loopexit

524:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %69) #10
  call void @_ZNSt10type_indexC2ERKSt9type_info(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(16) @_ZTINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE) #10
  %525 = call noundef zeroext i1 @_ZNKSt10type_indexeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %523, ptr noundef nonnull align 8 dereferenceable(8) %69) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %69) #10
  %.not258 = xor i1 %522, true
  %brmerge = or i1 %525, %.not258
  br i1 %brmerge, label %554, label %526

526:                                              ; preds = %524
  %527 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN2BT10BlackboardELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #10
  invoke void @_ZNK2BT10Blackboard12debugMessageEv(ptr noundef nonnull align 8 dereferenceable(217) %527)
          to label %528 unwind label %.loopexit.split-lp

528:                                              ; preds = %526
  %529 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %70) #10
  %530 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %509)
          to label %531 unwind label %.thread273

531:                                              ; preds = %528
  invoke void @_ZN2BT8demangleB5cxx11ERKSt10type_index(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(8) %530)
          to label %532 unwind label %.thread273

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %71) #10
  %533 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %486)
          to label %534 unwind label %.thread277

534:                                              ; preds = %532
  invoke void @_ZN2BT8demangleB5cxx11ERKSt10type_index(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(8) %533)
          to label %535 unwind label %.thread277

535:                                              ; preds = %534
  invoke void @_ZN2BT12RuntimeErrorC2IJA51_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cS8_A20_cS8_A27_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40) %529, ptr noundef nonnull align 1 dereferenceable(51) @.str.64, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 1 dereferenceable(36) @.str.65, ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 1 dereferenceable(20) @.str.66, ptr noundef nonnull align 8 dereferenceable(32) %71, ptr noundef nonnull align 1 dereferenceable(27) @.str.67)
          to label %536 unwind label %549

536:                                              ; preds = %535
  invoke void @__cxa_throw(ptr nonnull %529, ptr nonnull @_ZTIN2BT12RuntimeErrorE, ptr nonnull @_ZN2BT21BehaviorTreeExceptionD2Ev) #11
          to label %681 unwind label %549

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

539:                                              ; preds = %504
  %540 = landingpad { ptr, i32 }
          cleanup
  br label %556

541:                                              ; preds = %506
  %542 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #10
  br label %556

543:                                              ; preds = %552, %507
  %544 = landingpad { ptr, i32 }
          cleanup
  br label %555

545:                                              ; preds = %517, %515
  %546 = landingpad { ptr, i32 }
          cleanup
  br label %555

.loopexit:                                        ; preds = %521
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %555

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

.thread273:                                       ; preds = %528, %531
  %547 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #10
  br label %551

.thread277:                                       ; preds = %532, %534
  %548 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #10
  br label %551

549:                                              ; preds = %535, %536
  %.0184 = phi i1 [ false, %536 ], [ true, %535 ]
  %550 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %71) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %70) #10
  br i1 %.0184, label %551, label %555

551:                                              ; preds = %.thread277, %.thread273, %549
  %.pn222.pn276 = phi { ptr, i32 } [ %547, %.thread273 ], [ %550, %549 ], [ %548, %.thread277 ]
  call void @__cxa_free_exception(ptr %529) #10
  br label %555

552:                                              ; preds = %510
  %553 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN2BT10BlackboardELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #10
  invoke void @_ZN2BT10Blackboard11createEntryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8TypeInfoE(ptr noundef nonnull align 8 dereferenceable(217) %553, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(72) %486)
          to label %554 unwind label %543

554:                                              ; preds = %524, %552
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #10
  br label %557

555:                                              ; preds = %.loopexit, %.loopexit.split-lp, %545, %549, %551, %543
  %.pn222.pn.pn.pn.pn = phi { ptr, i32 } [ %544, %543 ], [ %546, %545 ], [ %.pn222.pn276, %551 ], [ %550, %549 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  br label %556

556:                                              ; preds = %555, %541, %539
  %.pn222.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn222.pn.pn.pn.pn, %555 ], [ %542, %541 ], [ %540, %539 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #10
  call void @_ZN6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %66) #10
  br label %561

557:                                              ; preds = %554, %502
  call void @_ZN6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %66) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %66) #10
  br label %558

558:                                              ; preds = %488, %557
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #10
  %559 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %62) #10
  %560 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  br i1 %560, label %.lr.ph322, label %._crit_edge323

561:                                              ; preds = %556, %537
  %.pn222.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn222.pn.pn.pn.pn.pn, %556 ], [ %538, %537 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %66) #10
  br label %562

562:                                              ; preds = %561, %491
  %.pn222.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn222.pn.pn.pn.pn.pn.pn, %561 ], [ %492, %491 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #10
  br label %670

._crit_edge326:                                   ; preds = %588, %._crit_edge323
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #10
  %563 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %459) #10
  store ptr %563, ptr %76, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #10
  %564 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %459) #10
  store ptr %564, ptr %77, align 8
  %565 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %77) #10
  br i1 %565, label %.lr.ph328, label %._crit_edge329

.lr.ph328:                                        ; preds = %._crit_edge326
  %566 = getelementptr inbounds i8, ptr %42, i64 32
  %567 = getelementptr inbounds i8, ptr %42, i64 88
  br label %593

568:                                              ; preds = %.lr.ph325, %588
  %569 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNKSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #10
  %570 = invoke ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE4findERSD_(ptr noundef nonnull align 8 dereferenceable(56) %459, ptr noundef nonnull align 8 dereferenceable(32) %569)
          to label %571 unwind label %581

571:                                              ; preds = %568
  store ptr %570, ptr %74, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #10
  %572 = call ptr @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoESt4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S7_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %459) #10
  store ptr %572, ptr %75, align 8
  %573 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %75) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #10
  br i1 %573, label %574, label %588

574:                                              ; preds = %571
  %575 = call noundef ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  %576 = getelementptr inbounds i8, ptr %575, i64 32
  %577 = invoke noundef i32 @_ZNK2BT8PortInfo9directionEv(ptr noundef nonnull align 8 dereferenceable(176) %576)
          to label %578 unwind label %583

578:                                              ; preds = %574
  %cond = icmp eq i32 %577, 1
  br i1 %cond, label %586, label %579

579:                                              ; preds = %578
  %580 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertERKSC_(ptr noundef nonnull align 8 dereferenceable(56) %482, ptr noundef nonnull align 8 dereferenceable(64) %569)
          to label %585 unwind label %583

581:                                              ; preds = %568
  %582 = landingpad { ptr, i32 }
          cleanup
  br label %591

583:                                              ; preds = %586, %579, %574
  %584 = landingpad { ptr, i32 }
          cleanup
  br label %591

585:                                              ; preds = %579
  %.not218 = icmp eq i32 %577, 0
  br i1 %.not218, label %588, label %586

586:                                              ; preds = %578, %585
  %587 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertERKSC_(ptr noundef nonnull align 8 dereferenceable(56) %483, ptr noundef nonnull align 8 dereferenceable(64) %569)
          to label %588 unwind label %583

588:                                              ; preds = %585, %586, %571
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #10
  %589 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail14_Node_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  %590 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_ELb1EEESC_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %73) #10
  br i1 %590, label %568, label %._crit_edge326

591:                                              ; preds = %583, %581
  %.pn219 = phi { ptr, i32 } [ %584, %583 ], [ %582, %581 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #10
  br label %670

._crit_edge329:                                   ; preds = %639, %._crit_edge326
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %80) #10
  %592 = load ptr, ptr %141, align 8, !tbaa !9
  invoke void @_ZNK2BT19BehaviorTreeFactory19instantiateTreeNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKNS_10NodeConfigE(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.174") align 8 %80, ptr noundef nonnull align 8 dereferenceable(8) %592, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(344) %42)
          to label %643 unwind label %646

593:                                              ; preds = %.lr.ph328, %639
  %594 = call noundef nonnull align 8 dereferenceable(208) ptr @_ZNKSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %76) #10
  %595 = getelementptr inbounds i8, ptr %594, i64 32
  %596 = invoke noundef i32 @_ZNK2BT8PortInfo9directionEv(ptr noundef nonnull align 8 dereferenceable(176) %595)
          to label %597 unwind label %610

597:                                              ; preds = %593
  %598 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8PortInfo18defaultValueStringB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(176) %595)
          to label %599 unwind label %612

599:                                              ; preds = %597
  %600 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %598) #10
  br i1 %600, label %639, label %601

601:                                              ; preds = %599
  %cond259 = icmp eq i32 %596, 1
  br i1 %cond259, label %620, label %602

602:                                              ; preds = %601
  %603 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE5countERSB_(ptr noundef nonnull align 8 dereferenceable(56) %566, ptr noundef nonnull align 8 dereferenceable(32) %594)
          to label %604 unwind label %612

604:                                              ; preds = %602
  %605 = icmp eq i64 %603, 0
  br i1 %605, label %606, label %619

606:                                              ; preds = %604
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %78) #10
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EC2IS6_S5_TnNSt9enable_ifIXaaclsr5_PCCPE18_ConstructiblePairIT_T0_EEclsr5_PCCPE26_ImplicitlyConvertiblePairISA_SB_EEEbE4typeELb1EEERS6_SE_(ptr noundef nonnull align 8 dereferenceable(64) %78, ptr noundef nonnull align 8 dereferenceable(32) %594, ptr noundef nonnull align 8 dereferenceable(32) %598)
          to label %607 unwind label %614

607:                                              ; preds = %606
  %608 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56) %566, ptr noundef nonnull align 8 dereferenceable(64) %78)
          to label %609 unwind label %616

609:                                              ; preds = %607
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %78) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %78) #10
  br label %619

610:                                              ; preds = %593
  %611 = landingpad { ptr, i32 }
          cleanup
  br label %642

612:                                              ; preds = %624, %620, %602, %597
  %613 = landingpad { ptr, i32 }
          cleanup
  br label %642

614:                                              ; preds = %606
  %615 = landingpad { ptr, i32 }
          cleanup
  br label %618

616:                                              ; preds = %607
  %617 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %78) #10
  br label %618

618:                                              ; preds = %616, %614
  %.pn210 = phi { ptr, i32 } [ %617, %616 ], [ %615, %614 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %78) #10
  br label %642

619:                                              ; preds = %609, %604
  %.not212 = icmp eq i32 %596, 0
  br i1 %.not212, label %639, label %620

620:                                              ; preds = %601, %619
  %621 = invoke noundef i64 @_ZNKSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE5countERSB_(ptr noundef nonnull align 8 dereferenceable(56) %567, ptr noundef nonnull align 8 dereferenceable(32) %594)
          to label %622 unwind label %612

622:                                              ; preds = %620
  %623 = icmp eq i64 %621, 0
  br i1 %623, label %624, label %639

624:                                              ; preds = %622
  %625 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %598) #10
  %626 = extractvalue { i64, ptr } %625, 0
  %627 = extractvalue { i64, ptr } %625, 1
  %628 = invoke noundef zeroext i1 @_ZN2BT8TreeNode19isBlackboardPointerESt17basic_string_viewIcSt11char_traitsIcEEPS4_(i64 %626, ptr %627, ptr noundef null)
          to label %629 unwind label %612

629:                                              ; preds = %624
  br i1 %628, label %630, label %639

630:                                              ; preds = %629
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %79) #10
  invoke void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EC2IS6_S5_TnNSt9enable_ifIXaaclsr5_PCCPE18_ConstructiblePairIT_T0_EEclsr5_PCCPE26_ImplicitlyConvertiblePairISA_SB_EEEbE4typeELb1EEERS6_SE_(ptr noundef nonnull align 8 dereferenceable(64) %79, ptr noundef nonnull align 8 dereferenceable(32) %594, ptr noundef nonnull align 8 dereferenceable(32) %598)
          to label %631 unwind label %634

631:                                              ; preds = %630
  %632 = invoke { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56) %567, ptr noundef nonnull align 8 dereferenceable(64) %79)
          to label %633 unwind label %636

633:                                              ; preds = %631
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %79) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %79) #10
  br label %639

634:                                              ; preds = %630
  %635 = landingpad { ptr, i32 }
          cleanup
  br label %638

636:                                              ; preds = %631
  %637 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %79) #10
  br label %638

638:                                              ; preds = %636, %634
  %.pn213 = phi { ptr, i32 } [ %637, %636 ], [ %635, %634 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %79) #10
  br label %642

639:                                              ; preds = %619, %622, %629, %633, %599
  %640 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail20_Node_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb0ELb1EEppEv(ptr noundef nonnull align 8 dereferenceable(8) %76) #10
  %641 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEELb1EEESE_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %77) #10
  br i1 %641, label %593, label %._crit_edge329

642:                                              ; preds = %612, %618, %638, %610
  %.pn213.pn.pn = phi { ptr, i32 } [ %611, %610 ], [ %.pn213, %638 ], [ %613, %612 ], [ %.pn210, %618 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #10
  br label %670

643:                                              ; preds = %._crit_edge329
  %644 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN2BT8TreeNodeEEaSIS1_St14default_deleteIS1_EEENSt9enable_ifIXsr13is_assignableIRSt12__shared_ptrIS1_LN9__gnu_cxx12_Lock_policyE2EESt10unique_ptrIT_T0_EEE5valueERS2_E4typeEOSF_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(8) %80)
          to label %645 unwind label %648

645:                                              ; preds = %643
  call void @_ZNSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #10
  br label %651

646:                                              ; preds = %._crit_edge329
  %647 = landingpad { ptr, i32 }
          cleanup
  br label %650

648:                                              ; preds = %643
  %649 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10unique_ptrIN2BT8TreeNodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #10
  br label %650

650:                                              ; preds = %648, %646
  %.pn207 = phi { ptr, i32 } [ %649, %648 ], [ %647, %646 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %80) #10
  br label %670

651:                                              ; preds = %423, %645
  %652 = call noundef zeroext i1 @_ZStneIN2BT8TreeNodeEEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %4, ptr null) #10
  br i1 %652, label %653, label %.thread282

653:                                              ; preds = %651
  %654 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #10
  %655 = icmp eq ptr %654, null
  br i1 %655, label %.thread280, label %656

656:                                              ; preds = %653
  %657 = call ptr @__dynamic_cast(ptr nonnull %654, ptr nonnull @_ZTIN2BT8TreeNodeE, ptr nonnull @_ZTIN2BT11ControlNodeE, i64 0) #10
  %.not236 = icmp eq ptr %657, null
  br i1 %.not236, label %.thread280, label %658

658:                                              ; preds = %656
  %659 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  invoke void @_ZN2BT11ControlNode8addChildEPNS_8TreeNodeE(ptr noundef nonnull align 8 dereferenceable(40) %657, ptr noundef %659)
          to label %.thread282 unwind label %660

660:                                              ; preds = %658
  %661 = landingpad { ptr, i32 }
          cleanup
  br label %670

.thread280:                                       ; preds = %653, %656
  %662 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #10
  %663 = icmp eq ptr %662, null
  br i1 %663, label %.thread282, label %664

664:                                              ; preds = %.thread280
  %665 = call ptr @__dynamic_cast(ptr nonnull %662, ptr nonnull @_ZTIN2BT8TreeNodeE, ptr nonnull @_ZTIN2BT13DecoratorNodeE, i64 0) #10
  %.not237 = icmp eq ptr %665, null
  br i1 %.not237, label %.thread282, label %666

666:                                              ; preds = %664
  %667 = call noundef ptr @_ZNKSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  invoke void @_ZN2BT13DecoratorNode8setChildEPNS_8TreeNodeE(ptr noundef nonnull align 8 dereferenceable(24) %665, ptr noundef %667)
          to label %.thread282 unwind label %668

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

.thread282:                                       ; preds = %.thread280, %651, %664, %666, %658
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #10
  call void @_ZN2BT10NodeConfigD2Ev(ptr noundef nonnull align 8 dereferenceable(344) %42) #10
  call void @llvm.lifetime.end.p0(i64 344, ptr nonnull %42) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %19) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %19) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %18) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  ret void

670:                                              ; preds = %660, %668, %650, %642, %591, %562, %478, %453, %439, %438, %429
  %.pn238.pn = phi { ptr, i32 } [ %440, %439 ], [ %.pn233.pn, %438 ], [ %430, %429 ], [ %.pn231, %478 ], [ %.pn222.pn.pn.pn.pn.pn.pn.pn, %562 ], [ %.pn219, %591 ], [ %.pn213.pn.pn, %642 ], [ %.pn207, %650 ], [ %.pn204.pn, %453 ], [ %661, %660 ], [ %669, %668 ]
  call void @_ZNSt12__shared_ptrIN2BT8TreeNodeELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #10
  br label %671

671:                                              ; preds = %670, %427, %412, %389
  %.pn243.pn = phi { ptr, i32 } [ %.pn243, %389 ], [ %.pn241, %412 ], [ %.pn238.pn, %670 ], [ %428, %427 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #10
  br label %672

672:                                              ; preds = %671, %365, %356, %354
  %.pn243.pn.pn = phi { ptr, i32 } [ %.pn243.pn, %671 ], [ %.pn200.pn, %365 ], [ %357, %356 ], [ %355, %354 ]
  %.39 = extractvalue { ptr, i32 } %.pn243.pn.pn, 0
  %.39166 = extractvalue { ptr, i32 } %.pn243.pn.pn, 1
  call void @_ZN2BT10NodeConfigD2Ev(ptr noundef nonnull align 8 dereferenceable(344) %42) #10
  call void @llvm.lifetime.end.p0(i64 344, ptr nonnull %42) #10
  br label %673

673:                                              ; preds = %672, %338
  %.40167 = phi i32 [ %.12139, %338 ], [ %.39166, %672 ]
  %.40 = phi ptr [ %.12, %338 ], [ %.39, %672 ]
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %19) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %19) #10
  call void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %18) #10
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %18) #10
  br label %674

674:                                              ; preds = %673, %167, %163
  %.41168 = phi i32 [ %.40167, %673 ], [ %170, %167 ], [ %166, %163 ]
  %.41 = phi ptr [ %.40, %673 ], [ %169, %167 ], [ %165, %163 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  br label %.critedge255

.critedge255:                                     ; preds = %.thread260, %159, %674
  %.42169 = phi i32 [ %.41168, %674 ], [ %162, %159 ], [ %139, %.thread260 ]
  %.42 = phi ptr [ %.41, %674 ], [ %161, %159 ], [ %138, %.thread260 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #10
  br label %675

675:                                              ; preds = %155, %.critedge255, %125, %117, %108, %107, %99
  %.44171 = phi i32 [ %102, %99 ], [ %111, %108 ], [ %120, %117 ], [ %.0127, %107 ], [ %128, %125 ], [ %.42169, %.critedge255 ], [ %158, %155 ]
  %.44 = phi ptr [ %101, %99 ], [ %110, %108 ], [ %119, %117 ], [ %.0, %107 ], [ %127, %125 ], [ %.42, %.critedge255 ], [ %157, %155 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  %676 = insertvalue { ptr, i32 } poison, ptr %.44, 0
  %677 = insertvalue { ptr, i32 } %676, i32 %.44171, 1
  resume { ptr, i32 } %677

678:                                              ; preds = %308
  %679 = landingpad { ptr, i32 }
          catch ptr null
  %680 = extractvalue { ptr, i32 } %679, 0
  call void @__clang_call_terminate(ptr %680) #12
  unreachable

681:                                              ; preds = %536, %472, %445, %300, %211
  unreachable
}

declare noundef i32 @_ZN2BT17convertFromStringINS_8NodeTypeEEET_St17basic_string_viewIcSt11char_traitsIcEE(i64, ptr) local_unnamed_addr #3

declare noundef nonnull align 8 dereferenceable(56) ptr @_ZNK2BT19BehaviorTreeFactory8buildersB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #0 align 2

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

declare noundef ptr @_ZNK8tinyxml212XMLAttribute4NameEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #3

declare noundef ptr @_ZNK8tinyxml212XMLAttribute5ValueEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #3

declare noundef zeroext i1 @_ZN2BT17IsAllowedPortNameESt17basic_string_viewIcSt11char_traitsIcEE(i64, ptr) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK8tinyxml212XMLAttribute10GetLineNumEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #0 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNKSt8functionIFN2BT3AnyESt17basic_string_viewIcSt11char_traitsIcEEEEclES5_(ptr dead_on_unwind noalias writable sret(%"class.BT::Any") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64, ptr) local_unnamed_addr #2 align 2

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

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #6

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

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

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8TypeInfo8typeNameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #3

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

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

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #7

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

declare noundef zeroext i1 @_ZN2BT19IsReservedAttributeESt17basic_string_viewIcSt11char_traitsIcEE(i64, ptr) local_unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2BT10NodeConfigC2Ev(ptr noundef nonnull align 8 dereferenceable(344)) unnamed_addr #0 align 2

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

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

declare noundef zeroext i16 @_ZN2BT4Tree6getUIDEv(ptr noundef nonnull align 8 dereferenceable(98)) local_unnamed_addr #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_7PreCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i32 noundef) local_unnamed_addr #5 align 2

declare void @_ZN2BT5toStrINS_7PreCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN2BT9XMLParser5PImpl17createNodeFromXMLEPKN8tinyxml210XMLElementERKSt10shared_ptrINS_10BlackboardEERKS6_INS_8TreeNodeEERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_4TreeEENK3$_0clISt3mapINS_8PostCondESK_St4lessISS_ESaISt4pairIKSS_SK_EEESS_EEDaRT_PKcT0_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i32 noundef) local_unnamed_addr #5 align 2

declare void @_ZN2BT5toStrINS_8PostCondEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

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

declare void @_ZNK2BT19BehaviorTreeFactory19instantiateTreeNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_RKNS_10NodeConfigE(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.174") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(344)) local_unnamed_addr #3

declare void @_ZN2BT5toStrINS_8NodeTypeEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #8

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSB_(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm1EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_ERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSB_(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2BT12RuntimeErrorC2IJA53_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA12_cS8_A7_cS8_A80_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(53), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(12), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(7), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(80)) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZSt3getILm0EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSD_(ptr noundef nonnull align 8 dereferenceable(208)) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(176) ptr @_ZSt3getILm1EKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT8PortInfoEERKNSt13tuple_elementIXT_ESt4pairIT0_T1_EE4typeERKSD_(ptr noundef nonnull align 8 dereferenceable(208)) local_unnamed_addr #0

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

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

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

declare void @_ZN2BT8TreeNode14getRemappedKeyB5cxx11ESt17basic_string_viewIcSt11char_traitsIcEES4_(ptr dead_on_unwind writable sret(%"class.nonstd::expected_lite::expected.186") align 8, i64, ptr, i64, ptr) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK6nonstd13expected_lite8expectedISt17basic_string_viewIcSt11char_traitsIcEENSt7__cxx1112basic_stringIcS4_SaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #0 align 2

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

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

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

declare noundef ptr @_ZN2BT10Blackboard9entryInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(217), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNK2BT8TypeInfo4typeEv(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #3

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

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

declare void @_ZNK2BT10Blackboard12debugMessageEv(ptr noundef nonnull align 8 dereferenceable(217)) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2BT12RuntimeErrorC2IJA51_cNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEA36_cS8_A20_cS8_A27_cEEEDpRKT_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 1 dereferenceable(51), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(27)) unnamed_addr #2 align 2

declare void @_ZN2BT10Blackboard11createEntryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_8TypeInfoE(ptr noundef nonnull align 8 dereferenceable(217), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #3

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

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

declare noundef i32 @_ZNK2BT8PortInfo9directionEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertERKSC_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK2BT8PortInfo18defaultValueStringB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE6insertEOSC_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #2 align 2

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

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

declare noundef zeroext i1 @_ZN2BT8TreeNode19isBlackboardPointerESt17basic_string_viewIcSt11char_traitsIcEEPS4_(i64, ptr, ptr noundef) local_unnamed_addr #3

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

declare void @_ZN2BT11ControlNode8addChildEPNS_8TreeNodeE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) local_unnamed_addr #3

declare void @_ZN2BT13DecoratorNode8setChildEPNS_8TreeNodeE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #3

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

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

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

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write)
declare void @llvm.assume(i1 noundef) #9

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 72}
!10 = !{!"_ZTSN2BT9XMLParser5PImplE", !11, i64 0, !17, i64 24, !6, i64 72, !25, i64 80, !35, i64 120, !38, i64 168}
!11 = !{!"_ZTSNSt7__cxx114listISt10unique_ptrIN8tinyxml211XMLDocumentESt14default_deleteIS3_EESaIS6_EEE", !12, i64 0}
!12 = !{!"_ZTSNSt7__cxx1110_List_baseISt10unique_ptrIN8tinyxml211XMLDocumentESt14default_deleteIS3_EESaIS6_EEE", !13, i64 0}
!13 = !{!"_ZTSNSt7__cxx1110_List_baseISt10unique_ptrIN8tinyxml211XMLDocumentESt14default_deleteIS3_EESaIS6_EE10_List_implE", !14, i64 0}
!14 = !{!"_ZTSNSt8__detail17_List_node_headerE", !15, i64 0, !16, i64 16}
!15 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!16 = !{!"long", !7, i64 0}
!17 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN8tinyxml210XMLElementESt4lessIS5_ESaISt4pairIKS5_S9_EEE", !18, i64 0}
!18 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PKN8tinyxml210XMLElementEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE", !19, i64 0}
!19 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PKN8tinyxml210XMLElementEESt10_Select1stISC_ESt4lessIS5_ESaISC_EE13_Rb_tree_implISG_Lb1EEE", !20, i64 0, !22, i64 8}
!20 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !21, i64 0}
!21 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!22 = !{!"_ZTSSt15_Rb_tree_header", !23, i64 0, !16, i64 32}
!23 = !{!"_ZTSSt18_Rb_tree_node_base", !24, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!24 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!25 = !{!"_ZTSNSt10filesystem7__cxx114pathE", !26, i64 0, !28, i64 32}
!26 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !27, i64 0, !16, i64 8, !7, i64 16}
!27 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!28 = !{!"_ZTSNSt10filesystem7__cxx114path5_ListE", !29, i64 0}
!29 = !{!"_ZTSSt10unique_ptrINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEE", !30, i64 0}
!30 = !{!"_ZTSSt15__uniq_ptr_dataINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterELb1ELb1EE", !31, i64 0}
!31 = !{!"_ZTSSt15__uniq_ptr_implINSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEE", !32, i64 0}
!32 = !{!"_ZTSSt5tupleIJPNSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEEE", !33, i64 0}
!33 = !{!"_ZTSSt11_Tuple_implILm0EJPNSt10filesystem7__cxx114path5_List5_ImplENS3_13_Impl_deleterEEE", !34, i64 0}
!34 = !{!"_ZTSSt10_Head_baseILm0EPNSt10filesystem7__cxx114path5_List5_ImplELb0EE", !6, i64 0}
!35 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN2BT12SubtreeModelESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !36, i64 0}
!36 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2BT12SubtreeModelEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !37, i64 0}
!37 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N2BT12SubtreeModelEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !20, i64 0, !22, i64 8}
!38 = !{!"int", !7, i64 0}
!39 = !{!7, !7, i64 0}
!40 = distinct !{!40, !41}
!41 = !{!"llvm.loop.mustprogress"}
!42 = !{!43, !54, i64 208}
!43 = !{!"_ZTSN2BT10NodeConfigE", !44, i64 0, !47, i64 16, !49, i64 32, !49, i64 88, !49, i64 144, !6, i64 200, !54, i64 208, !26, i64 216, !55, i64 248, !60, i64 296}
!44 = !{!"_ZTSSt10shared_ptrIN2BT10BlackboardEE", !45, i64 0}
!45 = !{!"_ZTSSt12__shared_ptrIN2BT10BlackboardELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !46, i64 8}
!46 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!47 = !{!"_ZTSSt10shared_ptrISt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS6_ESt8equal_toIS6_ESaISt4pairIKS6_iEEEE", !48, i64 0}
!48 = !{!"_ZTSSt12__shared_ptrISt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiSt4hashIS6_ESt8equal_toIS6_ESaISt4pairIKS6_iEEELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !46, i64 8}
!49 = !{!"_ZTSSt13unordered_mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4hashIS5_ESt8equal_toIS5_ESaISt4pairIKS5_S5_EEE", !50, i64 0}
!50 = !{!"_ZTSSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !16, i64 8, !51, i64 16, !16, i64 24, !52, i64 32, !6, i64 48}
!51 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!52 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !53, i64 0, !16, i64 8}
!53 = !{!"float", !7, i64 0}
!54 = !{!"short", !7, i64 0}
!55 = !{!"_ZTSSt3mapIN2BT7PreCondENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !56, i64 0}
!56 = !{!"_ZTSSt8_Rb_treeIN2BT7PreCondESt4pairIKS1_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !57, i64 0}
!57 = !{!"_ZTSNSt8_Rb_treeIN2BT7PreCondESt4pairIKS1_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !58, i64 0, !22, i64 8}
!58 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN2BT7PreCondEEE", !59, i64 0}
!59 = !{!"_ZTSSt4lessIN2BT7PreCondEE"}
!60 = !{!"_ZTSSt3mapIN2BT8PostCondENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS1_ESaISt4pairIKS1_S7_EEE", !61, i64 0}
!61 = !{!"_ZTSSt8_Rb_treeIN2BT8PostCondESt4pairIKS1_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE", !62, i64 0}
!62 = !{!"_ZTSNSt8_Rb_treeIN2BT8PostCondESt4pairIKS1_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !63, i64 0, !22, i64 8}
!63 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIN2BT8PostCondEEE", !64, i64 0}
!64 = !{!"_ZTSSt4lessIN2BT8PostCondEE"}
!65 = !{!43, !6, i64 200}
!66 = !{!67, !67, i64 0}
!67 = !{!"_ZTSN2BT7PreCondE", !7, i64 0}
!68 = !{!69, !69, i64 0}
!69 = !{!"_ZTSN2BT8PostCondE", !7, i64 0}
!70 = !{!71, !71, i64 0}
!71 = !{!"_ZTSN2BT8NodeTypeE", !7, i64 0}


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