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

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

%"class.std::__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.9" = type { %"class.std::__shared_ptr.10" }
%"class.std::__shared_ptr.10" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::allocator" = type { i8 }
%"class.std::shared_ptr.150" = type { %"class.std::__shared_ptr.151" }
%"class.std::__shared_ptr.151" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%class.ResolveState = type <{ i8, [3 x i8], i32, %"class.std::shared_ptr.28", i32, i32, i32, [4 x i8], %"class.std::vector", %"class.std::__cxx11::basic_string", i8, [7 x i8], i64, %"class.std::__cxx11::basic_string", %"class.std::shared_ptr", i32, i32, ptr, %"class.std::shared_ptr.71", i64, %"class.std::shared_ptr.9", i64, ptr, i64, i32, [4 x i8] }>
%"class.std::shared_ptr.28" = type { %"class.std::__shared_ptr.29" }
%"class.std::__shared_ptr.29" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<HtnTerm>, std::allocator<std::shared_ptr<HtnTerm>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.71" = type { %"class.std::__shared_ptr.72" }
%"class.std::__shared_ptr.72" = type { ptr, %"class.std::__shared_count" }

@.str.5 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [50 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15HtnGoalResolver10ResolveAllEP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEiiPlPiPS9_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.9") align 8 %0, ptr noundef nonnull align 8 dereferenceable(64) %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef %5, i32 noundef %6, ptr noundef %7, ptr noundef %8, ptr noundef %9) #2 align 2 personality ptr @__gxx_personality_v0 {
  %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 i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca i64, align 8
  %30 = alloca %"class.std::shared_ptr.150", align 8
  %31 = alloca %"class.std::shared_ptr.9", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca i1, align 1
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca i1, align 1
  %41 = alloca i1, align 1
  %42 = alloca i1, align 1
  %43 = alloca %"class.std::shared_ptr.0", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca i64, align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca i64, align 8
  %59 = alloca i32, align 4
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca i64, align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::allocator", align 1
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca i1, align 1
  %74 = alloca %"class.std::allocator", align 1
  %75 = alloca i1, align 1
  %76 = alloca i1, align 1
  %77 = alloca i1, align 1
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::allocator", align 1
  %80 = alloca i1, align 1
  %81 = alloca i1, align 1
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca i64, align 8
  %84 = alloca i64, align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::allocator", align 1
  %87 = alloca i1, align 1
  %88 = alloca i1, align 1
  %89 = alloca %"class.std::__cxx11::basic_string", align 8
  %90 = alloca %"class.std::shared_ptr.150", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.std::allocator", align 1
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca i8, align 1
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  %99 = alloca i64, align 8
  %100 = alloca i64, align 8
  store ptr %0, ptr %11, align 8
  store ptr %1, ptr %12, align 8, !tbaa !5
  store ptr %2, ptr %13, align 8, !tbaa !5
  store ptr %3, ptr %14, align 8, !tbaa !5
  store ptr %4, ptr %15, align 8, !tbaa !5
  store i32 %5, ptr %16, align 4, !tbaa !9
  store i32 %6, ptr %17, align 4, !tbaa !9
  store ptr %7, ptr %18, align 8, !tbaa !5
  store ptr %8, ptr %19, align 8, !tbaa !5
  store ptr %9, ptr %20, align 8, !tbaa !5
  %101 = load ptr, ptr %12, align 8
  %102 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %103 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %102)
  %104 = and i64 8388608, %103
  %105 = icmp ne i64 %104, 0
  br i1 %105, label %106, label %158

106:                                              ; preds = %10
  %107 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %108 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %107)
  %109 = icmp sle i32 2, %108
  br i1 %109, label %110, label %158

110:                                              ; preds = %106
  %111 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #9
  %112 = load i32, ptr %16, align 4, !tbaa !9
  %113 = mul nsw i32 %112, 11
  %114 = sext i32 %113 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, i64 noundef %114, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %115 unwind label %129

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

116:                                              ; preds = %115
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.46)
          to label %117 unwind label %137

117:                                              ; preds = %116
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.47)
          to label %118 unwind label %141

118:                                              ; preds = %117
  %119 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(24) %119, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %120 unwind label %145

120:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %121 = load ptr, ptr %13, align 8, !tbaa !5
  %122 = invoke noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %121)
          to label %123 unwind label %149

123:                                              ; preds = %120
  store i64 %122, ptr %29, align 8, !tbaa !11
  %124 = load ptr, ptr %13, align 8, !tbaa !5
  %125 = invoke noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %124)
          to label %126 unwind label %149

126:                                              ; preds = %123
  %127 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEllEEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %111, ptr noundef nonnull align 8 dereferenceable(32) %21, i32 noundef 8388608, i32 noundef 2, ptr noundef %28, ptr noundef nonnull align 8 dereferenceable(8) %29, i64 noundef %125)
          to label %128 unwind label %149

128:                                              ; preds = %126
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  br label %158

129:                                              ; preds = %110
  %130 = landingpad { ptr, i32 }
          cleanup
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %26, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %27, align 4
  br label %157

133:                                              ; preds = %115
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %26, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %27, align 4
  br label %156

137:                                              ; preds = %116
  %138 = landingpad { ptr, i32 }
          cleanup
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %26, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %27, align 4
  br label %155

141:                                              ; preds = %117
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %26, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %27, align 4
  br label %154

145:                                              ; preds = %118
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %26, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %27, align 4
  br label %153

149:                                              ; preds = %126, %123, %120
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %26, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %153

153:                                              ; preds = %149, %145
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %154

154:                                              ; preds = %153, %141
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %155

155:                                              ; preds = %154, %137
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %156

156:                                              ; preds = %155, %133
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %157

157:                                              ; preds = %156, %129
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #9
  br label %881

158:                                              ; preds = %128, %106, %10
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #9
  %159 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 248) #10
  %160 = load ptr, ptr %13, align 8, !tbaa !5
  %161 = load ptr, ptr %14, align 8, !tbaa !5
  %162 = load ptr, ptr %15, align 8, !tbaa !5
  %163 = load i32, ptr %16, align 4, !tbaa !9
  %164 = load i32, ptr %17, align 4, !tbaa !9
  invoke void @_ZN12ResolveStateC1EP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEii(ptr noundef nonnull align 8 dereferenceable(244) %159, ptr noundef %160, ptr noundef %161, ptr noundef nonnull align 8 dereferenceable(24) %162, i32 noundef %163, i32 noundef %164)
          to label %165 unwind label %237

165:                                              ; preds = %158
  call void @_ZNSt10shared_ptrI12ResolveStateEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef %159)
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #9
  %166 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 24) #10
          to label %167 unwind label %241

167:                                              ; preds = %165
  call void @llvm.memset.p0.i64(ptr align 16 %166, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %166) #9
  invoke void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2IS8_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef %166)
          to label %168 unwind label %241

168:                                              ; preds = %167
  br label %169

169:                                              ; preds = %560, %168
  br label %170

170:                                              ; preds = %169
  %171 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %172 unwind label %245

172:                                              ; preds = %170
  %173 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %171)
          to label %174 unwind label %245

174:                                              ; preds = %172
  %175 = and i64 8388608, %173
  %176 = icmp ne i64 %175, 0
  br i1 %176, label %177, label %295

177:                                              ; preds = %174
  %178 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %179 = getelementptr inbounds %class.ResolveState, ptr %178, i32 0, i32 10
  %180 = load i8, ptr %179, align 8, !tbaa !13, !range !31, !noundef !32
  %181 = trunc i8 %180 to i1
  %182 = zext i1 %181 to i64
  %183 = select i1 %181, i32 0, i32 2
  %184 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %185 unwind label %245

185:                                              ; preds = %177
  %186 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %184)
          to label %187 unwind label %245

187:                                              ; preds = %185
  %188 = icmp sle i32 %183, %186
  br i1 %188, label %189, label %295

189:                                              ; preds = %187
  %190 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %191 unwind label %245

191:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #9
  %192 = load i32, ptr %16, align 4, !tbaa !9
  %193 = mul nsw i32 %192, 11
  %194 = sext i32 %193 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, i64 noundef %194, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %195 unwind label %249

195:                                              ; preds = %191
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %196 unwind label %253

196:                                              ; preds = %195
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.48)
          to label %197 unwind label %257

197:                                              ; preds = %196
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.49)
          to label %198 unwind label %261

198:                                              ; preds = %197
  %199 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %200 = getelementptr inbounds %class.ResolveState, ptr %199, i32 0, i32 10
  %201 = load i8, ptr %200, align 8, !tbaa !13, !range !31, !noundef !32
  %202 = trunc i8 %201 to i1
  %203 = zext i1 %202 to i64
  %204 = select i1 %202, i32 0, i32 2
  %205 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %206 = getelementptr inbounds %class.ResolveState, ptr %205, i32 0, i32 18
  %207 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %206) #9
  %208 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %207) #9
  %209 = icmp ugt i64 %208, 0
  store i1 false, ptr %38, align 1
  store i1 false, ptr %40, align 1
  store i1 false, ptr %41, align 1
  store i1 false, ptr %42, align 1
  br i1 %209, label %210, label %220

210:                                              ; preds = %198
  %211 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %212 = getelementptr inbounds %class.ResolveState, ptr %211, i32 0, i32 18
  %213 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %212) #9
  %214 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %213) #9
  %215 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %214) #9
  %216 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %215)
          to label %217 unwind label %265

217:                                              ; preds = %210
  %218 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %216) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(24) %218, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %219 unwind label %265

219:                                              ; preds = %217
  store i1 true, ptr %38, align 1
  br label %222

220:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #9
  store i1 true, ptr %40, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  store i1 true, ptr %41, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %221 unwind label %269

221:                                              ; preds = %220
  store i1 true, ptr %42, align 1
  br label %222

222:                                              ; preds = %221, %219
  %223 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %190, ptr noundef nonnull align 8 dereferenceable(32) %32, i32 noundef 8388608, i32 noundef %204, ptr noundef %37)
          to label %224 unwind label %273

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

226:                                              ; preds = %224
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %227

227:                                              ; preds = %226, %224
  %228 = load i1, ptr %41, align 1
  br i1 %228, label %229, label %230

229:                                              ; preds = %227
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  br label %230

230:                                              ; preds = %229, %227
  %231 = load i1, ptr %40, align 1
  br i1 %231, label %232, label %233

232:                                              ; preds = %230
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #9
  br label %233

233:                                              ; preds = %232, %230
  %234 = load i1, ptr %38, align 1
  br i1 %234, label %235, label %236

235:                                              ; preds = %233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %236

236:                                              ; preds = %235, %233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #9
  br label %295

237:                                              ; preds = %158
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %26, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %27, align 4
  call void @_ZdlPvm(ptr noundef %159, i64 noundef 248) #11
  br label %880

241:                                              ; preds = %167, %165
  %242 = landingpad { ptr, i32 }
          cleanup
  %243 = extractvalue { ptr, i32 } %242, 0
  store ptr %243, ptr %26, align 8
  %244 = extractvalue { ptr, i32 } %242, 1
  store i32 %244, ptr %27, align 4
  br label %879

245:                                              ; preds = %810, %806, %804, %799, %796, %605, %601, %599, %594, %592, %586, %189, %185, %177, %172, %170
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %26, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %27, align 4
  br label %878

249:                                              ; preds = %191
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %26, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %27, align 4
  br label %294

253:                                              ; preds = %195
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %26, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %27, align 4
  br label %293

257:                                              ; preds = %196
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %26, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %27, align 4
  br label %292

261:                                              ; preds = %197
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %26, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %27, align 4
  br label %291

265:                                              ; preds = %217, %210
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %26, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %27, align 4
  br label %290

269:                                              ; preds = %220
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %26, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %27, align 4
  br label %280

273:                                              ; preds = %222
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %26, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %27, align 4
  %277 = load i1, ptr %42, align 1
  br i1 %277, label %278, label %279

278:                                              ; preds = %273
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %279

279:                                              ; preds = %278, %273
  br label %280

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

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

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

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

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

288:                                              ; preds = %286
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %289

289:                                              ; preds = %288, %286
  br label %290

290:                                              ; preds = %289, %265
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #9
  br label %291

291:                                              ; preds = %290, %261
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %292

292:                                              ; preds = %291, %257
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %293

293:                                              ; preds = %292, %253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #9
  br label %294

294:                                              ; preds = %293, %249
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #9
  br label %878

295:                                              ; preds = %236, %187, %174
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #9
  %296 = call noundef ptr @_ZNKSt12__shared_ptrI12ResolveStateLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %30) #9
  invoke void @_ZN15HtnGoalResolver11ResolveNextEP12ResolveState(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.0") align 8 %43, ptr noundef nonnull align 8 dereferenceable(64) %101, ptr noundef %296)
          to label %297 unwind label %348

297:                                              ; preds = %295
  %298 = call noundef zeroext i1 @_ZStneISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEEbRKS2_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr null) #9
  br i1 %298, label %299, label %399

299:                                              ; preds = %297
  %300 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %301 unwind label %352

301:                                              ; preds = %299
  %302 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %300)
          to label %303 unwind label %352

303:                                              ; preds = %301
  %304 = and i64 8388608, %302
  %305 = icmp ne i64 %304, 0
  br i1 %305, label %306, label %395

306:                                              ; preds = %303
  %307 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %308 = getelementptr inbounds %class.ResolveState, ptr %307, i32 0, i32 10
  %309 = load i8, ptr %308, align 8, !tbaa !13, !range !31, !noundef !32
  %310 = trunc i8 %309 to i1
  %311 = zext i1 %310 to i64
  %312 = select i1 %310, i32 0, i32 2
  %313 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %314 unwind label %352

314:                                              ; preds = %306
  %315 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %313)
          to label %316 unwind label %352

316:                                              ; preds = %314
  %317 = icmp sle i32 %312, %315
  br i1 %317, label %318, label %395

318:                                              ; preds = %316
  %319 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %320 unwind label %352

320:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #9
  %321 = load i32, ptr %16, align 4, !tbaa !9
  %322 = mul nsw i32 %321, 11
  %323 = sext i32 %322 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, i64 noundef %323, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %324 unwind label %356

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

325:                                              ; preds = %324
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %46, ptr noundef @.str.51)
          to label %326 unwind label %364

326:                                              ; preds = %325
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.52)
          to label %327 unwind label %368

327:                                              ; preds = %326
  %328 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %329 = getelementptr inbounds %class.ResolveState, ptr %328, i32 0, i32 10
  %330 = load i8, ptr %329, align 8, !tbaa !13, !range !31, !noundef !32
  %331 = trunc i8 %330 to i1
  %332 = zext i1 %331 to i64
  %333 = select i1 %331, i32 0, i32 2
  %334 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(24) %334, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %335 unwind label %372

335:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #9
  %336 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #9
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(24) %336, i1 noundef zeroext false)
          to label %337 unwind label %376

337:                                              ; preds = %335
  %338 = load ptr, ptr %13, align 8, !tbaa !5
  %339 = invoke noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %338)
          to label %340 unwind label %380

340:                                              ; preds = %337
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #9
  %341 = load ptr, ptr %13, align 8, !tbaa !5
  %342 = invoke noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %341)
          to label %343 unwind label %384

343:                                              ; preds = %340
  store i64 %342, ptr %51, align 8, !tbaa !11
  %344 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %345 = getelementptr inbounds %class.ResolveState, ptr %344, i32 0, i32 13
  %346 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_llS6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_(ptr noundef nonnull align 8 dereferenceable(12) %319, ptr noundef nonnull align 8 dereferenceable(32) %44, i32 noundef 8388608, i32 noundef %333, ptr noundef %49, ptr noundef nonnull align 8 dereferenceable(32) %50, i64 noundef %339, ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(32) %345)
          to label %347 unwind label %384

347:                                              ; preds = %343
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #9
  br label %395

348:                                              ; preds = %295
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %26, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %27, align 4
  br label %562

352:                                              ; preds = %555, %497, %493, %485, %480, %478, %474, %418, %414, %406, %401, %399, %395, %318, %314, %306, %301, %299
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %26, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %27, align 4
  br label %561

356:                                              ; preds = %320
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %26, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %27, align 4
  br label %394

360:                                              ; preds = %324
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %26, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %27, align 4
  br label %393

364:                                              ; preds = %325
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %26, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %27, align 4
  br label %392

368:                                              ; preds = %326
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %26, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %27, align 4
  br label %391

372:                                              ; preds = %327
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %26, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %27, align 4
  br label %390

376:                                              ; preds = %335
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %26, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %27, align 4
  br label %389

380:                                              ; preds = %337
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %26, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %27, align 4
  br label %388

384:                                              ; preds = %343, %340
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %26, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #9
  br label %388

388:                                              ; preds = %384, %380
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %389

389:                                              ; preds = %388, %376
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #9
  br label %390

390:                                              ; preds = %389, %372
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %391

391:                                              ; preds = %390, %368
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %392

392:                                              ; preds = %391, %364
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  br label %393

393:                                              ; preds = %392, %360
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #9
  br label %394

394:                                              ; preds = %393, %356
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #9
  br label %561

395:                                              ; preds = %347, %316, %303
  %396 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  %397 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %43) #9
  invoke void @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %396, ptr noundef nonnull align 8 dereferenceable(24) %397)
          to label %398 unwind label %352

398:                                              ; preds = %395
  br label %474

399:                                              ; preds = %297
  %400 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %401 unwind label %352

401:                                              ; preds = %399
  %402 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %400)
          to label %403 unwind label %352

403:                                              ; preds = %401
  %404 = and i64 8388608, %402
  %405 = icmp ne i64 %404, 0
  br i1 %405, label %406, label %473

406:                                              ; preds = %403
  %407 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %408 = getelementptr inbounds %class.ResolveState, ptr %407, i32 0, i32 10
  %409 = load i8, ptr %408, align 8, !tbaa !13, !range !31, !noundef !32
  %410 = trunc i8 %409 to i1
  %411 = zext i1 %410 to i64
  %412 = select i1 %410, i32 0, i32 2
  %413 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %414 unwind label %352

414:                                              ; preds = %406
  %415 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %413)
          to label %416 unwind label %352

416:                                              ; preds = %414
  %417 = icmp sle i32 %412, %415
  br i1 %417, label %418, label %473

418:                                              ; preds = %416
  %419 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %420 unwind label %352

420:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #9
  %421 = load i32, ptr %16, align 4, !tbaa !9
  %422 = mul nsw i32 %421, 11
  %423 = sext i32 %422 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, i64 noundef %423, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %424 unwind label %444

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

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

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

427:                                              ; preds = %426
  %428 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %429 = getelementptr inbounds %class.ResolveState, ptr %428, i32 0, i32 10
  %430 = load i8, ptr %429, align 8, !tbaa !13, !range !31, !noundef !32
  %431 = trunc i8 %430 to i1
  %432 = zext i1 %431 to i64
  %433 = select i1 %431, i32 0, i32 2
  %434 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(24) %434, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %435 unwind label %460

435:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #9
  %436 = load ptr, ptr %13, align 8, !tbaa !5
  %437 = invoke noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %436)
          to label %438 unwind label %464

438:                                              ; preds = %435
  store i64 %437, ptr %58, align 8, !tbaa !11
  %439 = load ptr, ptr %13, align 8, !tbaa !5
  %440 = invoke noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %439)
          to label %441 unwind label %464

441:                                              ; preds = %438
  %442 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEllEEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %419, ptr noundef nonnull align 8 dereferenceable(32) %52, i32 noundef 8388608, i32 noundef %433, ptr noundef %57, ptr noundef nonnull align 8 dereferenceable(8) %58, i64 noundef %440)
          to label %443 unwind label %464

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

444:                                              ; preds = %420
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %26, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %27, align 4
  br label %472

448:                                              ; preds = %424
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %26, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %27, align 4
  br label %471

452:                                              ; preds = %425
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %26, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %27, align 4
  br label %470

456:                                              ; preds = %426
  %457 = landingpad { ptr, i32 }
          cleanup
  %458 = extractvalue { ptr, i32 } %457, 0
  store ptr %458, ptr %26, align 8
  %459 = extractvalue { ptr, i32 } %457, 1
  store i32 %459, ptr %27, align 4
  br label %469

460:                                              ; preds = %427
  %461 = landingpad { ptr, i32 }
          cleanup
  %462 = extractvalue { ptr, i32 } %461, 0
  store ptr %462, ptr %26, align 8
  %463 = extractvalue { ptr, i32 } %461, 1
  store i32 %463, ptr %27, align 4
  br label %468

464:                                              ; preds = %441, %438, %435
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %26, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br label %468

468:                                              ; preds = %464, %460
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %469

469:                                              ; preds = %468, %456
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %470

470:                                              ; preds = %469, %452
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #9
  br label %471

471:                                              ; preds = %470, %448
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br label %472

472:                                              ; preds = %471, %444
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #9
  br label %561

473:                                              ; preds = %443, %416, %403
  store i32 3, ptr %59, align 4
  br label %558

474:                                              ; preds = %398
  %475 = load ptr, ptr %13, align 8, !tbaa !5
  %476 = invoke noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088) %475)
          to label %477 unwind label %352

477:                                              ; preds = %474
  br i1 %476, label %478, label %555

478:                                              ; preds = %477
  %479 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %480 unwind label %352

480:                                              ; preds = %478
  %481 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %479)
          to label %482 unwind label %352

482:                                              ; preds = %480
  %483 = and i64 8388608, %481
  %484 = icmp ne i64 %483, 0
  br i1 %484, label %485, label %554

485:                                              ; preds = %482
  %486 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %487 = getelementptr inbounds %class.ResolveState, ptr %486, i32 0, i32 10
  %488 = load i8, ptr %487, align 8, !tbaa !13, !range !31, !noundef !32
  %489 = trunc i8 %488 to i1
  %490 = zext i1 %489 to i64
  %491 = select i1 %489, i32 0, i32 2
  %492 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %493 unwind label %352

493:                                              ; preds = %485
  %494 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %492)
          to label %495 unwind label %352

495:                                              ; preds = %493
  %496 = icmp sle i32 %491, %494
  br i1 %496, label %497, label %554

497:                                              ; preds = %495
  %498 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %499 unwind label %352

499:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 32, ptr %60) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #9
  %500 = load i32, ptr %16, align 4, !tbaa !9
  %501 = mul nsw i32 %500, 11
  %502 = sext i32 %501 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, i64 noundef %502, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %503 unwind label %525

503:                                              ; preds = %499
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %504 unwind label %529

504:                                              ; preds = %503
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.51)
          to label %505 unwind label %533

505:                                              ; preds = %504
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.54)
          to label %506 unwind label %537

506:                                              ; preds = %505
  %507 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %508 = getelementptr inbounds %class.ResolveState, ptr %507, i32 0, i32 10
  %509 = load i8, ptr %508, align 8, !tbaa !13, !range !31, !noundef !32
  %510 = trunc i8 %509 to i1
  %511 = zext i1 %510 to i64
  %512 = select i1 %510, i32 0, i32 2
  %513 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(24) %513, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %514 unwind label %541

514:                                              ; preds = %506
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %515 = load ptr, ptr %13, align 8, !tbaa !5
  %516 = invoke noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %515)
          to label %517 unwind label %545

517:                                              ; preds = %514
  store i64 %516, ptr %66, align 8, !tbaa !11
  %518 = load ptr, ptr %13, align 8, !tbaa !5
  %519 = invoke noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %518)
          to label %520 unwind label %545

520:                                              ; preds = %517
  %521 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %522 = getelementptr inbounds %class.ResolveState, ptr %521, i32 0, i32 13
  %523 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEllS6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_(ptr noundef nonnull align 8 dereferenceable(12) %498, ptr noundef nonnull align 8 dereferenceable(32) %60, i32 noundef 8388608, i32 noundef %512, ptr noundef %65, ptr noundef nonnull align 8 dereferenceable(8) %66, i64 noundef %519, ptr noundef nonnull align 8 dereferenceable(32) %522)
          to label %524 unwind label %545

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

525:                                              ; preds = %499
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %26, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %27, align 4
  br label %553

529:                                              ; preds = %503
  %530 = landingpad { ptr, i32 }
          cleanup
  %531 = extractvalue { ptr, i32 } %530, 0
  store ptr %531, ptr %26, align 8
  %532 = extractvalue { ptr, i32 } %530, 1
  store i32 %532, ptr %27, align 4
  br label %552

533:                                              ; preds = %504
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %26, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %27, align 4
  br label %551

537:                                              ; preds = %505
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %26, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %27, align 4
  br label %550

541:                                              ; preds = %506
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %26, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %27, align 4
  br label %549

545:                                              ; preds = %520, %517, %514
  %546 = landingpad { ptr, i32 }
          cleanup
  %547 = extractvalue { ptr, i32 } %546, 0
  store ptr %547, ptr %26, align 8
  %548 = extractvalue { ptr, i32 } %546, 1
  store i32 %548, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #9
  br label %549

549:                                              ; preds = %545, %541
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  br label %550

550:                                              ; preds = %549, %537
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #9
  br label %551

551:                                              ; preds = %550, %533
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br label %552

552:                                              ; preds = %551, %529
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  br label %553

553:                                              ; preds = %552, %525
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %60) #9
  br label %561

554:                                              ; preds = %524, %495, %482
  store i32 3, ptr %59, align 4
  br label %558

555:                                              ; preds = %477
  %556 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  invoke void @_ZN12ResolveState13ClearFailuresEv(ptr noundef nonnull align 8 dereferenceable(244) %556)
          to label %557 unwind label %352

557:                                              ; preds = %555
  store i32 0, ptr %59, align 4
  br label %558

558:                                              ; preds = %557, %554, %473
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #9
  %559 = load i32, ptr %59, align 4
  switch i32 %559, label %886 [
    i32 0, label %560
    i32 3, label %563
  ]

560:                                              ; preds = %558
  br label %169, !llvm.loop !33

561:                                              ; preds = %553, %472, %394, %352
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %43) #9
  br label %562

562:                                              ; preds = %561, %348
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #9
  br label %878

563:                                              ; preds = %558
  %564 = load ptr, ptr %18, align 8, !tbaa !5
  %565 = icmp ne ptr %564, null
  br i1 %565, label %566, label %571

566:                                              ; preds = %563
  %567 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %568 = getelementptr inbounds %class.ResolveState, ptr %567, i32 0, i32 12
  %569 = load i64, ptr %568, align 8, !tbaa !35
  %570 = load ptr, ptr %18, align 8, !tbaa !5
  store i64 %569, ptr %570, align 8, !tbaa !11
  br label %571

571:                                              ; preds = %566, %563
  %572 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  %573 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %572) #9
  %574 = icmp eq i64 %573, 0
  br i1 %574, label %575, label %796

575:                                              ; preds = %571
  %576 = load ptr, ptr %19, align 8, !tbaa !5
  %577 = icmp ne ptr %576, null
  br i1 %577, label %578, label %583

578:                                              ; preds = %575
  %579 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %580 = getelementptr inbounds %class.ResolveState, ptr %579, i32 0, i32 6
  %581 = load i32, ptr %580, align 8, !tbaa !36
  %582 = load ptr, ptr %19, align 8, !tbaa !5
  store i32 %581, ptr %582, align 4, !tbaa !9
  br label %583

583:                                              ; preds = %578, %575
  %584 = load ptr, ptr %20, align 8, !tbaa !5
  %585 = icmp ne ptr %584, null
  br i1 %585, label %586, label %592

586:                                              ; preds = %583
  %587 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %588 = getelementptr inbounds %class.ResolveState, ptr %587, i32 0, i32 8
  %589 = load ptr, ptr %20, align 8, !tbaa !5
  %590 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %589, ptr noundef nonnull align 8 dereferenceable(24) %588)
          to label %591 unwind label %245

591:                                              ; preds = %586
  br label %592

592:                                              ; preds = %591, %583
  %593 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %594 unwind label %245

594:                                              ; preds = %592
  %595 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %593)
          to label %596 unwind label %245

596:                                              ; preds = %594
  %597 = and i64 8388608, %595
  %598 = icmp ne i64 %597, 0
  br i1 %598, label %599, label %795

599:                                              ; preds = %596
  %600 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %601 unwind label %245

601:                                              ; preds = %599
  %602 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %600)
          to label %603 unwind label %245

603:                                              ; preds = %601
  %604 = icmp sle i32 0, %602
  br i1 %604, label %605, label %795

605:                                              ; preds = %603
  %606 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %607 unwind label %245

607:                                              ; preds = %605
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #9
  %608 = load i32, ptr %16, align 4, !tbaa !9
  %609 = mul nsw i32 %608, 11
  %610 = sext i32 %609 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %70, i64 noundef %610, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %71)
          to label %611 unwind label %697

611:                                              ; preds = %607
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %612 unwind label %701

612:                                              ; preds = %611
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %69, ptr noundef @.str.14)
          to label %613 unwind label %705

613:                                              ; preds = %612
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef @.str.55)
          to label %614 unwind label %709

614:                                              ; preds = %613
  %615 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %616 = getelementptr inbounds %class.ResolveState, ptr %615, i32 0, i32 4
  %617 = load i32, ptr %616, align 8, !tbaa !37
  %618 = icmp sge i32 %617, 0
  store i1 false, ptr %73, align 1
  store i1 false, ptr %75, align 1
  store i1 false, ptr %76, align 1
  store i1 false, ptr %77, align 1
  br i1 %618, label %619, label %628

619:                                              ; preds = %614
  %620 = load ptr, ptr %15, align 8, !tbaa !5
  %621 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %622 = getelementptr inbounds %class.ResolveState, ptr %621, i32 0, i32 4
  %623 = load i32, ptr %622, align 8, !tbaa !37
  %624 = sext i32 %623 to i64
  %625 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %620, i64 noundef %624) #9
  %626 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %625) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(72) %626, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %627 unwind label %713

627:                                              ; preds = %619
  store i1 true, ptr %73, align 1
  br label %630

628:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #9
  store i1 true, ptr %75, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #9
  store i1 true, ptr %76, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %72, ptr noundef @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %629 unwind label %717

629:                                              ; preds = %628
  store i1 true, ptr %77, align 1
  br label %630

630:                                              ; preds = %629, %627
  call void @llvm.lifetime.start.p0(i64 32, ptr %78) #9
  %631 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %632 = getelementptr inbounds %class.ResolveState, ptr %631, i32 0, i32 3
  %633 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %632, ptr null) #9
  store i1 false, ptr %80, align 1
  store i1 false, ptr %81, align 1
  br i1 %633, label %634, label %639

634:                                              ; preds = %630
  %635 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %636 = getelementptr inbounds %class.ResolveState, ptr %635, i32 0, i32 3
  %637 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %636) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(72) %637, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %638 unwind label %721

638:                                              ; preds = %634
  br label %641

639:                                              ; preds = %630
  call void @llvm.lifetime.start.p0(i64 1, ptr %79) #9
  store i1 true, ptr %80, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  store i1 true, ptr %81, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %79)
          to label %640 unwind label %725

640:                                              ; preds = %639
  br label %641

641:                                              ; preds = %640, %638
  %642 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %82, ptr noundef nonnull align 8 dereferenceable(24) %642, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %643 unwind label %729

643:                                              ; preds = %641
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  %644 = load ptr, ptr %13, align 8, !tbaa !5
  %645 = invoke noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %644)
          to label %646 unwind label %733

646:                                              ; preds = %643
  store i64 %645, ptr %83, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #9
  %647 = load ptr, ptr %13, align 8, !tbaa !5
  %648 = invoke noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %647)
          to label %649 unwind label %737

649:                                              ; preds = %646
  store i64 %648, ptr %84, align 8, !tbaa !11
  %650 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %651 = getelementptr inbounds %class.ResolveState, ptr %650, i32 0, i32 9
  call void @llvm.lifetime.start.p0(i64 32, ptr %85) #9
  %652 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %653 = getelementptr inbounds %class.ResolveState, ptr %652, i32 0, i32 6
  %654 = load i32, ptr %653, align 8, !tbaa !36
  %655 = icmp sge i32 %654, 0
  store i1 false, ptr %87, align 1
  store i1 false, ptr %88, align 1
  br i1 %655, label %656, label %665

656:                                              ; preds = %649
  %657 = load ptr, ptr %15, align 8, !tbaa !5
  %658 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %659 = getelementptr inbounds %class.ResolveState, ptr %658, i32 0, i32 6
  %660 = load i32, ptr %659, align 8, !tbaa !36
  %661 = sext i32 %660 to i64
  %662 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %657, i64 noundef %661) #9
  %663 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %662) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(72) %663, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %664 unwind label %741

664:                                              ; preds = %656
  br label %667

665:                                              ; preds = %649
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #9
  store i1 true, ptr %87, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #9
  store i1 true, ptr %88, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %666 unwind label %745

666:                                              ; preds = %665
  br label %667

667:                                              ; preds = %666, %664
  call void @llvm.lifetime.start.p0(i64 32, ptr %89) #9
  %668 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  %669 = getelementptr inbounds %class.ResolveState, ptr %668, i32 0, i32 8
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %89, ptr noundef nonnull align 8 dereferenceable(24) %669, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %670 unwind label %749

670:                                              ; preds = %667
  %671 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_llS6_S6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_RKT4_RKT5_RKT6_(ptr noundef nonnull align 8 dereferenceable(12) %606, ptr noundef nonnull align 8 dereferenceable(32) %67, i32 noundef 8388608, i32 noundef 0, ptr noundef %72, ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef %82, ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(32) %651, ptr noundef nonnull align 8 dereferenceable(32) %85, ptr noundef nonnull align 8 dereferenceable(32) %89)
          to label %672 unwind label %753

672:                                              ; preds = %670
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  %673 = load i1, ptr %88, align 1
  br i1 %673, label %674, label %675

674:                                              ; preds = %672
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #9
  br label %675

675:                                              ; preds = %674, %672
  %676 = load i1, ptr %87, align 1
  br i1 %676, label %677, label %678

677:                                              ; preds = %675
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #9
  br label %678

678:                                              ; preds = %677, %675
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  %679 = load i1, ptr %81, align 1
  br i1 %679, label %680, label %681

680:                                              ; preds = %678
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  br label %681

681:                                              ; preds = %680, %678
  %682 = load i1, ptr %80, align 1
  br i1 %682, label %683, label %684

683:                                              ; preds = %681
  call void @llvm.lifetime.end.p0(i64 1, ptr %79) #9
  br label %684

684:                                              ; preds = %683, %681
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  %685 = load i1, ptr %77, align 1
  br i1 %685, label %686, label %687

686:                                              ; preds = %684
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %687

687:                                              ; preds = %686, %684
  %688 = load i1, ptr %76, align 1
  br i1 %688, label %689, label %690

689:                                              ; preds = %687
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #9
  br label %690

690:                                              ; preds = %689, %687
  %691 = load i1, ptr %75, align 1
  br i1 %691, label %692, label %693

692:                                              ; preds = %690
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #9
  br label %693

693:                                              ; preds = %692, %690
  %694 = load i1, ptr %73, align 1
  br i1 %694, label %695, label %696

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

696:                                              ; preds = %695, %693
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #9
  br label %795

697:                                              ; preds = %607
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %26, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %27, align 4
  br label %794

701:                                              ; preds = %611
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %26, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %27, align 4
  br label %793

705:                                              ; preds = %612
  %706 = landingpad { ptr, i32 }
          cleanup
  %707 = extractvalue { ptr, i32 } %706, 0
  store ptr %707, ptr %26, align 8
  %708 = extractvalue { ptr, i32 } %706, 1
  store i32 %708, ptr %27, align 4
  br label %792

709:                                              ; preds = %613
  %710 = landingpad { ptr, i32 }
          cleanup
  %711 = extractvalue { ptr, i32 } %710, 0
  store ptr %711, ptr %26, align 8
  %712 = extractvalue { ptr, i32 } %710, 1
  store i32 %712, ptr %27, align 4
  br label %791

713:                                              ; preds = %619
  %714 = landingpad { ptr, i32 }
          cleanup
  %715 = extractvalue { ptr, i32 } %714, 0
  store ptr %715, ptr %26, align 8
  %716 = extractvalue { ptr, i32 } %714, 1
  store i32 %716, ptr %27, align 4
  br label %790

717:                                              ; preds = %628
  %718 = landingpad { ptr, i32 }
          cleanup
  %719 = extractvalue { ptr, i32 } %718, 0
  store ptr %719, ptr %26, align 8
  %720 = extractvalue { ptr, i32 } %718, 1
  store i32 %720, ptr %27, align 4
  br label %780

721:                                              ; preds = %634
  %722 = landingpad { ptr, i32 }
          cleanup
  %723 = extractvalue { ptr, i32 } %722, 0
  store ptr %723, ptr %26, align 8
  %724 = extractvalue { ptr, i32 } %722, 1
  store i32 %724, ptr %27, align 4
  br label %776

725:                                              ; preds = %639
  %726 = landingpad { ptr, i32 }
          cleanup
  %727 = extractvalue { ptr, i32 } %726, 0
  store ptr %727, ptr %26, align 8
  %728 = extractvalue { ptr, i32 } %726, 1
  store i32 %728, ptr %27, align 4
  br label %769

729:                                              ; preds = %641
  %730 = landingpad { ptr, i32 }
          cleanup
  %731 = extractvalue { ptr, i32 } %730, 0
  store ptr %731, ptr %26, align 8
  %732 = extractvalue { ptr, i32 } %730, 1
  store i32 %732, ptr %27, align 4
  br label %768

733:                                              ; preds = %643
  %734 = landingpad { ptr, i32 }
          cleanup
  %735 = extractvalue { ptr, i32 } %734, 0
  store ptr %735, ptr %26, align 8
  %736 = extractvalue { ptr, i32 } %734, 1
  store i32 %736, ptr %27, align 4
  br label %767

737:                                              ; preds = %646
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %26, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %27, align 4
  br label %766

741:                                              ; preds = %656
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %26, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %27, align 4
  br label %765

745:                                              ; preds = %665
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %26, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %27, align 4
  br label %758

749:                                              ; preds = %667
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %26, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %27, align 4
  br label %757

753:                                              ; preds = %670
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %26, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %27, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %89) #9
  br label %757

757:                                              ; preds = %753, %749
  call void @llvm.lifetime.end.p0(i64 32, ptr %89) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  br label %758

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

760:                                              ; preds = %758
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %86) #9
  br label %761

761:                                              ; preds = %760, %758
  %762 = load i1, ptr %87, align 1
  br i1 %762, label %763, label %764

763:                                              ; preds = %761
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #9
  br label %764

764:                                              ; preds = %763, %761
  br label %765

765:                                              ; preds = %764, %741
  call void @llvm.lifetime.end.p0(i64 32, ptr %85) #9
  br label %766

766:                                              ; preds = %765, %737
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  br label %767

767:                                              ; preds = %766, %733
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #9
  br label %768

768:                                              ; preds = %767, %729
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #9
  br label %769

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

771:                                              ; preds = %769
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %79) #9
  br label %772

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

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

775:                                              ; preds = %774, %772
  br label %776

776:                                              ; preds = %775, %721
  call void @llvm.lifetime.end.p0(i64 32, ptr %78) #9
  %777 = load i1, ptr %77, align 1
  br i1 %777, label %778, label %779

778:                                              ; preds = %776
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %779

779:                                              ; preds = %778, %776
  br label %780

780:                                              ; preds = %779, %717
  %781 = load i1, ptr %76, align 1
  br i1 %781, label %782, label %783

782:                                              ; preds = %780
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #9
  br label %783

783:                                              ; preds = %782, %780
  %784 = load i1, ptr %75, align 1
  br i1 %784, label %785, label %786

785:                                              ; preds = %783
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #9
  br label %786

786:                                              ; preds = %785, %783
  %787 = load i1, ptr %73, align 1
  br i1 %787, label %788, label %789

788:                                              ; preds = %786
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #9
  br label %789

789:                                              ; preds = %788, %786
  br label %790

790:                                              ; preds = %789, %713
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #9
  br label %791

791:                                              ; preds = %790, %709
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %792

792:                                              ; preds = %791, %705
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %793

793:                                              ; preds = %792, %701
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br label %794

794:                                              ; preds = %793, %697
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %71) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #9
  br label %878

795:                                              ; preds = %696, %603, %596
  br label %796

796:                                              ; preds = %795, %571
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #9
  call void @_ZNSt10shared_ptrI12ResolveStateEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %90, ptr null) #9
  %797 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI12ResolveStateEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef nonnull align 8 dereferenceable(16) %90) #9
  call void @_ZNSt12__shared_ptrI12ResolveStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %90) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #9
  %798 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %799 unwind label %245

799:                                              ; preds = %796
  %800 = invoke noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %798)
          to label %801 unwind label %245

801:                                              ; preds = %799
  %802 = and i64 8388608, %800
  %803 = icmp ne i64 %802, 0
  br i1 %803, label %804, label %871

804:                                              ; preds = %801
  %805 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %806 unwind label %245

806:                                              ; preds = %804
  %807 = invoke noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %805)
          to label %808 unwind label %245

808:                                              ; preds = %806
  %809 = icmp sle i32 2, %807
  br i1 %809, label %810, label %871

810:                                              ; preds = %808
  %811 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
          to label %812 unwind label %245

812:                                              ; preds = %810
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %92) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %94) #9
  %813 = load i32, ptr %16, align 4, !tbaa !9
  %814 = mul nsw i32 %813, 11
  %815 = sext i32 %814 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %94, i64 noundef %815, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %95)
          to label %816 unwind label %832

816:                                              ; preds = %812
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %817 unwind label %836

817:                                              ; preds = %816
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.56)
          to label %818 unwind label %840

818:                                              ; preds = %817
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %91, ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef @.str.57)
          to label %819 unwind label %844

819:                                              ; preds = %818
  %820 = load ptr, ptr %15, align 8, !tbaa !5
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %96, ptr noundef nonnull align 8 dereferenceable(24) %820, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %821 unwind label %848

821:                                              ; preds = %819
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #9
  store i8 0, ptr %97, align 1, !tbaa !38
  %822 = call noundef ptr @_ZNKSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %31) #9
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11EPKSt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EEb(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %98, ptr noundef %822, i1 noundef zeroext false)
          to label %823 unwind label %852

823:                                              ; preds = %821
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #9
  %824 = load ptr, ptr %13, align 8, !tbaa !5
  %825 = invoke noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %824)
          to label %826 unwind label %856

826:                                              ; preds = %823
  store i64 %825, ptr %99, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %100) #9
  %827 = load ptr, ptr %13, align 8, !tbaa !5
  %828 = invoke noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %827)
          to label %829 unwind label %860

829:                                              ; preds = %826
  store i64 %828, ptr %100, align 8, !tbaa !11
  %830 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbS6_llEEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_(ptr noundef nonnull align 8 dereferenceable(12) %811, ptr noundef nonnull align 8 dereferenceable(32) %91, i32 noundef 8388608, i32 noundef 2, ptr noundef %96, ptr noundef nonnull align 1 dereferenceable(1) %97, ptr noundef %98, ptr noundef nonnull align 8 dereferenceable(8) %99, ptr noundef nonnull align 8 dereferenceable(8) %100)
          to label %831 unwind label %860

831:                                              ; preds = %829
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #9
  br label %871

832:                                              ; preds = %812
  %833 = landingpad { ptr, i32 }
          cleanup
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %26, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %27, align 4
  br label %870

836:                                              ; preds = %816
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %26, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %27, align 4
  br label %869

840:                                              ; preds = %817
  %841 = landingpad { ptr, i32 }
          cleanup
  %842 = extractvalue { ptr, i32 } %841, 0
  store ptr %842, ptr %26, align 8
  %843 = extractvalue { ptr, i32 } %841, 1
  store i32 %843, ptr %27, align 4
  br label %868

844:                                              ; preds = %818
  %845 = landingpad { ptr, i32 }
          cleanup
  %846 = extractvalue { ptr, i32 } %845, 0
  store ptr %846, ptr %26, align 8
  %847 = extractvalue { ptr, i32 } %845, 1
  store i32 %847, ptr %27, align 4
  br label %867

848:                                              ; preds = %819
  %849 = landingpad { ptr, i32 }
          cleanup
  %850 = extractvalue { ptr, i32 } %849, 0
  store ptr %850, ptr %26, align 8
  %851 = extractvalue { ptr, i32 } %849, 1
  store i32 %851, ptr %27, align 4
  br label %866

852:                                              ; preds = %821
  %853 = landingpad { ptr, i32 }
          cleanup
  %854 = extractvalue { ptr, i32 } %853, 0
  store ptr %854, ptr %26, align 8
  %855 = extractvalue { ptr, i32 } %853, 1
  store i32 %855, ptr %27, align 4
  br label %865

856:                                              ; preds = %823
  %857 = landingpad { ptr, i32 }
          cleanup
  %858 = extractvalue { ptr, i32 } %857, 0
  store ptr %858, ptr %26, align 8
  %859 = extractvalue { ptr, i32 } %857, 1
  store i32 %859, ptr %27, align 4
  br label %864

860:                                              ; preds = %829, %826
  %861 = landingpad { ptr, i32 }
          cleanup
  %862 = extractvalue { ptr, i32 } %861, 0
  store ptr %862, ptr %26, align 8
  %863 = extractvalue { ptr, i32 } %861, 1
  store i32 %863, ptr %27, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %100) #9
  br label %864

864:                                              ; preds = %860, %856
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #9
  br label %865

865:                                              ; preds = %864, %852
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  br label %866

866:                                              ; preds = %865, %848
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #9
  br label %867

867:                                              ; preds = %866, %844
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #9
  br label %868

868:                                              ; preds = %867, %840
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  br label %869

869:                                              ; preds = %868, %836
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #9
  br label %870

870:                                              ; preds = %869, %832
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %95) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %94) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %92) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #9
  br label %878

871:                                              ; preds = %831, %808, %801
  %872 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %31) #9
  %873 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %872) #9
  %874 = icmp eq i64 %873, 0
  br i1 %874, label %875, label %876

875:                                              ; preds = %871
  call void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #9
  store i32 1, ptr %59, align 4
  br label %877

876:                                              ; preds = %871
  call void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2EOS9_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %31) #9
  store i32 1, ptr %59, align 4
  br label %877

877:                                              ; preds = %876, %875
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #9
  call void @_ZNSt12__shared_ptrI12ResolveStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #9
  ret void

878:                                              ; preds = %870, %794, %562, %294, %245
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #9
  br label %879

879:                                              ; preds = %878, %241
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #9
  call void @_ZNSt12__shared_ptrI12ResolveStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #9
  br label %880

880:                                              ; preds = %879, %237
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #9
  br label %881

881:                                              ; preds = %880, %157
  %882 = load ptr, ptr %26, align 8
  %883 = load i32, ptr %27, align 4
  %884 = insertvalue { ptr, i32 } poison, ptr %882, 0
  %885 = insertvalue { ptr, i32 } %884, i32 %883, 1
  resume { ptr, i32 } %885

886:                                              ; preds = %558
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN12ResolveStateC1EP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEii(ptr, ptr, ptr, ptr, i32, i32)

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !15, i64 96}
!14 = !{!"_ZTS12ResolveState", !15, i64 0, !10, i64 4, !16, i64 8, !10, i64 24, !10, i64 28, !10, i64 32, !19, i64 40, !23, i64 64, !15, i64 96, !12, i64 104, !23, i64 112, !25, i64 144, !10, i64 160, !10, i64 164, !6, i64 168, !27, i64 176, !12, i64 192, !29, i64 200, !12, i64 216, !6, i64 224, !12, i64 232, !10, i64 240}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"_ZTSSt10shared_ptrI7HtnTermE", !17, i64 0}
!17 = !{!"_ZTSSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !18, i64 8}
!18 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!19 = !{!"_ZTSSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !12, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!25 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !18, i64 8}
!27 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I11ResolveNodeESaIS2_EEE", !28, i64 0}
!28 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !18, i64 8}
!29 = !{!"_ZTSSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEE", !30, i64 0}
!30 = !{!"_ZTSSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !18, i64 8}
!31 = !{i8 0, i8 2}
!32 = !{}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = !{!14, !12, i64 104}
!36 = !{!14, !10, i64 32}
!37 = !{!14, !10, i64 24}
!38 = !{!15, !15, 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.9" = type { %"class.std::__shared_ptr.10" }
%"class.std::__shared_ptr.10" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::allocator" = type { i8 }
%"class.std::shared_ptr.150" = type { %"class.std::__shared_ptr.151" }
%"class.std::__shared_ptr.151" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }

@.str.5 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [50 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN15HtnGoalResolver10ResolveAllEP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEiiPlPiPS9_(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.9") align 8 %0, ptr noundef nonnull align 8 dereferenceable(64) %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef %5, i32 noundef %6, ptr noundef writeonly %7, ptr noundef writeonly %8, ptr noundef %9) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca i64, align 8
  %18 = alloca %"class.std::shared_ptr.150", align 8
  %19 = alloca %"class.std::shared_ptr.9", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::shared_ptr.0", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca i64, align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca i64, 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::__cxx11::basic_string", align 8
  %47 = alloca %"class.std::allocator", align 1
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca i64, align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::allocator", align 1
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::shared_ptr.150", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::allocator", align 1
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca i8, align 1
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca i64, align 8
  %75 = alloca i64, align 8
  %76 = tail call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %77 = tail call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %76)
  %78 = and i64 %77, 8388608
  %.not = icmp eq i64 %78, 0
  br i1 %.not, label %113, label %79

79:                                               ; preds = %10
  %80 = tail call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %81 = tail call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %80)
  %82 = icmp sgt i32 %81, 1
  br i1 %82, label %83, label %113

83:                                               ; preds = %79
  %84 = tail call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #9
  %85 = mul nsw i32 %5, 11
  %86 = sext i32 %85 to i64
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 noundef %86, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %87 unwind label %96

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

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

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

90:                                               ; preds = %89
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %91 unwind label %104

91:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #9
  %92 = call noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  store i64 %92, ptr %17, align 8, !tbaa !5
  %93 = call noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  %94 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEllEEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %84, ptr noundef nonnull align 8 dereferenceable(32) %11, i32 noundef 8388608, i32 noundef 2, ptr noundef nonnull %16, ptr noundef nonnull align 8 dereferenceable(8) %17, i64 noundef %93)
          to label %95 unwind label %106

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

96:                                               ; preds = %83
  %97 = landingpad { ptr, i32 }
          cleanup
  br label %112

98:                                               ; preds = %87
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %111

100:                                              ; preds = %88
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %110

102:                                              ; preds = %89
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %109

104:                                              ; preds = %90
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %108

106:                                              ; preds = %91
  %107 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %108

108:                                              ; preds = %106, %104
  %.pn = phi { ptr, i32 } [ %107, %106 ], [ %105, %104 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #9
  br label %109

109:                                              ; preds = %108, %102
  %.pn.pn = phi { ptr, i32 } [ %.pn, %108 ], [ %103, %102 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  br label %110

110:                                              ; preds = %109, %100
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %109 ], [ %101, %100 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #9
  br label %111

111:                                              ; preds = %110, %98
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %110 ], [ %99, %98 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %112

112:                                              ; preds = %111, %96
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %111 ], [ %97, %96 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #9
  br label %507

113:                                              ; preds = %95, %79, %10
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #9
  %114 = call noalias noundef nonnull dereferenceable(248) ptr @_Znwm(i64 noundef 248) #10
  invoke void @_ZN12ResolveStateC1EP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEii(ptr noundef nonnull align 8 dereferenceable(244) %114, ptr noundef %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(24) %4, i32 noundef %5, i32 noundef %6)
          to label %115 unwind label %159

115:                                              ; preds = %113
  call void @_ZNSt10shared_ptrI12ResolveStateEC2IS0_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull %114)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #9
  %116 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #10
          to label %117 unwind label %161

117:                                              ; preds = %115
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %116, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %116) #9
  invoke void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2IS8_vEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull %116)
          to label %.preheader unwind label %161

.preheader:                                       ; preds = %117
  %118 = mul nsw i32 %5, 11
  %119 = sext i32 %118 to i64
  br label %120

120:                                              ; preds = %.preheader, %338
  %121 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %122 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %121)
  %123 = and i64 %122, 8388608
  %.not148 = icmp eq i64 %123, 0
  br i1 %.not148, label %184, label %124

124:                                              ; preds = %120
  %125 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %126 = getelementptr inbounds i8, ptr %125, i64 96
  %127 = load i8, ptr %126, align 8, !tbaa !9, !range !29, !noundef !30
  %128 = trunc nuw i8 %127 to i1
  %129 = select i1 %128, i32 0, i32 2
  %130 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %131 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %130)
  %.not149 = icmp sgt i32 %129, %131
  br i1 %.not149, label %184, label %132

132:                                              ; preds = %124
  %133 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, i64 noundef %119, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %134 unwind label %165

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

135:                                              ; preds = %134
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull @.str.48)
          to label %136 unwind label %169

136:                                              ; preds = %135
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.49)
          to label %137 unwind label %171

137:                                              ; preds = %136
  %138 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %139 = getelementptr inbounds i8, ptr %138, i64 96
  %140 = load i8, ptr %139, align 8, !tbaa !9, !range !29, !noundef !30
  %141 = trunc nuw i8 %140 to i1
  %142 = select i1 %141, i32 0, i32 2
  %143 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %144 = getelementptr inbounds i8, ptr %143, i64 176
  %145 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %144) #9
  %146 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %145) #9
  %.not150.not = icmp eq i64 %146, 0
  br i1 %.not150.not, label %155, label %147

147:                                              ; preds = %137
  %148 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %149 = getelementptr inbounds i8, ptr %148, i64 176
  %150 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %149) #9
  %151 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt6vectorISt10shared_ptrI11ResolveNodeESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %150) #9
  %152 = call noundef ptr @_ZNKSt19__shared_ptr_accessI11ResolveNodeLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %151) #9
  %153 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK11ResolveNode9resolventEv(ptr noundef nonnull align 8 dereferenceable(144) %152)
  %154 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %153) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(24) %154, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %156 unwind label %173

155:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %156 unwind label %175

156:                                              ; preds = %155, %147
  %157 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEdRKS6_i11TraceDetailT_(ptr noundef nonnull align 8 dereferenceable(12) %133, ptr noundef nonnull align 8 dereferenceable(32) %20, i32 noundef 8388608, i32 noundef %142, ptr noundef nonnull %25)
          to label %158 unwind label %177

158:                                              ; preds = %156
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br i1 %.not150.not, label %.critedge, label %.critedge215

.critedge:                                        ; preds = %158
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #9
  br label %.critedge215

.critedge215:                                     ; preds = %158, %.critedge
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  br label %184

159:                                              ; preds = %113
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %114, i64 noundef 248) #11
  br label %506

161:                                              ; preds = %117, %115
  %162 = landingpad { ptr, i32 }
          cleanup
  br label %505

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

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

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

169:                                              ; preds = %135
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %181

171:                                              ; preds = %136
  %172 = landingpad { ptr, i32 }
          cleanup
  br label %180

173:                                              ; preds = %147
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %179

175:                                              ; preds = %155
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge217

177:                                              ; preds = %156
  %178 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br i1 %.not150.not, label %.critedge217, label %179

.critedge217:                                     ; preds = %177, %175
  %.pn151.ph = phi { ptr, i32 } [ %176, %175 ], [ %178, %177 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #9
  br label %179

179:                                              ; preds = %177, %.critedge217, %173
  %.pn151.pn = phi { ptr, i32 } [ %.pn151.ph, %.critedge217 ], [ %174, %173 ], [ %178, %177 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  br label %180

180:                                              ; preds = %179, %171
  %.pn151.pn.pn = phi { ptr, i32 } [ %.pn151.pn, %179 ], [ %172, %171 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %181

181:                                              ; preds = %180, %169
  %.pn151.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn, %180 ], [ %170, %169 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %182

182:                                              ; preds = %181, %167
  %.pn151.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn.pn, %181 ], [ %168, %167 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %183

183:                                              ; preds = %182, %165
  %.pn151.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn151.pn.pn.pn.pn, %182 ], [ %166, %165 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  br label %504

184:                                              ; preds = %.critedge215, %124, %120
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #9
  %185 = call noundef ptr @_ZNKSt12__shared_ptrI12ResolveStateLN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  invoke void @_ZN15HtnGoalResolver11ResolveNextEP12ResolveState(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.0") align 8 %27, ptr noundef nonnull align 8 dereferenceable(64) %1, ptr noundef %185)
          to label %186 unwind label %220

186:                                              ; preds = %184
  %187 = call noundef zeroext i1 @_ZStneISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEEbRKS2_IT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr null) #9
  %188 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %189 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %188)
  %190 = and i64 %189, 8388608
  %.not166 = icmp eq i64 %190, 0
  br i1 %187, label %191, label %247

191:                                              ; preds = %186
  br i1 %.not166, label %244, label %192

192:                                              ; preds = %191
  %193 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %194 = getelementptr inbounds i8, ptr %193, i64 96
  %195 = load i8, ptr %194, align 8, !tbaa !9, !range !29, !noundef !30
  %196 = trunc nuw i8 %195 to i1
  %197 = select i1 %196, i32 0, i32 2
  %198 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %199 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %198)
  %.not167 = icmp sgt i32 %197, %199
  br i1 %.not167, label %244, label %200

200:                                              ; preds = %192
  %201 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, i64 noundef %119, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %202 unwind label %224

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

203:                                              ; preds = %202
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.51)
          to label %204 unwind label %228

204:                                              ; preds = %203
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull @.str.52)
          to label %205 unwind label %230

205:                                              ; preds = %204
  %206 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %207 = getelementptr inbounds i8, ptr %206, i64 96
  %208 = load i8, ptr %207, align 8, !tbaa !9, !range !29, !noundef !30
  %209 = trunc nuw i8 %208 to i1
  %210 = select i1 %209, i32 0, i32 2
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %211 unwind label %232

211:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  %212 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %27) #9
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11ERKSt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(24) %212, i1 noundef zeroext false)
          to label %213 unwind label %234

213:                                              ; preds = %211
  %214 = call noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #9
  %215 = call noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  store i64 %215, ptr %35, align 8, !tbaa !5
  %216 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %217 = getelementptr inbounds i8, ptr %216, i64 112
  %218 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_llS6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_(ptr noundef nonnull align 8 dereferenceable(12) %201, ptr noundef nonnull align 8 dereferenceable(32) %28, i32 noundef 8388608, i32 noundef %210, ptr noundef nonnull %33, ptr noundef nonnull align 8 dereferenceable(32) %34, i64 noundef %214, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(32) %217)
          to label %219 unwind label %236

219:                                              ; preds = %213
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  br label %244

220:                                              ; preds = %184
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %341

222:                                              ; preds = %244
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %340

224:                                              ; preds = %200
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %243

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

228:                                              ; preds = %203
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %241

230:                                              ; preds = %204
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %240

232:                                              ; preds = %205
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %239

234:                                              ; preds = %211
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %238

236:                                              ; preds = %213
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #9
  br label %238

238:                                              ; preds = %236, %234
  %.pn168 = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #9
  br label %239

239:                                              ; preds = %238, %232
  %.pn168.pn = phi { ptr, i32 } [ %.pn168, %238 ], [ %233, %232 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %240

240:                                              ; preds = %239, %230
  %.pn168.pn.pn = phi { ptr, i32 } [ %.pn168.pn, %239 ], [ %231, %230 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %241

241:                                              ; preds = %240, %228
  %.pn168.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn, %240 ], [ %229, %228 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %242

242:                                              ; preds = %241, %226
  %.pn168.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn, %241 ], [ %227, %226 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  br label %243

243:                                              ; preds = %242, %224
  %.pn168.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn168.pn.pn.pn.pn, %242 ], [ %225, %224 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #9
  br label %340

244:                                              ; preds = %219, %192, %191
  %245 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  %246 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNKSt19__shared_ptr_accessISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %27) #9
  invoke void @_ZNSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE9push_backERKS6_(ptr noundef nonnull align 8 dereferenceable(24) %245, ptr noundef nonnull align 8 dereferenceable(24) %246)
          to label %289 unwind label %222

247:                                              ; preds = %186
  br i1 %.not166, label %342, label %248

248:                                              ; preds = %247
  %249 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %250 = getelementptr inbounds i8, ptr %249, i64 96
  %251 = load i8, ptr %250, align 8, !tbaa !9, !range !29, !noundef !30
  %252 = trunc nuw i8 %251 to i1
  %253 = select i1 %252, i32 0, i32 2
  %254 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %255 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %254)
  %.not159 = icmp sgt i32 %253, %255
  br i1 %.not159, label %342, label %256

256:                                              ; preds = %248
  %257 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, i64 noundef %119, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %258 unwind label %272

258:                                              ; preds = %256
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %259 unwind label %274

259:                                              ; preds = %258
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.51)
          to label %260 unwind label %276

260:                                              ; preds = %259
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.53)
          to label %261 unwind label %278

261:                                              ; preds = %260
  %262 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %263 = getelementptr inbounds i8, ptr %262, i64 96
  %264 = load i8, ptr %263, align 8, !tbaa !9, !range !29, !noundef !30
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %265 unwind label %280

265:                                              ; preds = %261
  %266 = trunc nuw i8 %264 to i1
  %267 = select i1 %266, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #9
  %268 = call noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  store i64 %268, ptr %42, align 8, !tbaa !5
  %269 = call noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  %270 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEllEEdRKS6_i11TraceDetailT_RKT0_T1_(ptr noundef nonnull align 8 dereferenceable(12) %257, ptr noundef nonnull align 8 dereferenceable(32) %36, i32 noundef 8388608, i32 noundef %267, ptr noundef nonnull %41, ptr noundef nonnull align 8 dereferenceable(8) %42, i64 noundef %269)
          to label %271 unwind label %282

271:                                              ; preds = %265
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  br label %342

272:                                              ; preds = %256
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %288

274:                                              ; preds = %258
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %287

276:                                              ; preds = %259
  %277 = landingpad { ptr, i32 }
          cleanup
  br label %286

278:                                              ; preds = %260
  %279 = landingpad { ptr, i32 }
          cleanup
  br label %285

280:                                              ; preds = %261
  %281 = landingpad { ptr, i32 }
          cleanup
  br label %284

282:                                              ; preds = %265
  %283 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #9
  br label %284

284:                                              ; preds = %282, %280
  %.pn160 = phi { ptr, i32 } [ %283, %282 ], [ %281, %280 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %285

285:                                              ; preds = %284, %278
  %.pn160.pn = phi { ptr, i32 } [ %.pn160, %284 ], [ %279, %278 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %286

286:                                              ; preds = %285, %276
  %.pn160.pn.pn = phi { ptr, i32 } [ %.pn160.pn, %285 ], [ %277, %276 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %287

287:                                              ; preds = %286, %274
  %.pn160.pn.pn.pn = phi { ptr, i32 } [ %.pn160.pn.pn, %286 ], [ %275, %274 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #9
  br label %288

288:                                              ; preds = %287, %272
  %.pn160.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn160.pn.pn.pn, %287 ], [ %273, %272 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #9
  br label %340

289:                                              ; preds = %244
  %290 = call noundef zeroext i1 @_ZN14HtnTermFactory11outOfMemoryEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  br i1 %290, label %291, label %338

291:                                              ; preds = %289
  %292 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %293 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %292)
  %294 = and i64 %293, 8388608
  %.not175 = icmp eq i64 %294, 0
  br i1 %.not175, label %342, label %295

295:                                              ; preds = %291
  %296 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %297 = getelementptr inbounds i8, ptr %296, i64 96
  %298 = load i8, ptr %297, align 8, !tbaa !9, !range !29, !noundef !30
  %299 = trunc nuw i8 %298 to i1
  %300 = select i1 %299, i32 0, i32 2
  %301 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %302 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %301)
  %.not176 = icmp sgt i32 %300, %302
  br i1 %.not176, label %342, label %303

303:                                              ; preds = %295
  %304 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %46, i64 noundef %119, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %47)
          to label %305 unwind label %321

305:                                              ; preds = %303
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %306 unwind label %323

306:                                              ; preds = %305
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(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 @.str.51)
          to label %307 unwind label %325

307:                                              ; preds = %306
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull @.str.54)
          to label %308 unwind label %327

308:                                              ; preds = %307
  %309 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %310 = getelementptr inbounds i8, ptr %309, i64 96
  %311 = load i8, ptr %310, align 8, !tbaa !9, !range !29, !noundef !30
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %48, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %312 unwind label %329

312:                                              ; preds = %308
  %313 = trunc nuw i8 %311 to i1
  %314 = select i1 %313, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #9
  %315 = call noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  store i64 %315, ptr %49, align 8, !tbaa !5
  %316 = call noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  %317 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %318 = getelementptr inbounds i8, ptr %317, i64 112
  %319 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEllS6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_(ptr noundef nonnull align 8 dereferenceable(12) %304, ptr noundef nonnull align 8 dereferenceable(32) %43, i32 noundef 8388608, i32 noundef %314, ptr noundef nonnull %48, ptr noundef nonnull align 8 dereferenceable(8) %49, i64 noundef %316, ptr noundef nonnull align 8 dereferenceable(32) %318)
          to label %320 unwind label %331

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

321:                                              ; preds = %303
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %337

323:                                              ; preds = %305
  %324 = landingpad { ptr, i32 }
          cleanup
  br label %336

325:                                              ; preds = %306
  %326 = landingpad { ptr, i32 }
          cleanup
  br label %335

327:                                              ; preds = %307
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %334

329:                                              ; preds = %308
  %330 = landingpad { ptr, i32 }
          cleanup
  br label %333

331:                                              ; preds = %312
  %332 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #9
  br label %333

333:                                              ; preds = %331, %329
  %.pn177 = phi { ptr, i32 } [ %332, %331 ], [ %330, %329 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %334

334:                                              ; preds = %333, %327
  %.pn177.pn = phi { ptr, i32 } [ %.pn177, %333 ], [ %328, %327 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br label %335

335:                                              ; preds = %334, %325
  %.pn177.pn.pn = phi { ptr, i32 } [ %.pn177.pn, %334 ], [ %326, %325 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %336

336:                                              ; preds = %335, %323
  %.pn177.pn.pn.pn = phi { ptr, i32 } [ %.pn177.pn.pn, %335 ], [ %324, %323 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #9
  br label %337

337:                                              ; preds = %336, %321
  %.pn177.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn177.pn.pn.pn, %336 ], [ %322, %321 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %47) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #9
  br label %340

338:                                              ; preds = %289
  %339 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @_ZN12ResolveState13ClearFailuresEv(ptr noundef nonnull align 8 dereferenceable(244) %339)
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #9
  br label %120

340:                                              ; preds = %337, %288, %243, %222
  %.pn177.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn177.pn.pn.pn.pn, %337 ], [ %223, %222 ], [ %.pn168.pn.pn.pn.pn.pn, %243 ], [ %.pn160.pn.pn.pn.pn, %288 ]
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #9
  br label %341

341:                                              ; preds = %340, %220
  %.pn177.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn177.pn.pn.pn.pn.pn, %340 ], [ %221, %220 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #9
  br label %504

342:                                              ; preds = %271, %248, %247, %320, %295, %291
  call void @_ZNSt12__shared_ptrISt6vectorISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #9
  %.not185 = icmp eq ptr %7, null
  br i1 %.not185, label %347, label %343

343:                                              ; preds = %342
  %344 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %345 = getelementptr inbounds i8, ptr %344, i64 104
  %346 = load i64, ptr %345, align 8, !tbaa !31
  store i64 %346, ptr %7, align 8, !tbaa !5
  br label %347

347:                                              ; preds = %343, %342
  %348 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  %349 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %348) #9
  %350 = icmp eq i64 %349, 0
  br i1 %350, label %351, label %455

351:                                              ; preds = %347
  %.not186 = icmp eq ptr %8, null
  br i1 %.not186, label %356, label %352

352:                                              ; preds = %351
  %353 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %354 = getelementptr inbounds i8, ptr %353, i64 32
  %355 = load i32, ptr %354, align 8, !tbaa !32
  store i32 %355, ptr %8, align 4, !tbaa !33
  br label %356

356:                                              ; preds = %352, %351
  %.not187 = icmp eq ptr %9, null
  br i1 %.not187, label %361, label %357

357:                                              ; preds = %356
  %358 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %359 = getelementptr inbounds i8, ptr %358, i64 40
  %360 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %359)
          to label %361 unwind label %163

361:                                              ; preds = %357, %356
  %362 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %363 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %362)
  %364 = and i64 %363, 8388608
  %.not188 = icmp eq i64 %364, 0
  br i1 %.not188, label %455, label %365

365:                                              ; preds = %361
  %366 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %367 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %366)
  %368 = icmp sgt i32 %367, -1
  br i1 %368, label %369, label %455

369:                                              ; preds = %365
  %370 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %50) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %52) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, i64 noundef %119, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %371 unwind label %422

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

372:                                              ; preds = %371
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull @.str.14)
          to label %373 unwind label %426

373:                                              ; preds = %372
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.55)
          to label %374 unwind label %428

374:                                              ; preds = %373
  %375 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %376 = getelementptr inbounds i8, ptr %375, i64 24
  %377 = load i32, ptr %376, align 8, !tbaa !34
  %378 = icmp sgt i32 %377, -1
  br i1 %378, label %379, label %386

379:                                              ; preds = %374
  %380 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %381 = getelementptr inbounds i8, ptr %380, i64 24
  %382 = load i32, ptr %381, align 8, !tbaa !34
  %383 = sext i32 %382 to i64
  %384 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %383) #9
  %385 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %384) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(72) %385, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %387 unwind label %430

386:                                              ; preds = %374
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %56) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %56)
          to label %387 unwind label %432

387:                                              ; preds = %386, %379
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #9
  %388 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %389 = getelementptr inbounds i8, ptr %388, i64 8
  %390 = call noundef zeroext i1 @_ZStneI7HtnTermEbRKSt10shared_ptrIT_EDn(ptr noundef nonnull align 8 dereferenceable(16) %389, ptr null) #9
  br i1 %390, label %391, label %395

391:                                              ; preds = %387
  %392 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %393 = getelementptr inbounds i8, ptr %392, i64 8
  %394 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %393) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(72) %394, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %396 unwind label %434

395:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %396 unwind label %.thread250

396:                                              ; preds = %395, %391
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %397 unwind label %437

397:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #9
  %398 = call noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  store i64 %398, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #9
  %399 = call noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  store i64 %399, ptr %61, align 8, !tbaa !5
  %400 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %401 = getelementptr inbounds i8, ptr %400, i64 64
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #9
  %402 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %403 = getelementptr inbounds i8, ptr %402, i64 32
  %404 = load i32, ptr %403, align 8, !tbaa !32
  %405 = icmp slt i32 %404, 0
  br i1 %405, label %413, label %406

406:                                              ; preds = %397
  %407 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %408 = getelementptr inbounds i8, ptr %407, i64 32
  %409 = load i32, ptr %408, align 8, !tbaa !32
  %410 = sext i32 %409 to i64
  %411 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrI7HtnTermESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %410) #9
  %412 = call noundef ptr @_ZNKSt19__shared_ptr_accessI7HtnTermLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %411) #9
  invoke void @_ZN7HtnTerm8ToStringB5cxx11Ebb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(72) %412, i1 noundef zeroext false, i1 noundef zeroext false)
          to label %414 unwind label %439

413:                                              ; preds = %397
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull @.str.50, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %414 unwind label %.thread246

414:                                              ; preds = %413, %406
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %64) #9
  %415 = call noundef ptr @_ZNKSt19__shared_ptr_accessI12ResolveStateLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  %416 = getelementptr inbounds i8, ptr %415, i64 40
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(24) %416, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %417 unwind label %442

417:                                              ; preds = %414
  %418 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_llS6_S6_S6_EEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_RKT4_RKT5_RKT6_(ptr noundef nonnull align 8 dereferenceable(12) %370, ptr noundef nonnull align 8 dereferenceable(32) %50, i32 noundef 8388608, i32 noundef 0, ptr noundef nonnull %55, ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull %59, ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %419 unwind label %444

419:                                              ; preds = %417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br i1 %405, label %420, label %.critedge219

420:                                              ; preds = %419
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #9
  br label %.critedge219

.critedge219:                                     ; preds = %419, %420
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br i1 %390, label %.critedge221, label %421

421:                                              ; preds = %.critedge219
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #9
  br label %.critedge221

.critedge221:                                     ; preds = %.critedge219, %421
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br i1 %378, label %.critedge225, label %.critedge223

.critedge223:                                     ; preds = %.critedge221
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #9
  br label %.critedge225

.critedge225:                                     ; preds = %.critedge221, %.critedge223
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  br label %455

422:                                              ; preds = %369
  %423 = landingpad { ptr, i32 }
          cleanup
  br label %454

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

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

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

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

432:                                              ; preds = %386
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge231

434:                                              ; preds = %391
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge229

.thread250:                                       ; preds = %395
  %436 = landingpad { ptr, i32 }
          cleanup
  br label %449

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

439:                                              ; preds = %406
  %440 = landingpad { ptr, i32 }
          cleanup
  br label %.critedge227

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

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

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

446:                                              ; preds = %442, %444
  %.pn189 = phi { ptr, i32 } [ %445, %444 ], [ %443, %442 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %64) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  br i1 %405, label %447, label %.critedge227

447:                                              ; preds = %.thread246, %446
  %.pn189.pn249 = phi { ptr, i32 } [ %441, %.thread246 ], [ %.pn189, %446 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #9
  br label %.critedge227

.critedge227:                                     ; preds = %446, %447, %439
  %.pn189.pn.pn = phi { ptr, i32 } [ %.pn189.pn249, %447 ], [ %440, %439 ], [ %.pn189, %446 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %448

448:                                              ; preds = %437, %.critedge227
  %.pn189.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn, %.critedge227 ], [ %438, %437 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #9
  br i1 %390, label %.critedge229, label %449

449:                                              ; preds = %.thread250, %448
  %.pn189.pn.pn.pn.pn253 = phi { ptr, i32 } [ %436, %.thread250 ], [ %.pn189.pn.pn.pn, %448 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #9
  br label %.critedge229

.critedge229:                                     ; preds = %448, %449, %434
  %.pn189.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn.pn.pn253, %449 ], [ %435, %434 ], [ %.pn189.pn.pn.pn, %448 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #9
  br i1 %378, label %450, label %.critedge231

.critedge231:                                     ; preds = %.critedge229, %432
  %.pn189.pn.pn.pn.pn.pn.pn.ph = phi { ptr, i32 } [ %433, %432 ], [ %.pn189.pn.pn.pn.pn.pn, %.critedge229 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %56) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %56) #9
  br label %450

450:                                              ; preds = %.critedge229, %.critedge231, %430
  %.pn189.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn.pn.pn.pn.pn.ph, %.critedge231 ], [ %431, %430 ], [ %.pn189.pn.pn.pn.pn.pn, %.critedge229 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #9
  br label %451

451:                                              ; preds = %450, %428
  %.pn189.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn.pn.pn.pn.pn.pn, %450 ], [ %429, %428 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  br label %452

452:                                              ; preds = %451, %426
  %.pn189.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn.pn.pn.pn.pn.pn.pn, %451 ], [ %427, %426 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %453

453:                                              ; preds = %452, %424
  %.pn189.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn.pn.pn.pn.pn.pn.pn.pn, %452 ], [ %425, %424 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #9
  br label %454

454:                                              ; preds = %453, %422
  %.pn189.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn189.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %453 ], [ %423, %422 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %52) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %50) #9
  br label %504

455:                                              ; preds = %361, %365, %.critedge225, %347
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #9
  call void @_ZNSt10shared_ptrI12ResolveStateEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr null) #9
  %456 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrI12ResolveStateEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %65) #9
  call void @_ZNSt12__shared_ptrI12ResolveStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #9
  %457 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %458 = call noundef i64 @_ZN9NanoTrace16allowedTraceTypeEv(ptr noundef nonnull align 8 dereferenceable(12) %457)
  %459 = and i64 %458, 8388608
  %.not202 = icmp eq i64 %459, 0
  br i1 %.not202, label %497, label %460

460:                                              ; preds = %455
  %461 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  %462 = call noundef i32 @_ZN9NanoTrace11detailLevelEv(ptr noundef nonnull align 8 dereferenceable(12) %461)
  %463 = icmp sgt i32 %462, 1
  br i1 %463, label %464, label %497

464:                                              ; preds = %460
  %465 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN9NanoTrace6GlobalEv()
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %70) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEmcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %69, i64 noundef %119, i8 noundef signext 32, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %466 unwind label %477

466:                                              ; preds = %464
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull @.str.5, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %467 unwind label %479

467:                                              ; preds = %466
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef nonnull @.str.56)
          to label %468 unwind label %481

468:                                              ; preds = %467
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.57)
          to label %469 unwind label %483

469:                                              ; preds = %468
  invoke void @_ZN7HtnTerm8ToStringB5cxx11ERKSt6vectorISt10shared_ptrIS_ESaIS2_EEbb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(24) %4, i1 noundef zeroext true, i1 noundef zeroext false)
          to label %470 unwind label %485

470:                                              ; preds = %469
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %72) #9
  store i8 0, ptr %72, align 1, !tbaa !35
  %471 = call noundef ptr @_ZNKSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %19) #9
  invoke void @_ZN15HtnGoalResolver8ToStringB5cxx11EPKSt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EEb(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef %471, i1 noundef zeroext false)
          to label %472 unwind label %487

472:                                              ; preds = %470
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #9
  %473 = call noundef i64 @_ZN14HtnTermFactory10stringSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  store i64 %473, ptr %74, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %75) #9
  %474 = call noundef i64 @_ZN14HtnTermFactory19otherAllocationSizeEv(ptr noundef nonnull align 8 dereferenceable(33088) %2)
  store i64 %474, ptr %75, align 8, !tbaa !5
  %475 = invoke noundef double @_ZN9NanoTrace5TraceINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEbS6_llEEdRKS6_i11TraceDetailT_RKT0_T1_RKT2_RKT3_(ptr noundef nonnull align 8 dereferenceable(12) %465, ptr noundef nonnull align 8 dereferenceable(32) %66, i32 noundef 8388608, i32 noundef 2, ptr noundef nonnull %71, ptr noundef nonnull align 1 dereferenceable(1) %72, ptr noundef nonnull %73, ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %75)
          to label %476 unwind label %489

476:                                              ; preds = %472
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  br label %497

477:                                              ; preds = %464
  %478 = landingpad { ptr, i32 }
          cleanup
  br label %496

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

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

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

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

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

489:                                              ; preds = %472
  %490 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #9
  br label %491

491:                                              ; preds = %489, %487
  %.pn203 = phi { ptr, i32 } [ %490, %489 ], [ %488, %487 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %72) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #9
  br label %492

492:                                              ; preds = %491, %485
  %.pn203.pn = phi { ptr, i32 } [ %.pn203, %491 ], [ %486, %485 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #9
  br label %493

493:                                              ; preds = %492, %483
  %.pn203.pn.pn = phi { ptr, i32 } [ %.pn203.pn, %492 ], [ %484, %483 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #9
  br label %494

494:                                              ; preds = %493, %481
  %.pn203.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn, %493 ], [ %482, %481 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #9
  br label %495

495:                                              ; preds = %494, %479
  %.pn203.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn.pn, %494 ], [ %480, %479 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #9
  br label %496

496:                                              ; preds = %495, %477
  %.pn203.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn.pn.pn, %495 ], [ %478, %477 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %68) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #9
  br label %504

497:                                              ; preds = %476, %460, %455
  %498 = call noundef ptr @_ZNKSt19__shared_ptr_accessISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %19) #9
  %499 = call noundef i64 @_ZNKSt6vectorIS_ISt4pairISt10shared_ptrI7HtnTermES3_ESaIS4_EESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %498) #9
  %500 = icmp eq i64 %499, 0
  br i1 %500, label %501, label %502

501:                                              ; preds = %497
  call void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr null) #9
  br label %503

502:                                              ; preds = %497
  call void @_ZNSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEEC2EOS9_(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(16) %19) #9
  br label %503

503:                                              ; preds = %502, %501
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #9
  call void @_ZNSt12__shared_ptrI12ResolveStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #9
  ret void

504:                                              ; preds = %496, %454, %341, %183, %163
  %.pn203.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn.pn.pn.pn, %496 ], [ %.pn189.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %454 ], [ %164, %163 ], [ %.pn177.pn.pn.pn.pn.pn.pn, %341 ], [ %.pn151.pn.pn.pn.pn.pn, %183 ]
  call void @_ZNSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #9
  br label %505

505:                                              ; preds = %504, %161
  %.pn203.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn.pn.pn.pn.pn, %504 ], [ %162, %161 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #9
  call void @_ZNSt12__shared_ptrI12ResolveStateLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #9
  br label %506

506:                                              ; preds = %505, %159
  %.pn203.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn.pn.pn.pn.pn.pn, %505 ], [ %160, %159 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #9
  br label %507

507:                                              ; preds = %506, %112
  %.pn203.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn203.pn.pn.pn.pn.pn.pn.pn.pn, %506 ], [ %.pn.pn.pn.pn.pn, %112 ]
  resume { ptr, i32 } %.pn203.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN12ResolveStateC1EP14HtnTermFactoryP10HtnRuleSetRKSt6vectorISt10shared_ptrI7HtnTermESaIS7_EEii(ptr, ptr, ptr, ptr, i32, i32) local_unnamed_addr

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 96}
!10 = !{!"_ZTS12ResolveState", !11, i64 0, !12, i64 4, !13, i64 8, !12, i64 24, !12, i64 28, !12, i64 32, !17, i64 40, !21, i64 64, !11, i64 96, !6, i64 104, !21, i64 112, !23, i64 144, !12, i64 160, !12, i64 164, !15, i64 168, !25, i64 176, !6, i64 192, !27, i64 200, !6, i64 216, !15, i64 224, !6, i64 232, !12, i64 240}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!"_ZTSSt10shared_ptrI7HtnTermE", !14, i64 0}
!14 = !{!"_ZTSSt12__shared_ptrI7HtnTermLN9__gnu_cxx12_Lock_policyE2EE", !15, i64 0, !16, i64 8}
!15 = !{!"any pointer", !7, i64 0}
!16 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !15, i64 0}
!17 = !{!"_ZTSSt6vectorISt10shared_ptrI7HtnTermESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrI7HtnTermESaIS2_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !6, i64 8, !7, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !15, i64 0}
!23 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I7HtnTermESaIS2_EEE", !24, i64 0}
!24 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI7HtnTermESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !15, i64 0, !16, i64 8}
!25 = !{!"_ZTSSt10shared_ptrISt6vectorIS_I11ResolveNodeESaIS2_EEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrISt6vectorISt10shared_ptrI11ResolveNodeESaIS3_EELN9__gnu_cxx12_Lock_policyE2EE", !15, i64 0, !16, i64 8}
!27 = !{!"_ZTSSt10shared_ptrISt6vectorIS0_ISt4pairIS_I7HtnTermES3_ESaIS4_EESaIS6_EEE", !28, i64 0}
!28 = !{!"_ZTSSt12__shared_ptrISt6vectorIS0_ISt4pairISt10shared_ptrI7HtnTermES4_ESaIS5_EESaIS7_EELN9__gnu_cxx12_Lock_policyE2EE", !15, i64 0, !16, i64 8}
!29 = !{i8 0, i8 2}
!30 = !{}
!31 = !{!10, !6, i64 104}
!32 = !{!10, !12, i64 32}
!33 = !{!12, !12, i64 0}
!34 = !{!10, !12, i64 24}
!35 = !{!11, !11, i64 0}


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