; LLVM IR from PepcyCh/bisemutum-engine :: bisemutum/thirdparty/AnyAny/tests (test_anyany)

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

%"struct.aa::any_cast_fn.132" = type { i8 }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"struct.aa::noexport::invoke_fn.139" = type { i8 }
%"struct.aa::descriptor_t" = type { ptr }
%"struct.aa::noexport::invoke_fn.313" = type { i8 }
%"struct.aa::any_cast_fn.319" = type { i8 }
%"struct.aa::noexport::invoke_fn.356" = type { i8 }
%"struct.aa::noexport::invoke_fn.357" = type { i8 }
%"struct.aa::any_cast_fn.391" = type { i8 }
%struct.FooAble = type { i8 }
%"struct.aa::noexport::invoke_fn.408" = type { i8 }
%"struct.aa::noexport::invoke_fn.413" = type { i8 }
%"struct.aa::any_cast_fn.434" = type { i8 }
%"struct.aa::any_cast_fn.435" = type { i8 }
%"struct.aa::any_cast_fn.436" = type { i8 }
%"struct.aa::any_cast_fn.437" = type { i8 }
%"struct.aa::any_cast_fn.438" = type { i8 }
%"struct.aa::any_cast_fn.439" = type { i8 }
%"struct.aa::any_cast_fn.440" = type { i8 }
%"struct.aa::any_cast_fn.441" = type { i8 }
%"struct.aa::noexport::invoke_fn.467" = type { i8 }
%"struct.aa::any_cast_fn.468" = type { i8 }
%"struct.aa::any_cast_fn.469" = type { i8 }
%"struct.aa::any_cast_fn.470" = type { i8 }
%"struct.aa::any_cast_fn.471" = type { i8 }
%"struct.aa::any_cast_fn.472" = type { i8 }
%"struct.aa::any_cast_fn.473" = type { i8 }
%"struct.aa::basic_any.309" = type { ptr, ptr, %union.anon.312 }
%union.anon.312 = type { i64, [40 x i8] }
%"struct.aa::basic_any.314" = type { ptr, ptr, %union.anon.318 }
%union.anon.318 = type { i64, [40 x i8] }
%struct.x = type { i32 }
%"struct.aa::poly_ptr.320" = type { %"struct.aa::poly_ref.321" }
%"struct.aa::poly_ref.321" = type { %"struct.aa::noexport::vtable_view.326", ptr }
%"struct.aa::noexport::vtable_view.326" = type { ptr }
%"struct.aa::basic_any.327" = type { ptr, ptr, %union.anon.330 }
%union.anon.330 = type { i64, [40 x i8] }
%struct.kekabl1 = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.130 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.130 = type { i64, [8 x i8] }
%"class.std::allocator.127" = type { i8 }
%"struct.aa::stateful::ref.331" = type { ptr, %"struct.aa::vtable.334" }
%"struct.aa::vtable.334" = type { %"struct.aa::noexport::tuple.335" }
%"struct.aa::noexport::tuple.335" = type { %"struct.aa::noexport::tuple_base.336" }
%"struct.aa::noexport::tuple_base.336" = type { %"struct.aa::noexport::value_in_tuple.337", %"struct.aa::noexport::value_in_tuple.216" }
%"struct.aa::noexport::value_in_tuple.337" = type { ptr }
%"struct.aa::noexport::value_in_tuple.216" = type { ptr }
%"struct.aa::poly_ref.338" = type { %"struct.aa::noexport::vtable_view.341", ptr }
%"struct.aa::noexport::vtable_view.341" = type { ptr }
%"struct.aa::poly_ptr.342" = type { %"struct.aa::poly_ref.338" }
%"struct.aa::stateful::cref.343" = type { ptr, %"struct.aa::vtable.334" }
%"struct.aa::stateful::cref.346" = type { ptr }
%"struct.aa::basic_any.347" = type { ptr, ptr, %union.anon.348 }
%union.anon.348 = type { i64, [40 x i8] }
%class.anon.349 = type { i8 }
%class.anon.351 = type { i8 }
%class.anon.353 = type { i8 }
%class.anon.355 = type { %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.20" }
%"struct.std::_Head_base.20" = type { ptr }
%"struct.std::atomic.358" = type { %"struct.aa::poly_ptr.359" }
%"struct.aa::poly_ptr.359" = type { %"struct.aa::poly_ref.360" }
%"struct.aa::poly_ref.360" = type { %"struct.aa::noexport::vtable_view.361", ptr }
%"struct.aa::noexport::vtable_view.361" = type { ptr }
%"struct.std::atomic.362" = type { %"struct.aa::const_poly_ptr.363" }
%"struct.aa::const_poly_ptr.363" = type { %"struct.aa::const_poly_ref.364" }
%"struct.aa::const_poly_ref.364" = type { %"struct.aa::noexport::vtable_view.361", ptr }
%struct.sm = type { i32 }
%"struct.aa::poly_ptr.365" = type { %"struct.aa::poly_ref.366" }
%"struct.aa::poly_ref.366" = type { %"struct.aa::noexport::vtable_view.369", ptr }
%"struct.aa::noexport::vtable_view.369" = type { %"struct.aa::vtable.370" }
%"struct.aa::vtable.370" = type { %"struct.aa::noexport::tuple.371" }
%"struct.aa::noexport::tuple.371" = type { %"struct.aa::noexport::tuple_base.372" }
%"struct.aa::noexport::tuple_base.372" = type { %"struct.aa::noexport::value_in_tuple.190" }
%"struct.aa::noexport::value_in_tuple.190" = type { %"struct.aa::descriptor_t" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::initializer_list.378" = type { ptr, i64 }
%"struct.std::hash" = type { i8 }
%"struct.std::equal_to" = type { i8 }
%"class.std::allocator.379" = type { i8 }
%"struct.aa::basic_any.152" = type { ptr, ptr, %union.anon.155 }
%union.anon.155 = type { i64, [40 x i8] }
%"struct.aa::force_stable_pointers_t" = type { i8 }
%"struct.aa::poly_ptr.156" = type { %"struct.aa::poly_ref.157" }
%"struct.aa::poly_ref.157" = type { %"struct.aa::noexport::vtable_view.160", ptr }
%"struct.aa::noexport::vtable_view.160" = type { ptr }
%struct.deriv = type { %struct.base, i32 }
%struct.base = type { i32 }
%"struct.aa::const_poly_ptr.382" = type { %"struct.aa::const_poly_ref.383" }
%"struct.aa::const_poly_ref.383" = type { %"struct.aa::noexport::vtable_view.369", ptr }
%"struct.aa::basic_any.386" = type { ptr, ptr, %union.anon.390 }
%union.anon.390 = type { i64, [40 x i8] }
%"struct.aa::poly_ptr.392" = type { %"struct.aa::poly_ref.393" }
%"struct.aa::poly_ref.393" = type { %"struct.aa::noexport::vtable_view.397", ptr }
%"struct.aa::noexport::vtable_view.397" = type { ptr }
%"class.std::vector.398" = type { %"struct.std::_Vector_base.399" }
%"struct.std::_Vector_base.399" = type { %"struct.std::_Vector_base<aa::poly_ref<foox>, std::allocator<aa::poly_ref<foox>>>::_Vector_impl" }
%"struct.std::_Vector_base<aa::poly_ref<foox>, std::allocator<aa::poly_ref<foox>>>::_Vector_impl" = type { %"struct.std::_Vector_base<aa::poly_ref<foox>, std::allocator<aa::poly_ref<foox>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<aa::poly_ref<foox>, std::allocator<aa::poly_ref<foox>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.A1 = type { i32 }
%struct.A2 = type { double }
%"struct.aa::poly_ref.404" = type { %"struct.aa::noexport::vtable_view.405", ptr }
%"struct.aa::noexport::vtable_view.405" = type { ptr }
%"struct.aa::const_poly_ref.406" = type { %"struct.aa::noexport::vtable_view.407", ptr }
%"struct.aa::noexport::vtable_view.407" = type { ptr }
%"struct.aa::const_poly_ref.409" = type { %"struct.aa::noexport::vtable_view.410", ptr }
%"struct.aa::noexport::vtable_view.410" = type { ptr }
%"struct.aa::const_poly_ptr.411" = type { %"struct.aa::const_poly_ref.409" }
%"struct.aa::const_poly_ptr.412" = type { %"struct.aa::const_poly_ref.406" }
%"struct.aa::const_poly_ref.414" = type { %"struct.aa::noexport::vtable_view.415", ptr }
%"struct.aa::noexport::vtable_view.415" = type { %"struct.aa::vtable.416" }
%"struct.aa::vtable.416" = type { %"struct.aa::noexport::tuple.417" }
%"struct.aa::noexport::tuple.417" = type { %"struct.aa::noexport::tuple_base.418" }
%"struct.aa::noexport::tuple_base.418" = type { %"struct.aa::noexport::value_in_tuple.419" }
%"struct.aa::noexport::value_in_tuple.419" = type { ptr }
%"struct.aa::const_poly_ptr.420" = type { %"struct.aa::const_poly_ref.414" }
%"struct.aa::const_poly_ref.421" = type { %"struct.aa::noexport::vtable_view.422", ptr }
%"struct.aa::noexport::vtable_view.422" = type { ptr }
%"struct.aa::const_poly_ptr.423" = type { %"struct.aa::const_poly_ref.421" }
%"struct.aa::poly_ptr.424" = type { %"struct.aa::poly_ref.404" }
%"struct.aa::poly_ref.425" = type { %"struct.aa::noexport::vtable_view.426", ptr }
%"struct.aa::noexport::vtable_view.426" = type { ptr }
%"struct.aa::poly_ref.427" = type { %"struct.aa::noexport::vtable_view.415", ptr }
%"struct.aa::poly_ptr.428" = type { %"struct.aa::poly_ref.427" }
%"struct.aa::poly_ptr.429" = type { %"struct.aa::poly_ref.425" }
%struct.drawable0 = type { i8 }
%struct.drawable1 = type { i8 }
%"struct.aa::vtable.430" = type { %"struct.aa::noexport::tuple.431" }
%"struct.aa::noexport::tuple.431" = type { %"struct.aa::noexport::tuple_base.432" }
%"struct.aa::noexport::tuple_base.432" = type { %"struct.aa::noexport::value_in_tuple.190", %"struct.aa::noexport::value_in_tuple.191", %"struct.aa::noexport::value_in_tuple.433" }
%"struct.aa::noexport::value_in_tuple.191" = type { %"struct.aa::copy_with<>::value_type" }
%"struct.aa::copy_with<>::value_type" = type { ptr, ptr }
%"struct.aa::noexport::value_in_tuple.433" = type { %"struct.aa::descriptor_t" }
%"struct.aa::poly_ptr" = type { %"struct.aa::poly_ref" }
%"struct.aa::poly_ref" = type { %"struct.aa::noexport::vtable_view", ptr }
%"struct.aa::noexport::vtable_view" = type { ptr }
%"struct.aa::const_poly_ptr" = type { %"struct.aa::const_poly_ref" }
%"struct.aa::const_poly_ref" = type { %"struct.aa::noexport::vtable_view", ptr }
%"struct.aa::basic_any.442" = type { ptr, ptr, %union.anon.446 }
%union.anon.446 = type { i64, [40 x i8] }
%"struct.aa::poly_ptr.447" = type { %"struct.aa::poly_ref.448" }
%"struct.aa::poly_ref.448" = type { %"struct.aa::noexport::vtable_view.452", ptr }
%"struct.aa::noexport::vtable_view.452" = type { ptr }
%"struct.aa::const_poly_ref.453" = type { %"struct.aa::noexport::vtable_view.452", ptr }
%"struct.aa::const_poly_ptr.457" = type { %"struct.aa::const_poly_ref.453" }
%struct.Circle = type { i32, %"class.std::__cxx11::basic_string" }
%"struct.aa::poly_ptr.458" = type { %"struct.aa::poly_ref.459" }
%"struct.aa::poly_ref.459" = type { %"struct.aa::noexport::vtable_view.462", ptr }
%"struct.aa::noexport::vtable_view.462" = type { ptr }
%"struct.aa::const_poly_ptr.463" = type { %"struct.aa::const_poly_ref.464" }
%"struct.aa::const_poly_ref.464" = type { %"struct.aa::noexport::vtable_view.462", ptr }
%"struct.aa::basic_any.474" = type { ptr, ptr, %union.anon.478 }
%union.anon.478 = type { i64, [8 x i8] }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator" = type { i8 }
%"class.std::unordered_set.479" = type { %"class.std::_Hashtable.480" }
%"class.std::_Hashtable.480" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.aa::basic_any.498" = type { ptr, ptr, %union.anon.502 }
%union.anon.502 = type { i64, [40 x i8] }
%"struct.std::pair" = type <{ %"struct.std::__detail::_Node_iterator", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }

@.str = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN2aa8any_castIiNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.132", align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZN2aa6invokeI5DrawiEE = external dso_local constant %"struct.aa::noexport::invoke_fn.139", align 1
@_ZN2aa12descriptor_vIvEE = external dso_local constant %"struct.aa::descriptor_t", align 8
@_ZN2aa12descriptor_vIiEE = external dso_local constant %"struct.aa::descriptor_t", align 8
@.str.5 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZN2aa6invokeI5printEE = external dso_local constant %"struct.aa::noexport::invoke_fn.313", align 1
@_ZN2aa8any_castI1xNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.319", align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZN2aa6invokeI5visitIiEEE = external dso_local constant %"struct.aa::noexport::invoke_fn.356", align 1
@_ZN2aa6invokeI5visitINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE = external dso_local constant %"struct.aa::noexport::invoke_fn.357", align 1
@.str.8 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZN2aa8any_castIPKcNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.391", align 1
@_ZTIi = external constant ptr
@__const.main.fef = external hidden unnamed_addr constant %struct.FooAble, align 1
@_ZN2aa6invokeI2M1EE = external dso_local constant %"struct.aa::noexport::invoke_fn.408", align 1
@_ZN2aa6invokeI2M2EE = external dso_local constant %"struct.aa::noexport::invoke_fn.413", align 1
@_ZN2aa8any_castIK9drawable1NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.434", align 1
@_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.435", align 1
@_ZN2aa8any_castIRK9drawable1NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.436", align 1
@_ZN2aa8any_castIR9drawable1NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.437", align 1
@_ZN2aa8any_castIK9drawable0NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.438", align 1
@_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.439", align 1
@_ZN2aa8any_castIRK9drawable0NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.440", align 1
@_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.441", align 1
@_ZN2aa6invokeI4DrawEE = external dso_local constant %"struct.aa::noexport::invoke_fn.467", align 1
@_ZN2aa8any_castIK6CircleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.468", align 1
@_ZN2aa8any_castI6CircleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.469", align 1
@_ZN2aa8any_castIR6CircleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.470", align 1
@_ZN2aa8any_castIRK6CircleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.471", align 1
@_ZN2aa8any_castI8TriangleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.472", align 1
@_ZN2aa8any_castIR8TriangleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.473", align 1

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z16TESTconstructorsm(i64 noundef) #0

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z28TESTspecial_member_functionsm(i64 noundef) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15noallocate_testv() #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_Z11TESTcomparev() #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z12TESTany_castm(i64 noundef) #0

declare ptr @__cxa_begin_catch(ptr)

declare void @__cxa_end_catch()

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z10TESTinvokem(i64 noundef) #0

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z13TESTany_cast2m(i64 noundef) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6FoobarN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEE(ptr, ptr) #0

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6FoobarN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEE(ptr, ptr) #0

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z21TESTtransmutate_ctorsm(i64 noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEC2EOS6_(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z12TESTstatefulm(i64 noundef) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z16TESTptr_behaviorm(i64 noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z13any_cast_testv() #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_Z43TESTtype_descriptor_and_plugins_interactionm(i64 noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z20anyany_concepts_testv() #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z16TESTsubtable_ptrm(i64 noundef) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z15TESTmaterializem(i64 noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z9meta_testv() #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z22TESTruntime_reflectionm(i64 noundef) #0

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() #6 personality ptr @__gxx_personality_v0 {
  %1 = alloca i32, align 4
  %2 = alloca %"struct.aa::basic_any.309", align 16
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca %"struct.aa::basic_any.314", align 16
  %7 = alloca %struct.x, align 4
  %8 = alloca %"struct.aa::poly_ptr.320", align 8
  %9 = alloca i32, align 4
  %10 = alloca %"struct.aa::basic_any.327", align 16
  %11 = alloca %struct.kekabl1, align 8
  %12 = alloca %"class.std::allocator.127", align 1
  %13 = alloca %"struct.aa::stateful::ref.331", align 8
  %14 = alloca %"struct.aa::poly_ref.338", align 8
  %15 = alloca %"struct.aa::poly_ptr.342", align 8
  %16 = alloca %"struct.aa::stateful::cref.343", align 8
  %17 = alloca %"struct.aa::poly_ref.338", align 8
  %18 = alloca %"struct.aa::poly_ptr.342", align 8
  %19 = alloca %"struct.aa::stateful::cref.343", align 8
  %20 = alloca %"struct.aa::stateful::cref.346", align 8
  %21 = alloca %"struct.aa::poly_ref.338", align 8
  %22 = alloca %"struct.aa::poly_ptr.342", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"struct.aa::basic_any.347", align 16
  %27 = alloca %class.anon.349, align 1
  %28 = alloca %class.anon.351, align 1
  %29 = alloca %class.anon.353, align 1
  %30 = alloca %class.anon.355, align 8
  %31 = alloca i32, align 4
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator.127", align 1
  %34 = alloca %"struct.std::atomic.358", align 16
  %35 = alloca %"struct.std::atomic.362", align 16
  %36 = alloca %"struct.aa::poly_ref.360", align 8
  %37 = alloca %"struct.aa::poly_ref.360", align 8
  %38 = alloca %struct.sm, align 4
  %39 = alloca %"struct.aa::poly_ptr.365", align 8
  %40 = alloca %"struct.aa::poly_ptr.365", align 8
  %41 = alloca %"struct.aa::poly_ptr.365", align 8
  %42 = alloca %"struct.aa::poly_ptr.365", align 8
  %43 = alloca %"class.std::unordered_set", align 8
  %44 = alloca %"class.std::initializer_list.378", align 8
  %45 = alloca [2 x %"struct.aa::descriptor_t"], align 8
  %46 = alloca %"struct.std::hash", align 1
  %47 = alloca %"struct.std::equal_to", align 1
  %48 = alloca %"class.std::allocator.379", align 1
  %49 = alloca %"struct.aa::basic_any.152", align 16
  %50 = alloca %"struct.aa::force_stable_pointers_t", align 1
  %51 = alloca i32, align 4
  %52 = alloca %"struct.aa::poly_ptr.156", align 8
  %53 = alloca ptr, align 8
  %54 = alloca %"struct.aa::basic_any.152", align 16
  %55 = alloca %"struct.aa::poly_ptr.156", align 8
  %56 = alloca %"struct.aa::poly_ptr.156", align 8
  %57 = alloca %struct.deriv, align 4
  %58 = alloca %"struct.aa::poly_ptr.365", align 8
  %59 = alloca %"struct.aa::poly_ptr.365", align 8
  %60 = alloca %"struct.aa::poly_ptr.365", align 8
  %61 = alloca %"struct.aa::poly_ptr.365", align 8
  %62 = alloca %"struct.aa::poly_ptr.365", align 8
  %63 = alloca %"struct.aa::poly_ptr.365", align 8
  %64 = alloca %"struct.aa::poly_ptr.365", align 8
  %65 = alloca %"struct.aa::poly_ptr.365", align 8
  %66 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %67 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %68 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %69 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %70 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %71 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %72 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %73 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %74 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %75 = alloca %"struct.aa::poly_ptr.365", align 8
  %76 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %77 = alloca %"struct.aa::poly_ptr.365", align 8
  %78 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %79 = alloca %"struct.aa::poly_ptr.365", align 8
  %80 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %81 = alloca %"struct.aa::poly_ptr.365", align 8
  %82 = alloca %"struct.aa::basic_any.386", align 16
  %83 = alloca ptr, align 8
  %84 = alloca %"struct.aa::poly_ptr.392", align 8
  %85 = alloca %"class.std::vector.398", align 8
  %86 = alloca %struct.FooAble, align 1
  %87 = alloca %struct.A1, align 4
  %88 = alloca %struct.A2, align 8
  %89 = alloca %"struct.aa::poly_ref.404", align 8
  %90 = alloca %"struct.aa::const_poly_ref.406", align 8
  %91 = alloca %"struct.aa::const_poly_ref.406", align 8
  %92 = alloca %"struct.aa::const_poly_ref.409", align 8
  %93 = alloca %"struct.aa::const_poly_ref.406", align 8
  %94 = alloca %"struct.aa::const_poly_ptr.411", align 8
  %95 = alloca %"struct.aa::const_poly_ptr.412", align 8
  %96 = alloca %"struct.aa::const_poly_ptr.411", align 8
  %97 = alloca %"struct.aa::const_poly_ref.409", align 8
  %98 = alloca %"struct.aa::const_poly_ref.409", align 8
  %99 = alloca %"struct.aa::const_poly_ref.414", align 8
  %100 = alloca %"struct.aa::const_poly_ref.409", align 8
  %101 = alloca %"struct.aa::const_poly_ptr.420", align 8
  %102 = alloca %"struct.aa::const_poly_ptr.411", align 8
  %103 = alloca %"struct.aa::const_poly_ref.414", align 8
  %104 = alloca %"struct.aa::const_poly_ref.414", align 8
  %105 = alloca %"struct.aa::const_poly_ref.421", align 8
  %106 = alloca %"struct.aa::poly_ref.404", align 8
  %107 = alloca %"struct.aa::const_poly_ptr.423", align 8
  %108 = alloca %"struct.aa::poly_ptr.424", align 8
  %109 = alloca %"struct.aa::const_poly_ref.421", align 8
  %110 = alloca %"struct.aa::const_poly_ref.421", align 8
  %111 = alloca %"struct.aa::const_poly_ref.421", align 8
  %112 = alloca %"struct.aa::const_poly_ref.421", align 8
  %113 = alloca %"struct.aa::poly_ref.425", align 8
  %114 = alloca %"struct.aa::poly_ref.404", align 8
  %115 = alloca %"struct.aa::poly_ref.427", align 8
  %116 = alloca %"struct.aa::poly_ref.425", align 8
  %117 = alloca %"struct.aa::poly_ptr.428", align 8
  %118 = alloca %"struct.aa::poly_ptr.429", align 8
  %119 = alloca %"struct.aa::poly_ptr.428", align 8
  %120 = alloca %"struct.aa::poly_ref.404", align 8
  %121 = alloca %"struct.aa::poly_ref.404", align 8
  %122 = alloca %"struct.aa::poly_ref.425", align 8
  %123 = alloca %"struct.aa::poly_ref.427", align 8
  %124 = alloca %"struct.aa::poly_ref.427", align 8
  %125 = alloca %struct.drawable0, align 1
  %126 = alloca %struct.drawable1, align 1
  %127 = alloca %"struct.aa::vtable.430", align 8
  %128 = alloca %"struct.aa::poly_ptr", align 8
  %129 = alloca %"struct.aa::const_poly_ptr", align 8
  %130 = alloca %"struct.aa::poly_ref", align 8
  %131 = alloca %"struct.aa::const_poly_ref", align 8
  %132 = alloca %"struct.aa::const_poly_ptr", align 8
  %133 = alloca %"struct.aa::const_poly_ref", align 8
  %134 = alloca %"struct.aa::const_poly_ref", align 8
  %135 = alloca %struct.drawable1, align 1
  %136 = alloca %"struct.aa::const_poly_ref", align 8
  %137 = alloca %struct.drawable1, align 1
  %138 = alloca %"struct.aa::const_poly_ref", align 8
  %139 = alloca %"struct.aa::const_poly_ref", align 8
  %140 = alloca %"struct.aa::poly_ref", align 8
  %141 = alloca %struct.drawable0, align 1
  %142 = alloca %"struct.aa::poly_ref", align 8
  %143 = alloca %struct.drawable0, align 1
  %144 = alloca %"struct.aa::poly_ref", align 8
  %145 = alloca %"struct.aa::poly_ref", align 8
  %146 = alloca %"struct.aa::basic_any.442", align 16
  %147 = alloca %"struct.aa::poly_ptr.447", align 8
  %148 = alloca %"struct.aa::poly_ptr.447", align 8
  %149 = alloca %"struct.aa::poly_ref.448", align 8
  %150 = alloca %"struct.aa::basic_any.442", align 16
  %151 = alloca %struct.drawable1, align 1
  %152 = alloca %"struct.aa::const_poly_ref.453", align 8
  %153 = alloca %"struct.aa::const_poly_ptr.457", align 8
  %154 = alloca %struct.drawable1, align 1
  %155 = alloca %"struct.aa::const_poly_ptr.457", align 8
  %156 = alloca %"struct.aa::const_poly_ptr.457", align 8
  %157 = alloca %"struct.aa::poly_ref", align 8
  %158 = alloca %"struct.aa::const_poly_ref", align 8
  %159 = alloca %"struct.aa::poly_ptr", align 8
  %160 = alloca %"struct.aa::const_poly_ptr", align 8
  %161 = alloca %"struct.aa::poly_ptr", align 8
  %162 = alloca %"struct.aa::poly_ptr", align 8
  %163 = alloca %"struct.aa::poly_ptr", align 8
  %164 = alloca %"struct.aa::const_poly_ptr", align 8
  %165 = alloca %"struct.aa::poly_ptr", align 8
  %166 = alloca %"struct.aa::const_poly_ptr", align 8
  %167 = alloca %"struct.aa::poly_ref", align 8
  %168 = alloca %"struct.aa::poly_ref", align 8
  %169 = alloca %"struct.aa::poly_ref", align 8
  %170 = alloca %"struct.aa::poly_ptr", align 8
  %171 = alloca %"struct.aa::const_poly_ref", align 8
  %172 = alloca %"struct.aa::const_poly_ref", align 8
  %173 = alloca %"struct.aa::const_poly_ref", align 8
  %174 = alloca %"struct.aa::const_poly_ref", align 8
  %175 = alloca %"struct.aa::const_poly_ptr", align 8
  %176 = alloca %"struct.aa::const_poly_ref", align 8
  %177 = alloca %"struct.aa::const_poly_ptr", align 8
  %178 = alloca %"struct.aa::poly_ref", align 8
  %179 = alloca %"struct.aa::poly_ptr", align 8
  %180 = alloca %"struct.aa::const_poly_ref", align 8
  %181 = alloca %"struct.aa::const_poly_ptr", align 8
  %182 = alloca %"struct.aa::const_poly_ref", align 8
  %183 = alloca %"struct.aa::const_poly_ptr", align 8
  %184 = alloca %"struct.aa::poly_ptr", align 8
  %185 = alloca %"struct.aa::const_poly_ptr", align 8
  %186 = alloca %"struct.aa::const_poly_ptr", align 8
  %187 = alloca %"struct.aa::poly_ref", align 8
  %188 = alloca %"struct.aa::const_poly_ref", align 8
  %189 = alloca %"struct.aa::const_poly_ref", align 8
  %190 = alloca %"struct.aa::poly_ref", align 8
  %191 = alloca %"struct.aa::const_poly_ref", align 8
  %192 = alloca %"struct.aa::const_poly_ref", align 8
  %193 = alloca %"struct.aa::poly_ptr", align 8
  %194 = alloca %"struct.aa::poly_ref", align 8
  %195 = alloca %struct.Circle, align 8
  %196 = alloca %struct.Circle, align 8
  %197 = alloca %"class.std::allocator.127", align 1
  %198 = alloca %"struct.aa::poly_ptr.458", align 8
  %199 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %200 = alloca %"struct.aa::poly_ref.459", align 8
  %201 = alloca %"struct.aa::const_poly_ref.464", align 8
  %202 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %203 = alloca %"struct.aa::const_poly_ref.464", align 8
  %204 = alloca %"struct.aa::poly_ref.459", align 8
  %205 = alloca %"struct.aa::poly_ref.459", align 8
  %206 = alloca %"struct.aa::poly_ref.459", align 8
  %207 = alloca %"struct.aa::poly_ptr.458", align 8
  %208 = alloca %"struct.aa::const_poly_ref.464", align 8
  %209 = alloca %"struct.aa::const_poly_ref.464", align 8
  %210 = alloca %"struct.aa::const_poly_ref.464", align 8
  %211 = alloca %"struct.aa::const_poly_ref.464", align 8
  %212 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %213 = alloca %"struct.aa::const_poly_ref.464", align 8
  %214 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %215 = alloca %"struct.aa::poly_ptr.458", align 8
  %216 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %217 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %218 = alloca %"struct.aa::poly_ref.459", align 8
  %219 = alloca %"struct.aa::poly_ref.459", align 8
  %220 = alloca %"struct.aa::const_poly_ref.464", align 8
  %221 = alloca %"struct.aa::const_poly_ref.464", align 8
  %222 = alloca %"struct.aa::const_poly_ref.464", align 8
  %223 = alloca %"struct.aa::poly_ptr.458", align 8
  %224 = alloca %"struct.aa::const_poly_ref.464", align 8
  %225 = alloca %struct.drawable0, align 1
  %226 = alloca %struct.drawable1, align 1
  %227 = alloca %"struct.aa::poly_ptr", align 8
  %228 = alloca %"struct.aa::const_poly_ptr", align 8
  %229 = alloca %"struct.aa::basic_any.474", align 16
  %230 = alloca i32, align 4
  %231 = alloca %"struct.aa::basic_any.474", align 16
  %232 = alloca i32, align 4
  %233 = alloca %"class.std::__cxx11::basic_string", align 8
  %234 = alloca %"class.std::allocator.127", align 1
  %235 = alloca float, align 4
  %236 = alloca %"class.std::vector", align 8
  %237 = alloca %"class.std::initializer_list", align 8
  %238 = alloca [4 x i32], align 4
  %239 = alloca %"class.std::allocator", align 1
  %240 = alloca %"class.std::unordered_set.479", align 8
  %241 = alloca %"struct.aa::basic_any.498", align 16
  %242 = alloca %"class.std::__cxx11::basic_string", align 8
  %243 = alloca %"class.std::allocator.127", align 1
  %244 = alloca %"struct.std::pair", align 8
  %245 = alloca i32, align 4
  %246 = alloca %"struct.std::pair", align 8
  %247 = alloca double, align 8
  %248 = alloca %"struct.std::pair", align 8
  store i32 0, ptr %1, align 4
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @.str.5)
  %250 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %249, i64 noundef 201703)
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %250, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  call void @_Z20anyany_concepts_testv()
  call void @_Z13any_cast_testv()
  call void @_Z15noallocate_testv()
  call void @_Z9meta_testv()
  call void @llvm.lifetime.start.p0(i64 64, ptr %2) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EEC2Ev(ptr noundef nonnull align 16 dereferenceable(64) %2) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #8
  store i32 5, ptr %3, align 4, !tbaa !5
  %252 = invoke noundef nonnull align 16 dereferenceable(64) ptr @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EEaSIiS7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S4_S6_S4_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISC_E4typeEOSC_E16any_is_small_forISK_EEiE4typeELi0EEERS7_SL_(ptr noundef nonnull align 16 dereferenceable(64) %2, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %253 unwind label %272

253:                                              ; preds = %0
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  invoke void @_ZNK2aa8noexport9invoke_fnI5printNS_9type_listIJEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES2_NS_9copy_withIS9_Lm40EEES2_EEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSG_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5printEE, ptr noundef nonnull align 16 dereferenceable(64) %2)
          to label %254 unwind label %276

254:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 64, ptr %6) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  %255 = getelementptr inbounds %struct.x, ptr %7, i32 0, i32 0
  store i32 0, ptr %255, align 4, !tbaa !9
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEEC2I1xTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S4_S5_EEEEEiE4typeELi0EEEOSC_(ptr noundef nonnull align 16 dereferenceable(64) %6, ptr noundef nonnull align 4 dereferenceable(4) %7) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  invoke void @_ZNK8change_i11make_pluginIN2aa9basic_anyISaISt4byteELm40EJNS1_7destroyES_NS1_9type_infoEEEEFvRKiES_E8change_iEv(ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %256 unwind label %280

256:                                              ; preds = %254
  %257 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %6) #8
  %258 = getelementptr inbounds %"struct.aa::poly_ptr.320", ptr %8, i32 0, i32 0
  %259 = getelementptr inbounds { ptr, ptr }, ptr %258, i32 0, i32 0
  %260 = extractvalue { ptr, ptr } %257, 0
  store ptr %260, ptr %259, align 8
  %261 = getelementptr inbounds { ptr, ptr }, ptr %258, i32 0, i32 1
  %262 = extractvalue { ptr, ptr } %257, 1
  store ptr %262, ptr %261, align 8
  %263 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 0
  %264 = load ptr, ptr %263, align 8
  %265 = getelementptr inbounds { ptr, ptr }, ptr %8, i32 0, i32 1
  %266 = load ptr, ptr %265, align 8
  %267 = call noundef ptr @_ZNK2aa11any_cast_fnI1xNS_18anyany_poly_traitsEEclIJNS_7destroyE8change_iNS_9type_infoEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI1xNS_18anyany_poly_traitsEEE, ptr %264, ptr %266) #8
  %268 = getelementptr inbounds %struct.x, ptr %267, i32 0, i32 0
  %269 = load i32, ptr %268, align 4, !tbaa !9
  %270 = icmp ne i32 %269, 0
  br i1 %270, label %271, label %284

271:                                              ; preds = %256
  store i32 -114, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1533

272:                                              ; preds = %0
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %4, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #8
  br label %1536

276:                                              ; preds = %253
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %4, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %5, align 4
  br label %1536

280:                                              ; preds = %254
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %4, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %5, align 4
  br label %1535

284:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 64, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #8
  %285 = getelementptr inbounds %struct.kekabl1, ptr %11, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %285, ptr noundef @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %286 unwind label %333

286:                                              ; preds = %284
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEC2I7kekabl1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISB_JS3_S4_EEEEEiE4typeELi0EEEOSB_(ptr noundef nonnull align 16 dereferenceable(64) %10, ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @_ZN7kekabl1D2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #8
  %287 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %10) #8
  %288 = getelementptr inbounds %"struct.aa::poly_ptr.342", ptr %15, i32 0, i32 0
  %289 = getelementptr inbounds { ptr, ptr }, ptr %288, i32 0, i32 0
  %290 = extractvalue { ptr, ptr } %287, 0
  store ptr %290, ptr %289, align 8
  %291 = getelementptr inbounds { ptr, ptr }, ptr %288, i32 0, i32 1
  %292 = extractvalue { ptr, ptr } %287, 1
  store ptr %292, ptr %291, align 8
  %293 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyE5KekabEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  %294 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 0
  %295 = extractvalue { ptr, ptr } %293, 0
  store ptr %295, ptr %294, align 8
  %296 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 1
  %297 = extractvalue { ptr, ptr } %293, 1
  store ptr %297, ptr %296, align 8
  %298 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 0
  %299 = load ptr, ptr %298, align 8
  %300 = getelementptr inbounds { ptr, ptr }, ptr %14, i32 0, i32 1
  %301 = load ptr, ptr %300, align 8
  call void @_ZN2aa8stateful3refIJNS_7destroyE5KekabEEC2ENS_8poly_refIJS2_S3_EEE(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr %299, ptr %301) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #8
  %302 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %10) #8
  %303 = getelementptr inbounds %"struct.aa::poly_ptr.342", ptr %18, i32 0, i32 0
  %304 = getelementptr inbounds { ptr, ptr }, ptr %303, i32 0, i32 0
  %305 = extractvalue { ptr, ptr } %302, 0
  store ptr %305, ptr %304, align 8
  %306 = getelementptr inbounds { ptr, ptr }, ptr %303, i32 0, i32 1
  %307 = extractvalue { ptr, ptr } %302, 1
  store ptr %307, ptr %306, align 8
  %308 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyE5KekabEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  %309 = getelementptr inbounds { ptr, ptr }, ptr %17, i32 0, i32 0
  %310 = extractvalue { ptr, ptr } %308, 0
  store ptr %310, ptr %309, align 8
  %311 = getelementptr inbounds { ptr, ptr }, ptr %17, i32 0, i32 1
  %312 = extractvalue { ptr, ptr } %308, 1
  store ptr %312, ptr %311, align 8
  %313 = getelementptr inbounds { ptr, ptr }, ptr %17, i32 0, i32 0
  %314 = load ptr, ptr %313, align 8
  %315 = getelementptr inbounds { ptr, ptr }, ptr %17, i32 0, i32 1
  %316 = load ptr, ptr %315, align 8
  call void @_ZN2aa8stateful4crefIJNS_7destroyE5KekabEEC2ENS_8poly_refIJS2_S3_EEE(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr %314, ptr %316) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #8
  call void @_ZN2aa8stateful4crefIJNS_7destroyE5KekabEEC2ERKNS0_3refIJS2_S3_EEE(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #8
  %317 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %10) #8
  %318 = getelementptr inbounds %"struct.aa::poly_ptr.342", ptr %22, i32 0, i32 0
  %319 = getelementptr inbounds { ptr, ptr }, ptr %318, i32 0, i32 0
  %320 = extractvalue { ptr, ptr } %317, 0
  store ptr %320, ptr %319, align 8
  %321 = getelementptr inbounds { ptr, ptr }, ptr %318, i32 0, i32 1
  %322 = extractvalue { ptr, ptr } %317, 1
  store ptr %322, ptr %321, align 8
  %323 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyE5KekabEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  %324 = getelementptr inbounds { ptr, ptr }, ptr %21, i32 0, i32 0
  %325 = extractvalue { ptr, ptr } %323, 0
  store ptr %325, ptr %324, align 8
  %326 = getelementptr inbounds { ptr, ptr }, ptr %21, i32 0, i32 1
  %327 = extractvalue { ptr, ptr } %323, 1
  store ptr %327, ptr %326, align 8
  invoke void @_ZN2aa8stateful4crefIJEEC2INS_8poly_refIJNS_7destroyE5KekabEEETnNSt9enable_ifIXsr14is_polymorphicIT_EE5valueEiE4typeELi0ETnPvLPv0EEERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(16) %21)
          to label %328 unwind label %337

328:                                              ; preds = %286
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #8
  invoke void @_ZNK5Kekab11make_pluginIN2aa8stateful3refIJNS1_7destroyES_EEEFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiicES_E5KekabEic(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 1 dereferenceable(1) %13, i32 noundef 5, i8 noundef signext 99)
          to label %329 unwind label %341

329:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #8
  invoke void @_ZNK5Kekab11make_pluginIN2aa9basic_anyISaISt4byteELm40EJNS1_7destroyES_EEEFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiicES_E5KekabEic(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 1 dereferenceable(1) %10, i32 noundef 5, i8 noundef signext 99)
          to label %330 unwind label %345

330:                                              ; preds = %329
  %331 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br i1 %331, label %332, label %350

332:                                              ; preds = %330
  store i32 -500, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1530

333:                                              ; preds = %284
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %4, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #8
  br label %1532

337:                                              ; preds = %286
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %4, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #8
  br label %1531

341:                                              ; preds = %328
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %4, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %5, align 4
  br label %349

345:                                              ; preds = %329
  %346 = landingpad { ptr, i32 }
          cleanup
  %347 = extractvalue { ptr, i32 } %346, 0
  store ptr %347, ptr %4, align 8
  %348 = extractvalue { ptr, i32 } %346, 1
  store i32 %348, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #8
  br label %349

349:                                              ; preds = %345, %341
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #8
  br label %1531

350:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  invoke void @_ZNK5Kekab11make_pluginIN2aa9basic_anyISaISt4byteELm40EJNS1_7destroyES_EEEFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiicES_E5KekabEic(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 1 dereferenceable(1) %10, i32 noundef 5, i8 noundef signext 99)
          to label %351 unwind label %355

351:                                              ; preds = %350
  %352 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.7)
          to label %353 unwind label %359

353:                                              ; preds = %351
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br i1 %352, label %354, label %364

354:                                              ; preds = %353
  store i32 -200, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1530

355:                                              ; preds = %350
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %4, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %5, align 4
  br label %363

359:                                              ; preds = %351
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %4, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %363

363:                                              ; preds = %359, %355
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %1531

364:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 64, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #8
  call void @"_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEEC2IZ4mainE3$_0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISL_JS3_S5_S6_SD_SE_EEEEEiE4typeELi0EEEOSL_"(ptr noundef nonnull align 16 dereferenceable(64) %26, ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #8
  %365 = invoke noundef nonnull align 16 dereferenceable(64) ptr @"_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEEaSIZ4mainE3$_1SF_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISL_JS3_S5_S6_SD_SE_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISL_E4typeEOSL_E16any_is_small_forIST_EEiE4typeELi0EEERSF_SU_"(ptr noundef nonnull align 16 dereferenceable(64) %26, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %366 unwind label %382

366:                                              ; preds = %364
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %367 = getelementptr inbounds %class.anon.355, ptr %30, i32 0, i32 0
  call void @_ZNSt10unique_ptrIiSt14default_deleteIiEEC2IS1_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %367) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  store i32 5, ptr %31, align 4, !tbaa !5
  invoke void @_ZNK2aa8noexport9invoke_fnI5visitIiENS_9type_listIJRKiEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES3_S2_IfES2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES2_IdEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSQ_S6_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5visitIiEEE, ptr noundef nonnull align 16 dereferenceable(64) %26, ptr noundef nonnull align 4 dereferenceable(4) %31)
          to label %368 unwind label %386

368:                                              ; preds = %366
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %33) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %369 unwind label %390

369:                                              ; preds = %368
  invoke void @_ZNK2aa8noexport9invoke_fnI5visitINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENS_9type_listIJRKS8_EEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES2_IiES2_IfES9_S2_IdEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSQ_SC_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5visitINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE, ptr noundef nonnull align 16 dereferenceable(64) %26, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %370 unwind label %394

370:                                              ; preds = %369
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %34) #8
  call void @_ZNSt6atomicIN2aa8poly_ptrIJEEEEC2Ev(ptr noundef nonnull align 16 dereferenceable(16) %34) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #8
  call void @_ZNSt6atomicIN2aa14const_poly_ptrIJEEEEC2Ev(ptr noundef nonnull align 16 dereferenceable(16) %35) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #8
  call void @_ZN2aa8poly_refIJEEC2ISt6atomicINS_8poly_ptrIJEEEETnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES8_INS_14is_polymorphicISA_EEENS_9exist_forISA_JEEEEEiE4typeELi0EEERSA_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 16 dereferenceable(16) %34) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #8
  call void @_ZN2aa8poly_refIJEEC2ISt6atomicINS_8poly_ptrIJEEEETnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES8_INS_14is_polymorphicISA_EEENS_9exist_forISA_JEEEEEiE4typeELi0EEERSA_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 16 dereferenceable(16) %34) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %36, ptr align 8 %37, i64 16, i1 false)
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoEEEC2I2smTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES6_INS_6is_anyIS8_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPS8_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef %38) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %40) #8
  %371 = getelementptr inbounds %struct.sm, ptr %38, i32 0, i32 0
  call void @_ZN2aa8poly_ptrIJNS_9type_infoEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES5_INS_6is_anyIS7_EEENS_9exist_forIS7_JS1_EEEEEiE4typeELi0EEEPS7_(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef %371) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %41, ptr align 8 %39, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %42, ptr align 8 %40, i64 16, i1 false)
  %372 = getelementptr inbounds { ptr, ptr }, ptr %41, i32 0, i32 0
  %373 = load ptr, ptr %372, align 8
  %374 = getelementptr inbounds { ptr, ptr }, ptr %41, i32 0, i32 1
  %375 = load ptr, ptr %374, align 8
  %376 = getelementptr inbounds { ptr, ptr }, ptr %42, i32 0, i32 0
  %377 = load ptr, ptr %376, align 8
  %378 = getelementptr inbounds { ptr, ptr }, ptr %42, i32 0, i32 1
  %379 = load ptr, ptr %378, align 8
  %380 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_8poly_ptrIJDpT_EEES6_(ptr %373, ptr %375, ptr %377, ptr %379) #8
  br i1 %380, label %381, label %399

381:                                              ; preds = %370
  store i32 -111, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1527

382:                                              ; preds = %364
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %4, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #8
  br label %1529

386:                                              ; preds = %366
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %4, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1528

390:                                              ; preds = %368
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %4, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %5, align 4
  br label %398

394:                                              ; preds = %369
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %4, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #8
  br label %398

398:                                              ; preds = %394, %390
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #8
  br label %1528

399:                                              ; preds = %370
  call void @llvm.lifetime.start.p0(i64 56, ptr %43) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %45) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %45, ptr align 8 @_ZN2aa12descriptor_vIvEE, i64 8, i1 false), !tbaa.struct !11
  %400 = getelementptr inbounds %"struct.aa::descriptor_t", ptr %45, i64 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %400, ptr align 8 @_ZN2aa12descriptor_vIiEE, i64 8, i1 false), !tbaa.struct !11
  %401 = getelementptr inbounds %"class.std::initializer_list.378", ptr %44, i32 0, i32 0
  store ptr %45, ptr %401, align 8, !tbaa !14
  %402 = getelementptr inbounds %"class.std::initializer_list.378", ptr %44, i32 0, i32 1
  store i64 2, ptr %402, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #8
  call void @_ZNSaIN2aa12descriptor_tEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  %403 = getelementptr inbounds { ptr, i64 }, ptr %44, i32 0, i32 0
  %404 = load ptr, ptr %403, align 8
  %405 = getelementptr inbounds { ptr, i64 }, ptr %44, i32 0, i32 1
  %406 = load i64, ptr %405, align 8
  invoke void @_ZNSt13unordered_setIN2aa12descriptor_tESt4hashIS1_ESt8equal_toIS1_ESaIS1_EEC2ESt16initializer_listIS1_EmRKS3_RKS5_RKS6_(ptr noundef nonnull align 8 dereferenceable(56) %43, ptr %404, i64 %406, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(1) %46, ptr noundef nonnull align 1 dereferenceable(1) %47, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %407 unwind label %430

407:                                              ; preds = %399
  call void @_ZNSt15__new_allocatorIN2aa12descriptor_tEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #8
  call void @llvm.lifetime.start.p0(i64 64, ptr %49) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  store i32 5, ptr %51, align 4, !tbaa !5
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISB_JS3_S4_S5_EEEEEiE4typeELi0EEENS_23force_stable_pointers_tEOSB_(ptr noundef nonnull align 16 dereferenceable(64) %49, ptr noundef nonnull align 4 dereferenceable(4) %51) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %52) #8
  %408 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %49) #8
  %409 = getelementptr inbounds %"struct.aa::poly_ptr.156", ptr %52, i32 0, i32 0
  %410 = getelementptr inbounds { ptr, ptr }, ptr %409, i32 0, i32 0
  %411 = extractvalue { ptr, ptr } %408, 0
  store ptr %411, ptr %410, align 8
  %412 = getelementptr inbounds { ptr, ptr }, ptr %409, i32 0, i32 1
  %413 = extractvalue { ptr, ptr } %408, 1
  store ptr %413, ptr %412, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  %414 = call noundef ptr @_ZNK2aa8poly_ptrIJNS_7destroyENS_9type_infoENS_4moveEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %52) #8
  store ptr %414, ptr %53, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 64, ptr %54) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEC2EOS6_(ptr noundef nonnull align 16 dereferenceable(64) %54, ptr noundef nonnull align 16 dereferenceable(64) %49) #8
  %415 = load ptr, ptr %53, align 8, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 16, ptr %55) #8
  %416 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %54) #8
  %417 = getelementptr inbounds %"struct.aa::poly_ptr.156", ptr %55, i32 0, i32 0
  %418 = getelementptr inbounds { ptr, ptr }, ptr %417, i32 0, i32 0
  %419 = extractvalue { ptr, ptr } %416, 0
  store ptr %419, ptr %418, align 8
  %420 = getelementptr inbounds { ptr, ptr }, ptr %417, i32 0, i32 1
  %421 = extractvalue { ptr, ptr } %416, 1
  store ptr %421, ptr %420, align 8
  %422 = call noundef ptr @_ZNK2aa8poly_ptrIJNS_7destroyENS_9type_infoENS_4moveEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %55) #8
  %423 = icmp ne ptr %415, %422
  br i1 %423, label %427, label %424

424:                                              ; preds = %407
  %425 = call noundef zeroext i1 @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEE18is_stable_pointersEv(ptr noundef nonnull align 16 dereferenceable(64) %54) #8
  %426 = xor i1 %425, true
  br label %427

427:                                              ; preds = %424, %407
  %428 = phi i1 [ true, %407 ], [ %426, %424 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr %55) #8
  br i1 %428, label %429, label %434

429:                                              ; preds = %427
  store i32 -20, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1525

430:                                              ; preds = %399
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %4, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIN2aa12descriptor_tEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %45) #8
  br label %1526

434:                                              ; preds = %427
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %56, ptr align 8 %52, i64 16, i1 false)
  %435 = getelementptr inbounds { ptr, ptr }, ptr %56, i32 0, i32 0
  %436 = load ptr, ptr %435, align 8
  %437 = getelementptr inbounds { ptr, ptr }, ptr %56, i32 0, i32 1
  %438 = load ptr, ptr %437, align 8
  %439 = call noundef ptr @_ZNK2aa11any_cast_fnIiNS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoENS_4moveEEEEPiNS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIiNS_18anyany_poly_traitsEEE, ptr %436, ptr %438) #8
  store i32 150, ptr %439, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %58) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoEEEC2I5derivTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES6_INS_6is_anyIS8_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPS8_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef %57) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoEEEC2I4baseTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES6_INS_6is_anyIS8_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPS8_(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef %57) #8
  %440 = call noundef ptr @_ZNK2aa8poly_ptrIJNS_9type_infoEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  %441 = call noundef ptr @_ZNK2aa8poly_ptrIJNS_9type_infoEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %59) #8
  %442 = icmp ne ptr %440, %441
  br i1 %442, label %473, label %443

443:                                              ; preds = %434
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %60, ptr align 8 %58, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %61, ptr align 8 %59, i64 16, i1 false)
  %444 = getelementptr inbounds { ptr, ptr }, ptr %60, i32 0, i32 0
  %445 = load ptr, ptr %444, align 8
  %446 = getelementptr inbounds { ptr, ptr }, ptr %60, i32 0, i32 1
  %447 = load ptr, ptr %446, align 8
  %448 = getelementptr inbounds { ptr, ptr }, ptr %61, i32 0, i32 0
  %449 = load ptr, ptr %448, align 8
  %450 = getelementptr inbounds { ptr, ptr }, ptr %61, i32 0, i32 1
  %451 = load ptr, ptr %450, align 8
  %452 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_8poly_ptrIJDpT_EEES6_(ptr %445, ptr %447, ptr %449, ptr %451) #8
  br i1 %452, label %473, label %453

453:                                              ; preds = %443
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %62, ptr align 8 %58, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %63, ptr align 8 %58, i64 16, i1 false)
  %454 = getelementptr inbounds { ptr, ptr }, ptr %62, i32 0, i32 0
  %455 = load ptr, ptr %454, align 8
  %456 = getelementptr inbounds { ptr, ptr }, ptr %62, i32 0, i32 1
  %457 = load ptr, ptr %456, align 8
  %458 = getelementptr inbounds { ptr, ptr }, ptr %63, i32 0, i32 0
  %459 = load ptr, ptr %458, align 8
  %460 = getelementptr inbounds { ptr, ptr }, ptr %63, i32 0, i32 1
  %461 = load ptr, ptr %460, align 8
  %462 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_8poly_ptrIJDpT_EEES6_(ptr %455, ptr %457, ptr %459, ptr %461) #8
  br i1 %462, label %473, label %463

463:                                              ; preds = %453
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %64, ptr align 8 %59, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %65, ptr align 8 %59, i64 16, i1 false)
  %464 = getelementptr inbounds { ptr, ptr }, ptr %64, i32 0, i32 0
  %465 = load ptr, ptr %464, align 8
  %466 = getelementptr inbounds { ptr, ptr }, ptr %64, i32 0, i32 1
  %467 = load ptr, ptr %466, align 8
  %468 = getelementptr inbounds { ptr, ptr }, ptr %65, i32 0, i32 0
  %469 = load ptr, ptr %468, align 8
  %470 = getelementptr inbounds { ptr, ptr }, ptr %65, i32 0, i32 1
  %471 = load ptr, ptr %470, align 8
  %472 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_8poly_ptrIJDpT_EEES6_(ptr %465, ptr %467, ptr %469, ptr %471) #8
  br i1 %472, label %473, label %474

473:                                              ; preds = %463, %453, %443, %434
  store i32 -15, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1524

474:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 16, ptr %66) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoEEEC2I5derivTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPKS8_(ptr noundef nonnull align 8 dereferenceable(16) %66, ptr noundef %57) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %67) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoEEEC2I4baseTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPKS8_(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef %57) #8
  %475 = call noundef ptr @_ZNK2aa14const_poly_ptrIJNS_9type_infoEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %66) #8
  %476 = call noundef ptr @_ZNK2aa14const_poly_ptrIJNS_9type_infoEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %67) #8
  %477 = icmp ne ptr %475, %476
  br i1 %477, label %508, label %478

478:                                              ; preds = %474
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %68, ptr align 8 %66, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %69, ptr align 8 %67, i64 16, i1 false)
  %479 = getelementptr inbounds { ptr, ptr }, ptr %68, i32 0, i32 0
  %480 = load ptr, ptr %479, align 8
  %481 = getelementptr inbounds { ptr, ptr }, ptr %68, i32 0, i32 1
  %482 = load ptr, ptr %481, align 8
  %483 = getelementptr inbounds { ptr, ptr }, ptr %69, i32 0, i32 0
  %484 = load ptr, ptr %483, align 8
  %485 = getelementptr inbounds { ptr, ptr }, ptr %69, i32 0, i32 1
  %486 = load ptr, ptr %485, align 8
  %487 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_14const_poly_ptrIJDpT_EEES6_(ptr %480, ptr %482, ptr %484, ptr %486) #8
  br i1 %487, label %508, label %488

488:                                              ; preds = %478
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %70, ptr align 8 %66, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %71, ptr align 8 %66, i64 16, i1 false)
  %489 = getelementptr inbounds { ptr, ptr }, ptr %70, i32 0, i32 0
  %490 = load ptr, ptr %489, align 8
  %491 = getelementptr inbounds { ptr, ptr }, ptr %70, i32 0, i32 1
  %492 = load ptr, ptr %491, align 8
  %493 = getelementptr inbounds { ptr, ptr }, ptr %71, i32 0, i32 0
  %494 = load ptr, ptr %493, align 8
  %495 = getelementptr inbounds { ptr, ptr }, ptr %71, i32 0, i32 1
  %496 = load ptr, ptr %495, align 8
  %497 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_14const_poly_ptrIJDpT_EEES6_(ptr %490, ptr %492, ptr %494, ptr %496) #8
  br i1 %497, label %508, label %498

498:                                              ; preds = %488
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %72, ptr align 8 %67, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %73, ptr align 8 %67, i64 16, i1 false)
  %499 = getelementptr inbounds { ptr, ptr }, ptr %72, i32 0, i32 0
  %500 = load ptr, ptr %499, align 8
  %501 = getelementptr inbounds { ptr, ptr }, ptr %72, i32 0, i32 1
  %502 = load ptr, ptr %501, align 8
  %503 = getelementptr inbounds { ptr, ptr }, ptr %73, i32 0, i32 0
  %504 = load ptr, ptr %503, align 8
  %505 = getelementptr inbounds { ptr, ptr }, ptr %73, i32 0, i32 1
  %506 = load ptr, ptr %505, align 8
  %507 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_14const_poly_ptrIJDpT_EEES6_(ptr %500, ptr %502, ptr %504, ptr %506) #8
  br i1 %507, label %508, label %509

508:                                              ; preds = %498, %488, %478, %474
  store i32 -16, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1523

509:                                              ; preds = %498
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %74, ptr align 8 %66, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %75, ptr align 8 %58, i64 16, i1 false)
  %510 = getelementptr inbounds { ptr, ptr }, ptr %74, i32 0, i32 0
  %511 = load ptr, ptr %510, align 8
  %512 = getelementptr inbounds { ptr, ptr }, ptr %74, i32 0, i32 1
  %513 = load ptr, ptr %512, align 8
  %514 = getelementptr inbounds { ptr, ptr }, ptr %75, i32 0, i32 0
  %515 = load ptr, ptr %514, align 8
  %516 = getelementptr inbounds { ptr, ptr }, ptr %75, i32 0, i32 1
  %517 = load ptr, ptr %516, align 8
  %518 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr %511, ptr %513, ptr %515, ptr %517) #8
  br i1 %518, label %549, label %519

519:                                              ; preds = %509
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %76, ptr align 8 %67, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %77, ptr align 8 %59, i64 16, i1 false)
  %520 = getelementptr inbounds { ptr, ptr }, ptr %76, i32 0, i32 0
  %521 = load ptr, ptr %520, align 8
  %522 = getelementptr inbounds { ptr, ptr }, ptr %76, i32 0, i32 1
  %523 = load ptr, ptr %522, align 8
  %524 = getelementptr inbounds { ptr, ptr }, ptr %77, i32 0, i32 0
  %525 = load ptr, ptr %524, align 8
  %526 = getelementptr inbounds { ptr, ptr }, ptr %77, i32 0, i32 1
  %527 = load ptr, ptr %526, align 8
  %528 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr %521, ptr %523, ptr %525, ptr %527) #8
  br i1 %528, label %549, label %529

529:                                              ; preds = %519
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %78, ptr align 8 %67, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %79, ptr align 8 %58, i64 16, i1 false)
  %530 = getelementptr inbounds { ptr, ptr }, ptr %78, i32 0, i32 0
  %531 = load ptr, ptr %530, align 8
  %532 = getelementptr inbounds { ptr, ptr }, ptr %78, i32 0, i32 1
  %533 = load ptr, ptr %532, align 8
  %534 = getelementptr inbounds { ptr, ptr }, ptr %79, i32 0, i32 0
  %535 = load ptr, ptr %534, align 8
  %536 = getelementptr inbounds { ptr, ptr }, ptr %79, i32 0, i32 1
  %537 = load ptr, ptr %536, align 8
  %538 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTeqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr %531, ptr %533, ptr %535, ptr %537) #8
  br i1 %538, label %549, label %539

539:                                              ; preds = %529
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %80, ptr align 8 %66, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %81, ptr align 8 %59, i64 16, i1 false)
  %540 = getelementptr inbounds { ptr, ptr }, ptr %80, i32 0, i32 0
  %541 = load ptr, ptr %540, align 8
  %542 = getelementptr inbounds { ptr, ptr }, ptr %80, i32 0, i32 1
  %543 = load ptr, ptr %542, align 8
  %544 = getelementptr inbounds { ptr, ptr }, ptr %81, i32 0, i32 0
  %545 = load ptr, ptr %544, align 8
  %546 = getelementptr inbounds { ptr, ptr }, ptr %81, i32 0, i32 1
  %547 = load ptr, ptr %546, align 8
  %548 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTeqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr %541, ptr %543, ptr %545, ptr %547) #8
  br i1 %548, label %549, label %550

549:                                              ; preds = %539, %529, %519, %509
  store i32 -17, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1523

550:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 64, ptr %82) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEEC2IRA12_KcTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISE_JS3_S4_S5_EEEEEiE4typeELi0EEEOSE_(ptr noundef nonnull align 16 dereferenceable(64) %82, ptr noundef nonnull align 1 dereferenceable(12) @.str) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #8
  %551 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %82) #8
  %552 = getelementptr inbounds %"struct.aa::poly_ptr.392", ptr %84, i32 0, i32 0
  %553 = getelementptr inbounds { ptr, ptr }, ptr %552, i32 0, i32 0
  %554 = extractvalue { ptr, ptr } %551, 0
  store ptr %554, ptr %553, align 8
  %555 = getelementptr inbounds { ptr, ptr }, ptr %552, i32 0, i32 1
  %556 = extractvalue { ptr, ptr } %551, 1
  store ptr %556, ptr %555, align 8
  %557 = getelementptr inbounds { ptr, ptr }, ptr %84, i32 0, i32 0
  %558 = load ptr, ptr %557, align 8
  %559 = getelementptr inbounds { ptr, ptr }, ptr %84, i32 0, i32 1
  %560 = load ptr, ptr %559, align 8
  %561 = call noundef ptr @_ZNK2aa11any_cast_fnIPKcNS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5printEEEPS2_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIPKcNS_18anyany_poly_traitsEEE, ptr %558, ptr %560) #8
  store ptr %561, ptr %83, align 8, !tbaa !12
  %562 = load ptr, ptr %83, align 8, !tbaa !12
  %563 = icmp ne ptr %562, null
  br i1 %563, label %570, label %564

564:                                              ; preds = %550
  %565 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 1, ptr %565, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr %565, ptr @_ZTIi, ptr null) #9
          to label %1542 unwind label %566

566:                                              ; preds = %570, %564
  %567 = landingpad { ptr, i32 }
          cleanup
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %4, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %5, align 4
  br label %1522

570:                                              ; preds = %550
  invoke void @_ZNK2aa8noexport9invoke_fnI5printNS_9type_listIJEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoES2_EEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSF_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5printEE, ptr noundef nonnull align 16 dereferenceable(64) %82)
          to label %571 unwind label %566

571:                                              ; preds = %570
  call void @llvm.lifetime.start.p0(i64 24, ptr %85) #8
  call void @_ZNSt6vectorIN2aa8poly_refIJ4fooxEEESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %86) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %86, ptr align 1 @__const.main.fef, i64 1, i1 false)
  %572 = invoke noundef nonnull align 1 ptr @_ZNSt6vectorIN2aa8poly_refIJ4fooxEEESaIS3_EE12emplace_backIJR7FooAbleEEERS3_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %85, ptr noundef nonnull align 1 dereferenceable(1) %86)
          to label %573 unwind label %737

573:                                              ; preds = %571
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #8
  call void @_ZN2A1C2Ev(ptr noundef nonnull align 4 dereferenceable(4) %87) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #8
  call void @_ZN2A2C2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %89) #8
  call void @_ZN2aa8poly_refIJ2M12M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEC2I2A1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESC_INS_14is_polymorphicISE_EEENS_9exist_forISE_JS1_S2_S6_S7_EEEEEiE4typeELi0EEERSE_(ptr noundef nonnull align 8 dereferenceable(16) %89, ptr noundef nonnull align 4 dereferenceable(4) %87) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %90) #8
  call void @_ZN2aa14const_poly_refIJ2M12M2NS_4moveEEEC2I2A2TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISA_JS1_S2_S3_EEEEEiE4typeELi0EEERKSA_(ptr noundef nonnull align 8 dereferenceable(16) %90, ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %91, ptr align 8 %90, i64 16, i1 false)
  %574 = getelementptr inbounds { ptr, ptr }, ptr %91, i32 0, i32 0
  %575 = load ptr, ptr %574, align 8
  %576 = getelementptr inbounds { ptr, ptr }, ptr %91, i32 0, i32 1
  %577 = load ptr, ptr %576, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M1EE, ptr %575, ptr %577, i32 noundef -1)
          to label %578 unwind label %741

578:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 16, ptr %92) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %93, ptr align 8 %90, i64 16, i1 false)
  %579 = getelementptr inbounds { ptr, ptr }, ptr %93, i32 0, i32 0
  %580 = load ptr, ptr %579, align 8
  %581 = getelementptr inbounds { ptr, ptr }, ptr %93, i32 0, i32 1
  %582 = load ptr, ptr %581, align 8
  call void @_ZN2aa14const_poly_refIJ2M2NS_4moveEEEC2IJ2M1S1_S2_EvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr %580, ptr %582) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %94) #8
  %583 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJ2M12M2NS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %90) #8
  %584 = getelementptr inbounds %"struct.aa::const_poly_ptr.412", ptr %95, i32 0, i32 0
  %585 = getelementptr inbounds { ptr, ptr }, ptr %584, i32 0, i32 0
  %586 = extractvalue { ptr, ptr } %583, 0
  store ptr %586, ptr %585, align 8
  %587 = getelementptr inbounds { ptr, ptr }, ptr %584, i32 0, i32 1
  %588 = extractvalue { ptr, ptr } %583, 1
  store ptr %588, ptr %587, align 8
  %589 = getelementptr inbounds { ptr, ptr }, ptr %95, i32 0, i32 0
  %590 = load ptr, ptr %589, align 8
  %591 = getelementptr inbounds { ptr, ptr }, ptr %95, i32 0, i32 1
  %592 = load ptr, ptr %591, align 8
  call void @_ZN2aa14const_poly_ptrIJ2M2NS_4moveEEEC2IJ2M1S1_S2_EvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %94, ptr %590, ptr %592) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %96) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %96, ptr align 8 %94, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %97, ptr align 8 %92, i64 16, i1 false)
  %593 = getelementptr inbounds { ptr, ptr }, ptr %97, i32 0, i32 0
  %594 = load ptr, ptr %593, align 8
  %595 = getelementptr inbounds { ptr, ptr }, ptr %97, i32 0, i32 1
  %596 = load ptr, ptr %595, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %594, ptr %596, double noundef 3.140000e+00, i32 noundef -2)
          to label %597 unwind label %745

597:                                              ; preds = %578
  %598 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M2NS_4moveEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %94) #8
  %599 = getelementptr inbounds { ptr, ptr }, ptr %98, i32 0, i32 0
  %600 = extractvalue { ptr, ptr } %598, 0
  store ptr %600, ptr %599, align 8
  %601 = getelementptr inbounds { ptr, ptr }, ptr %98, i32 0, i32 1
  %602 = extractvalue { ptr, ptr } %598, 1
  store ptr %602, ptr %601, align 8
  %603 = getelementptr inbounds { ptr, ptr }, ptr %98, i32 0, i32 0
  %604 = load ptr, ptr %603, align 8
  %605 = getelementptr inbounds { ptr, ptr }, ptr %98, i32 0, i32 1
  %606 = load ptr, ptr %605, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %604, ptr %606, double noundef 3.140000e+00, i32 noundef -2)
          to label %607 unwind label %745

607:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 16, ptr %99) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %100, ptr align 8 %92, i64 16, i1 false)
  %608 = getelementptr inbounds { ptr, ptr }, ptr %100, i32 0, i32 0
  %609 = load ptr, ptr %608, align 8
  %610 = getelementptr inbounds { ptr, ptr }, ptr %100, i32 0, i32 1
  %611 = load ptr, ptr %610, align 8
  call void @_ZN2aa14const_poly_refIJ2M2EEC2IJS1_NS_4moveEEvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %99, ptr %609, ptr %611) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %101) #8
  %612 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJ2M2NS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %92) #8
  %613 = getelementptr inbounds %"struct.aa::const_poly_ptr.411", ptr %102, i32 0, i32 0
  %614 = getelementptr inbounds { ptr, ptr }, ptr %613, i32 0, i32 0
  %615 = extractvalue { ptr, ptr } %612, 0
  store ptr %615, ptr %614, align 8
  %616 = getelementptr inbounds { ptr, ptr }, ptr %613, i32 0, i32 1
  %617 = extractvalue { ptr, ptr } %612, 1
  store ptr %617, ptr %616, align 8
  %618 = getelementptr inbounds { ptr, ptr }, ptr %102, i32 0, i32 0
  %619 = load ptr, ptr %618, align 8
  %620 = getelementptr inbounds { ptr, ptr }, ptr %102, i32 0, i32 1
  %621 = load ptr, ptr %620, align 8
  call void @_ZN2aa14const_poly_ptrIJ2M2EEC2IJS1_NS_4moveEEvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %101, ptr %619, ptr %621) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %103, ptr align 8 %99, i64 16, i1 false)
  %622 = getelementptr inbounds { ptr, ptr }, ptr %103, i32 0, i32 0
  %623 = load ptr, ptr %622, align 8
  %624 = getelementptr inbounds { ptr, ptr }, ptr %103, i32 0, i32 1
  %625 = load ptr, ptr %624, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %623, ptr %625, double noundef 1.340000e+02, i32 noundef -3)
          to label %626 unwind label %749

626:                                              ; preds = %607
  %627 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %101) #8
  %628 = getelementptr inbounds { ptr, ptr }, ptr %104, i32 0, i32 0
  %629 = extractvalue { ptr, ptr } %627, 0
  store ptr %629, ptr %628, align 8
  %630 = getelementptr inbounds { ptr, ptr }, ptr %104, i32 0, i32 1
  %631 = extractvalue { ptr, ptr } %627, 1
  store ptr %631, ptr %630, align 8
  %632 = getelementptr inbounds { ptr, ptr }, ptr %104, i32 0, i32 0
  %633 = load ptr, ptr %632, align 8
  %634 = getelementptr inbounds { ptr, ptr }, ptr %104, i32 0, i32 1
  %635 = load ptr, ptr %634, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %633, ptr %635, double noundef 1.340000e+02, i32 noundef -3)
          to label %636 unwind label %749

636:                                              ; preds = %626
  call void @llvm.lifetime.start.p0(i64 16, ptr %105) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %106, ptr align 8 %89, i64 16, i1 false)
  %637 = getelementptr inbounds { ptr, ptr }, ptr %106, i32 0, i32 0
  %638 = load ptr, ptr %637, align 8
  %639 = getelementptr inbounds { ptr, ptr }, ptr %106, i32 0, i32 1
  %640 = load ptr, ptr %639, align 8
  call void @_ZN2aa14const_poly_refIJ2M12M2EEC2IJS1_S2_NS_9copy_withISaISt4byteELm40EEENS_4moveEEvEENS_8poly_refIJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %105, ptr %638, ptr %640) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #8
  %641 = call { ptr, ptr } @_ZNK2aa8poly_refIJ2M12M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %89) #8
  %642 = getelementptr inbounds %"struct.aa::poly_ptr.424", ptr %108, i32 0, i32 0
  %643 = getelementptr inbounds { ptr, ptr }, ptr %642, i32 0, i32 0
  %644 = extractvalue { ptr, ptr } %641, 0
  store ptr %644, ptr %643, align 8
  %645 = getelementptr inbounds { ptr, ptr }, ptr %642, i32 0, i32 1
  %646 = extractvalue { ptr, ptr } %641, 1
  store ptr %646, ptr %645, align 8
  %647 = getelementptr inbounds { ptr, ptr }, ptr %108, i32 0, i32 0
  %648 = load ptr, ptr %647, align 8
  %649 = getelementptr inbounds { ptr, ptr }, ptr %108, i32 0, i32 1
  %650 = load ptr, ptr %649, align 8
  call void @_ZN2aa14const_poly_ptrIJ2M12M2EEC2IJS1_S2_NS_9copy_withISaISt4byteELm40EEENS_4moveEEvEENS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr %648, ptr %650) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %109, ptr align 8 %105, i64 16, i1 false)
  %651 = getelementptr inbounds { ptr, ptr }, ptr %109, i32 0, i32 0
  %652 = load ptr, ptr %651, align 8
  %653 = getelementptr inbounds { ptr, ptr }, ptr %109, i32 0, i32 1
  %654 = load ptr, ptr %653, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2EEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M1EE, ptr %652, ptr %654, i32 noundef -5)
          to label %655 unwind label %753

655:                                              ; preds = %636
  %656 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M12M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %107) #8
  %657 = getelementptr inbounds { ptr, ptr }, ptr %110, i32 0, i32 0
  %658 = extractvalue { ptr, ptr } %656, 0
  store ptr %658, ptr %657, align 8
  %659 = getelementptr inbounds { ptr, ptr }, ptr %110, i32 0, i32 1
  %660 = extractvalue { ptr, ptr } %656, 1
  store ptr %660, ptr %659, align 8
  %661 = getelementptr inbounds { ptr, ptr }, ptr %110, i32 0, i32 0
  %662 = load ptr, ptr %661, align 8
  %663 = getelementptr inbounds { ptr, ptr }, ptr %110, i32 0, i32 1
  %664 = load ptr, ptr %663, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2EEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M1EE, ptr %662, ptr %664, i32 noundef -5)
          to label %665 unwind label %753

665:                                              ; preds = %655
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %111, ptr align 8 %105, i64 16, i1 false)
  %666 = getelementptr inbounds { ptr, ptr }, ptr %111, i32 0, i32 0
  %667 = load ptr, ptr %666, align 8
  %668 = getelementptr inbounds { ptr, ptr }, ptr %111, i32 0, i32 1
  %669 = load ptr, ptr %668, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %667, ptr %669, double noundef 1.340000e+04, i32 noundef -6)
          to label %670 unwind label %753

670:                                              ; preds = %665
  %671 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M12M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %107) #8
  %672 = getelementptr inbounds { ptr, ptr }, ptr %112, i32 0, i32 0
  %673 = extractvalue { ptr, ptr } %671, 0
  store ptr %673, ptr %672, align 8
  %674 = getelementptr inbounds { ptr, ptr }, ptr %112, i32 0, i32 1
  %675 = extractvalue { ptr, ptr } %671, 1
  store ptr %675, ptr %674, align 8
  %676 = getelementptr inbounds { ptr, ptr }, ptr %112, i32 0, i32 0
  %677 = load ptr, ptr %676, align 8
  %678 = getelementptr inbounds { ptr, ptr }, ptr %112, i32 0, i32 1
  %679 = load ptr, ptr %678, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %677, ptr %679, double noundef 1.340000e+04, i32 noundef -6)
          to label %680 unwind label %753

680:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 16, ptr %113) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %114, ptr align 8 %89, i64 16, i1 false)
  %681 = getelementptr inbounds { ptr, ptr }, ptr %114, i32 0, i32 0
  %682 = load ptr, ptr %681, align 8
  %683 = getelementptr inbounds { ptr, ptr }, ptr %114, i32 0, i32 1
  %684 = load ptr, ptr %683, align 8
  call void @_ZN2aa8poly_refIJ2M2NS_9copy_withISaISt4byteELm40EEEEEC2IJ2M1S1_S5_NS_4moveEEvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %113, ptr %682, ptr %684) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %115) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %116, ptr align 8 %113, i64 16, i1 false)
  %685 = getelementptr inbounds { ptr, ptr }, ptr %116, i32 0, i32 0
  %686 = load ptr, ptr %685, align 8
  %687 = getelementptr inbounds { ptr, ptr }, ptr %116, i32 0, i32 1
  %688 = load ptr, ptr %687, align 8
  call void @_ZN2aa8poly_refIJ2M2EEC2IJS1_NS_9copy_withISaISt4byteELm40EEEEvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %115, ptr %686, ptr %688) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %117) #8
  %689 = call { ptr, ptr } @_ZNK2aa8poly_refIJ2M2NS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %113) #8
  %690 = getelementptr inbounds %"struct.aa::poly_ptr.429", ptr %118, i32 0, i32 0
  %691 = getelementptr inbounds { ptr, ptr }, ptr %690, i32 0, i32 0
  %692 = extractvalue { ptr, ptr } %689, 0
  store ptr %692, ptr %691, align 8
  %693 = getelementptr inbounds { ptr, ptr }, ptr %690, i32 0, i32 1
  %694 = extractvalue { ptr, ptr } %689, 1
  store ptr %694, ptr %693, align 8
  %695 = getelementptr inbounds { ptr, ptr }, ptr %118, i32 0, i32 0
  %696 = load ptr, ptr %695, align 8
  %697 = getelementptr inbounds { ptr, ptr }, ptr %118, i32 0, i32 1
  %698 = load ptr, ptr %697, align 8
  call void @_ZN2aa8poly_ptrIJ2M2EEC2IJS1_NS_9copy_withISaISt4byteELm40EEEETnNSt9enable_ifIXclsr8noexportE15has_subsequencetlNS_9type_listIJS1_EEEEtlNS9_IJDpT_EEEEEEiE4typeELi0EEENS0_IJSC_EEE(ptr noundef nonnull align 8 dereferenceable(16) %117, ptr %696, ptr %698) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %119) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %119, ptr align 8 %117, i64 16, i1 false)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %120, ptr align 8 %89, i64 16, i1 false)
  %699 = getelementptr inbounds { ptr, ptr }, ptr %120, i32 0, i32 0
  %700 = load ptr, ptr %699, align 8
  %701 = getelementptr inbounds { ptr, ptr }, ptr %120, i32 0, i32 1
  %702 = load ptr, ptr %701, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEEvNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M1EE, ptr %700, ptr %702, i32 noundef 10)
          to label %703 unwind label %757

703:                                              ; preds = %680
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %121, ptr align 8 %89, i64 16, i1 false)
  %704 = getelementptr inbounds { ptr, ptr }, ptr %121, i32 0, i32 0
  %705 = load ptr, ptr %704, align 8
  %706 = getelementptr inbounds { ptr, ptr }, ptr %121, i32 0, i32 1
  %707 = load ptr, ptr %706, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_NS_9copy_withISaISt4byteELm40EEENS_4moveEEEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %705, ptr %707, double noundef 1.100000e+01, i32 noundef 12)
          to label %708 unwind label %757

708:                                              ; preds = %703
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %122, ptr align 8 %113, i64 16, i1 false)
  %709 = getelementptr inbounds { ptr, ptr }, ptr %122, i32 0, i32 0
  %710 = load ptr, ptr %709, align 8
  %711 = getelementptr inbounds { ptr, ptr }, ptr %122, i32 0, i32 1
  %712 = load ptr, ptr %711, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_9copy_withISaISt4byteELm40EEEEEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %710, ptr %712, double noundef 1.100000e+01, i32 noundef 12)
          to label %713 unwind label %757

713:                                              ; preds = %708
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %123, ptr align 8 %115, i64 16, i1 false)
  %714 = getelementptr inbounds { ptr, ptr }, ptr %123, i32 0, i32 0
  %715 = load ptr, ptr %714, align 8
  %716 = getelementptr inbounds { ptr, ptr }, ptr %123, i32 0, i32 1
  %717 = load ptr, ptr %716, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %715, ptr %717, double noundef 1.100000e+01, i32 noundef 12)
          to label %718 unwind label %757

718:                                              ; preds = %713
  %719 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJ2M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %117) #8
  %720 = getelementptr inbounds { ptr, ptr }, ptr %124, i32 0, i32 0
  %721 = extractvalue { ptr, ptr } %719, 0
  store ptr %721, ptr %720, align 8
  %722 = getelementptr inbounds { ptr, ptr }, ptr %124, i32 0, i32 1
  %723 = extractvalue { ptr, ptr } %719, 1
  store ptr %723, ptr %722, align 8
  %724 = getelementptr inbounds { ptr, ptr }, ptr %124, i32 0, i32 0
  %725 = load ptr, ptr %724, align 8
  %726 = getelementptr inbounds { ptr, ptr }, ptr %124, i32 0, i32 1
  %727 = load ptr, ptr %726, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %725, ptr %727, double noundef 1.100000e+01, i32 noundef 12)
          to label %728 unwind label %757

728:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 1, ptr %125) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %126) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %127) #8
  call void @_ZN2aa6vtableIJNS_9type_infoENS_9copy_withISaISt4byteELm40EEES1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #8
  invoke void @_ZN2aa6vtableIJNS_9type_infoENS_9copy_withISaISt4byteELm40EEES1_EE6changeIS1_NS_12descriptor_tEEEvRKT0_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(8) @_ZN2aa12descriptor_vIiEE)
          to label %729 unwind label %761

729:                                              ; preds = %728
  %730 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2aa8noexport3getILm0ENS_12descriptor_tEEERT0_RNS0_14value_in_tupleIS3_XT_EEE(ptr noundef nonnull align 8 dereferenceable(8) %127) #8
  %731 = call noundef zeroext i1 @_ZNK2aa12descriptor_tneERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %730, ptr noundef nonnull align 8 dereferenceable(8) @_ZN2aa12descriptor_vIiEE) #8
  br i1 %731, label %736, label %732

732:                                              ; preds = %729
  %733 = getelementptr inbounds i8, ptr %127, i64 24
  %734 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2aa8noexport3getILm2ENS_12descriptor_tEEERT0_RNS0_14value_in_tupleIS3_XT_EEE(ptr noundef nonnull align 8 dereferenceable(8) %733) #8
  %735 = call noundef zeroext i1 @_ZNK2aa12descriptor_tneERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %734, ptr noundef nonnull align 8 dereferenceable(8) @_ZN2aa12descriptor_vIiEE) #8
  br i1 %735, label %736, label %765

736:                                              ; preds = %732, %729
  store i32 -10, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1165

737:                                              ; preds = %571
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %4, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %5, align 4
  br label %1521

741:                                              ; preds = %573
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %4, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %5, align 4
  br label %1520

745:                                              ; preds = %597, %578
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %4, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %5, align 4
  br label %1519

749:                                              ; preds = %626, %607
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %4, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %5, align 4
  br label %1518

753:                                              ; preds = %670, %665, %655, %636
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %4, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %5, align 4
  br label %1517

757:                                              ; preds = %718, %713, %708, %703, %680
  %758 = landingpad { ptr, i32 }
          cleanup
  %759 = extractvalue { ptr, i32 } %758, 0
  store ptr %759, ptr %4, align 8
  %760 = extractvalue { ptr, i32 } %758, 1
  store i32 %760, ptr %5, align 4
  br label %1516

761:                                              ; preds = %728
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %4, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %5, align 4
  br label %1323

765:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 16, ptr %128) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_6is_anyISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPSD_(ptr noundef nonnull align 8 dereferenceable(16) %128, ptr noundef %125) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %129) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPKSD_(ptr noundef nonnull align 8 dereferenceable(16) %129, ptr noundef %125) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %130) #8
  call void @_ZN2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_14is_polymorphicISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERSD_(ptr noundef nonnull align 8 dereferenceable(16) %130, ptr noundef nonnull align 1 dereferenceable(1) %125) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %131) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERKSD_(ptr noundef nonnull align 8 dereferenceable(16) %131, ptr noundef nonnull align 1 dereferenceable(1) %125) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %132) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPKSD_(ptr noundef nonnull align 8 dereferenceable(16) %132, ptr noundef %126) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %133) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERKSD_(ptr noundef nonnull align 8 dereferenceable(16) %133, ptr noundef nonnull align 1 dereferenceable(1) %126) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %134, ptr align 8 %133, i64 16, i1 false)
  %766 = getelementptr inbounds { ptr, ptr }, ptr %134, i32 0, i32 0
  %767 = load ptr, ptr %766, align 8
  %768 = getelementptr inbounds { ptr, ptr }, ptr %134, i32 0, i32 1
  %769 = load ptr, ptr %768, align 8
  invoke void @_ZNK2aa11any_cast_fnIK9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK9drawable1NS_18anyany_poly_traitsEEE, ptr %767, ptr %769)
          to label %770 unwind label %823

770:                                              ; preds = %765
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %136, ptr align 8 %133, i64 16, i1 false)
  %771 = getelementptr inbounds { ptr, ptr }, ptr %136, i32 0, i32 0
  %772 = load ptr, ptr %771, align 8
  %773 = getelementptr inbounds { ptr, ptr }, ptr %136, i32 0, i32 1
  %774 = load ptr, ptr %773, align 8
  invoke void @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %772, ptr %774)
          to label %775 unwind label %823

775:                                              ; preds = %770
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %138, ptr align 8 %133, i64 16, i1 false)
  %776 = getelementptr inbounds { ptr, ptr }, ptr %138, i32 0, i32 0
  %777 = load ptr, ptr %776, align 8
  %778 = getelementptr inbounds { ptr, ptr }, ptr %138, i32 0, i32 1
  %779 = load ptr, ptr %778, align 8
  %780 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable1NS_18anyany_poly_traitsEEE, ptr %777, ptr %779)
          to label %781 unwind label %823

781:                                              ; preds = %775
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %139, ptr align 8 %133, i64 16, i1 false)
  %782 = getelementptr inbounds { ptr, ptr }, ptr %139, i32 0, i32 0
  %783 = load ptr, ptr %782, align 8
  %784 = getelementptr inbounds { ptr, ptr }, ptr %139, i32 0, i32 1
  %785 = load ptr, ptr %784, align 8
  %786 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable1NS_18anyany_poly_traitsEEE, ptr %783, ptr %785)
          to label %787 unwind label %823

787:                                              ; preds = %781
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %140, ptr align 8 %130, i64 16, i1 false)
  %788 = getelementptr inbounds { ptr, ptr }, ptr %140, i32 0, i32 0
  %789 = load ptr, ptr %788, align 8
  %790 = getelementptr inbounds { ptr, ptr }, ptr %140, i32 0, i32 1
  %791 = load ptr, ptr %790, align 8
  invoke void @_ZNK2aa11any_cast_fnIK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK9drawable0NS_18anyany_poly_traitsEEE, ptr %789, ptr %791)
          to label %792 unwind label %823

792:                                              ; preds = %787
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %142, ptr align 8 %130, i64 16, i1 false)
  %793 = getelementptr inbounds { ptr, ptr }, ptr %142, i32 0, i32 0
  %794 = load ptr, ptr %793, align 8
  %795 = getelementptr inbounds { ptr, ptr }, ptr %142, i32 0, i32 1
  %796 = load ptr, ptr %795, align 8
  invoke void @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %794, ptr %796)
          to label %797 unwind label %823

797:                                              ; preds = %792
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %144, ptr align 8 %130, i64 16, i1 false)
  %798 = getelementptr inbounds { ptr, ptr }, ptr %144, i32 0, i32 0
  %799 = load ptr, ptr %798, align 8
  %800 = getelementptr inbounds { ptr, ptr }, ptr %144, i32 0, i32 1
  %801 = load ptr, ptr %800, align 8
  %802 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable0NS_18anyany_poly_traitsEEE, ptr %799, ptr %801)
          to label %803 unwind label %823

803:                                              ; preds = %797
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %145, ptr align 8 %130, i64 16, i1 false)
  %804 = getelementptr inbounds { ptr, ptr }, ptr %145, i32 0, i32 0
  %805 = load ptr, ptr %804, align 8
  %806 = getelementptr inbounds { ptr, ptr }, ptr %145, i32 0, i32 1
  %807 = load ptr, ptr %806, align 8
  %808 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE, ptr %805, ptr %807)
          to label %809 unwind label %823

809:                                              ; preds = %803
  call void @llvm.lifetime.start.p0(i64 64, ptr %146) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEC2IR9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISF_JS3_S4_S5_S7_EEEEEiE4typeELi0EEEOSF_(ptr noundef nonnull align 16 dereferenceable(64) %146, ptr noundef nonnull align 1 dereferenceable(1) %125) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %147) #8
  %810 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %146) #8
  %811 = getelementptr inbounds %"struct.aa::poly_ptr.447", ptr %147, i32 0, i32 0
  %812 = getelementptr inbounds { ptr, ptr }, ptr %811, i32 0, i32 0
  %813 = extractvalue { ptr, ptr } %810, 0
  store ptr %813, ptr %812, align 8
  %814 = getelementptr inbounds { ptr, ptr }, ptr %811, i32 0, i32 1
  %815 = extractvalue { ptr, ptr } %810, 1
  store ptr %815, ptr %814, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %148, ptr align 8 %147, i64 16, i1 false)
  %816 = getelementptr inbounds { ptr, ptr }, ptr %148, i32 0, i32 0
  %817 = load ptr, ptr %816, align 8
  %818 = getelementptr inbounds { ptr, ptr }, ptr %148, i32 0, i32 1
  %819 = load ptr, ptr %818, align 8
  %820 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %817, ptr %819) #8
  %821 = icmp eq ptr %820, null
  br i1 %821, label %822, label %827

822:                                              ; preds = %809
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1164

823:                                              ; preds = %803, %797, %792, %787, %781, %775, %770, %765
  %824 = landingpad { ptr, i32 }
          cleanup
  %825 = extractvalue { ptr, i32 } %824, 0
  store ptr %825, ptr %4, align 8
  %826 = extractvalue { ptr, i32 } %824, 1
  store i32 %826, ptr %5, align 4
  br label %1322

827:                                              ; preds = %809
  %828 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %147) #8
  %829 = getelementptr inbounds { ptr, ptr }, ptr %149, i32 0, i32 0
  %830 = extractvalue { ptr, ptr } %828, 0
  store ptr %830, ptr %829, align 8
  %831 = getelementptr inbounds { ptr, ptr }, ptr %149, i32 0, i32 1
  %832 = extractvalue { ptr, ptr } %828, 1
  store ptr %832, ptr %831, align 8
  %833 = getelementptr inbounds { ptr, ptr }, ptr %149, i32 0, i32 0
  %834 = load ptr, ptr %833, align 8
  %835 = getelementptr inbounds { ptr, ptr }, ptr %149, i32 0, i32 1
  %836 = load ptr, ptr %835, align 8
  %837 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable0NS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE, ptr %834, ptr %836)
          to label %838 unwind label %896

838:                                              ; preds = %827
  call void @llvm.lifetime.start.p0(i64 64, ptr %150) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEC2IRK9drawable1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISG_JS3_S4_S5_S7_EEEEEiE4typeELi0EEEOSG_(ptr noundef nonnull align 16 dereferenceable(64) %150, ptr noundef nonnull align 1 dereferenceable(1) %126) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %151) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %153) #8
  %839 = call { ptr, ptr } @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %150) #8
  %840 = getelementptr inbounds %"struct.aa::const_poly_ptr.457", ptr %153, i32 0, i32 0
  %841 = getelementptr inbounds { ptr, ptr }, ptr %840, i32 0, i32 0
  %842 = extractvalue { ptr, ptr } %839, 0
  store ptr %842, ptr %841, align 8
  %843 = getelementptr inbounds { ptr, ptr }, ptr %840, i32 0, i32 1
  %844 = extractvalue { ptr, ptr } %839, 1
  store ptr %844, ptr %843, align 8
  %845 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %153) #8
  %846 = getelementptr inbounds { ptr, ptr }, ptr %152, i32 0, i32 0
  %847 = extractvalue { ptr, ptr } %845, 0
  store ptr %847, ptr %846, align 8
  %848 = getelementptr inbounds { ptr, ptr }, ptr %152, i32 0, i32 1
  %849 = extractvalue { ptr, ptr } %845, 1
  store ptr %849, ptr %848, align 8
  %850 = getelementptr inbounds { ptr, ptr }, ptr %152, i32 0, i32 0
  %851 = load ptr, ptr %850, align 8
  %852 = getelementptr inbounds { ptr, ptr }, ptr %152, i32 0, i32 1
  %853 = load ptr, ptr %852, align 8
  invoke void @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %851, ptr %853)
          to label %854 unwind label %900

854:                                              ; preds = %838
  %855 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %151, i32 noundef 5)
          to label %856 unwind label %900

856:                                              ; preds = %854
  call void @llvm.lifetime.end.p0(i64 16, ptr %153) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #8
  %857 = call { ptr, ptr } @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %150) #8
  %858 = getelementptr inbounds %"struct.aa::const_poly_ptr.457", ptr %155, i32 0, i32 0
  %859 = getelementptr inbounds { ptr, ptr }, ptr %858, i32 0, i32 0
  %860 = extractvalue { ptr, ptr } %857, 0
  store ptr %860, ptr %859, align 8
  %861 = getelementptr inbounds { ptr, ptr }, ptr %858, i32 0, i32 1
  %862 = extractvalue { ptr, ptr } %857, 1
  store ptr %862, ptr %861, align 8
  %863 = getelementptr inbounds { ptr, ptr }, ptr %155, i32 0, i32 0
  %864 = load ptr, ptr %863, align 8
  %865 = getelementptr inbounds { ptr, ptr }, ptr %155, i32 0, i32 1
  %866 = load ptr, ptr %865, align 8
  %867 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPKS1_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %864, ptr %866) #8
  %868 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %867, i32 noundef 5)
          to label %869 unwind label %904

869:                                              ; preds = %856
  %870 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclINS_9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS7_Lm40EEEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEPKS1_PKSF_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr noundef %150) #8
  %871 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %870, i32 noundef 5)
          to label %872 unwind label %904

872:                                              ; preds = %869
  %873 = call noundef ptr @_ZNK2aa11any_cast_fnIK9drawable1NS_18anyany_poly_traitsEEclINS_9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS8_Lm40EEEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEPS2_PKSG_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK9drawable1NS_18anyany_poly_traitsEEE, ptr noundef %150) #8
  %874 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %873, i32 noundef 5)
          to label %875 unwind label %904

875:                                              ; preds = %872
  call void @llvm.lifetime.start.p0(i64 16, ptr %156) #8
  %876 = call { ptr, ptr } @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %150) #8
  %877 = getelementptr inbounds %"struct.aa::const_poly_ptr.457", ptr %156, i32 0, i32 0
  %878 = getelementptr inbounds { ptr, ptr }, ptr %877, i32 0, i32 0
  %879 = extractvalue { ptr, ptr } %876, 0
  store ptr %879, ptr %878, align 8
  %880 = getelementptr inbounds { ptr, ptr }, ptr %877, i32 0, i32 1
  %881 = extractvalue { ptr, ptr } %876, 1
  store ptr %881, ptr %880, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %157) #8
  call void @_ZN2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_14is_polymorphicISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERSD_(ptr noundef nonnull align 8 dereferenceable(16) %157, ptr noundef nonnull align 1 dereferenceable(1) %125) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %158) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERKSD_(ptr noundef nonnull align 8 dereferenceable(16) %158, ptr noundef nonnull align 1 dereferenceable(1) %125) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %159) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_6is_anyISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPSD_(ptr noundef nonnull align 8 dereferenceable(16) %159, ptr noundef %125) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %160) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPKSD_(ptr noundef nonnull align 8 dereferenceable(16) %160, ptr noundef %125) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %161, ptr align 8 %128, i64 16, i1 false)
  %882 = getelementptr inbounds { ptr, ptr }, ptr %161, i32 0, i32 0
  %883 = load ptr, ptr %882, align 8
  %884 = getelementptr inbounds { ptr, ptr }, ptr %161, i32 0, i32 1
  %885 = load ptr, ptr %884, align 8
  %886 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %883, ptr %885) #8
  %887 = icmp eq ptr %886, null
  br i1 %887, label %895, label %888

888:                                              ; preds = %875
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %162, ptr align 8 %128, i64 16, i1 false)
  %889 = getelementptr inbounds { ptr, ptr }, ptr %162, i32 0, i32 0
  %890 = load ptr, ptr %889, align 8
  %891 = getelementptr inbounds { ptr, ptr }, ptr %162, i32 0, i32 1
  %892 = load ptr, ptr %891, align 8
  %893 = call noundef ptr @_ZNK2aa11any_cast_fnIK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS2_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK9drawable0NS_18anyany_poly_traitsEEE, ptr %890, ptr %892) #8
  %894 = icmp eq ptr %893, null
  br i1 %894, label %895, label %908

895:                                              ; preds = %888, %875
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1163

896:                                              ; preds = %827
  %897 = landingpad { ptr, i32 }
          cleanup
  %898 = extractvalue { ptr, i32 } %897, 0
  store ptr %898, ptr %4, align 8
  %899 = extractvalue { ptr, i32 } %897, 1
  store i32 %899, ptr %5, align 4
  br label %1321

900:                                              ; preds = %854, %838
  %901 = landingpad { ptr, i32 }
          cleanup
  %902 = extractvalue { ptr, i32 } %901, 0
  store ptr %902, ptr %4, align 8
  %903 = extractvalue { ptr, i32 } %901, 1
  store i32 %903, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %153) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %151) #8
  br label %1320

904:                                              ; preds = %872, %869, %856
  %905 = landingpad { ptr, i32 }
          cleanup
  %906 = extractvalue { ptr, i32 } %905, 0
  store ptr %906, ptr %4, align 8
  %907 = extractvalue { ptr, i32 } %905, 1
  store i32 %907, ptr %5, align 4
  br label %1320

908:                                              ; preds = %888
  call void @llvm.lifetime.start.p0(i64 16, ptr %163) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %163, ptr align 8 %128, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %164) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %165, ptr align 8 %128, i64 16, i1 false)
  %909 = getelementptr inbounds { ptr, ptr }, ptr %165, i32 0, i32 0
  %910 = load ptr, ptr %909, align 8
  %911 = getelementptr inbounds { ptr, ptr }, ptr %165, i32 0, i32 1
  %912 = load ptr, ptr %911, align 8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2ENS_8poly_ptrIJS1_S2_S6_EEE(ptr noundef nonnull align 8 dereferenceable(16) %164, ptr %910, ptr %912) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %166) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %166, ptr align 8 %129, i64 16, i1 false)
  %913 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %128) #8
  %914 = getelementptr inbounds { ptr, ptr }, ptr %167, i32 0, i32 0
  %915 = extractvalue { ptr, ptr } %913, 0
  store ptr %915, ptr %914, align 8
  %916 = getelementptr inbounds { ptr, ptr }, ptr %167, i32 0, i32 1
  %917 = extractvalue { ptr, ptr } %913, 1
  store ptr %917, ptr %916, align 8
  %918 = getelementptr inbounds { ptr, ptr }, ptr %167, i32 0, i32 0
  %919 = load ptr, ptr %918, align 8
  %920 = getelementptr inbounds { ptr, ptr }, ptr %167, i32 0, i32 1
  %921 = load ptr, ptr %920, align 8
  %922 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %919, ptr %921, i32 noundef 150)
          to label %923 unwind label %1130

923:                                              ; preds = %908
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %168, ptr align 8 %130, i64 16, i1 false)
  %924 = getelementptr inbounds { ptr, ptr }, ptr %168, i32 0, i32 0
  %925 = load ptr, ptr %924, align 8
  %926 = getelementptr inbounds { ptr, ptr }, ptr %168, i32 0, i32 1
  %927 = load ptr, ptr %926, align 8
  %928 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %925, ptr %927, i32 noundef 150)
          to label %929 unwind label %1130

929:                                              ; preds = %923
  call void @llvm.lifetime.start.p0(i64 16, ptr %170) #8
  %930 = call { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %130) #8
  %931 = getelementptr inbounds %"struct.aa::poly_ptr", ptr %170, i32 0, i32 0
  %932 = getelementptr inbounds { ptr, ptr }, ptr %931, i32 0, i32 0
  %933 = extractvalue { ptr, ptr } %930, 0
  store ptr %933, ptr %932, align 8
  %934 = getelementptr inbounds { ptr, ptr }, ptr %931, i32 0, i32 1
  %935 = extractvalue { ptr, ptr } %930, 1
  store ptr %935, ptr %934, align 8
  %936 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %170) #8
  %937 = getelementptr inbounds { ptr, ptr }, ptr %169, i32 0, i32 0
  %938 = extractvalue { ptr, ptr } %936, 0
  store ptr %938, ptr %937, align 8
  %939 = getelementptr inbounds { ptr, ptr }, ptr %169, i32 0, i32 1
  %940 = extractvalue { ptr, ptr } %936, 1
  store ptr %940, ptr %939, align 8
  %941 = getelementptr inbounds { ptr, ptr }, ptr %169, i32 0, i32 0
  %942 = load ptr, ptr %941, align 8
  %943 = getelementptr inbounds { ptr, ptr }, ptr %169, i32 0, i32 1
  %944 = load ptr, ptr %943, align 8
  %945 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %942, ptr %944, i32 noundef 150)
          to label %946 unwind label %1134

946:                                              ; preds = %929
  call void @llvm.lifetime.end.p0(i64 16, ptr %170) #8
  %947 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %129) #8
  %948 = getelementptr inbounds { ptr, ptr }, ptr %171, i32 0, i32 0
  %949 = extractvalue { ptr, ptr } %947, 0
  store ptr %949, ptr %948, align 8
  %950 = getelementptr inbounds { ptr, ptr }, ptr %171, i32 0, i32 1
  %951 = extractvalue { ptr, ptr } %947, 1
  store ptr %951, ptr %950, align 8
  %952 = getelementptr inbounds { ptr, ptr }, ptr %171, i32 0, i32 0
  %953 = load ptr, ptr %952, align 8
  %954 = getelementptr inbounds { ptr, ptr }, ptr %171, i32 0, i32 1
  %955 = load ptr, ptr %954, align 8
  %956 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %953, ptr %955, i32 noundef 150)
          to label %957 unwind label %1130

957:                                              ; preds = %946
  %958 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %132) #8
  %959 = getelementptr inbounds { ptr, ptr }, ptr %172, i32 0, i32 0
  %960 = extractvalue { ptr, ptr } %958, 0
  store ptr %960, ptr %959, align 8
  %961 = getelementptr inbounds { ptr, ptr }, ptr %172, i32 0, i32 1
  %962 = extractvalue { ptr, ptr } %958, 1
  store ptr %962, ptr %961, align 8
  %963 = getelementptr inbounds { ptr, ptr }, ptr %172, i32 0, i32 0
  %964 = load ptr, ptr %963, align 8
  %965 = getelementptr inbounds { ptr, ptr }, ptr %172, i32 0, i32 1
  %966 = load ptr, ptr %965, align 8
  %967 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %964, ptr %966, i32 noundef 150)
          to label %968 unwind label %1130

968:                                              ; preds = %957
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %173, ptr align 8 %131, i64 16, i1 false)
  %969 = getelementptr inbounds { ptr, ptr }, ptr %173, i32 0, i32 0
  %970 = load ptr, ptr %969, align 8
  %971 = getelementptr inbounds { ptr, ptr }, ptr %173, i32 0, i32 1
  %972 = load ptr, ptr %971, align 8
  %973 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %970, ptr %972, i32 noundef 150)
          to label %974 unwind label %1130

974:                                              ; preds = %968
  call void @llvm.lifetime.start.p0(i64 16, ptr %175) #8
  %975 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %131) #8
  %976 = getelementptr inbounds %"struct.aa::const_poly_ptr", ptr %175, i32 0, i32 0
  %977 = getelementptr inbounds { ptr, ptr }, ptr %976, i32 0, i32 0
  %978 = extractvalue { ptr, ptr } %975, 0
  store ptr %978, ptr %977, align 8
  %979 = getelementptr inbounds { ptr, ptr }, ptr %976, i32 0, i32 1
  %980 = extractvalue { ptr, ptr } %975, 1
  store ptr %980, ptr %979, align 8
  %981 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %175) #8
  %982 = getelementptr inbounds { ptr, ptr }, ptr %174, i32 0, i32 0
  %983 = extractvalue { ptr, ptr } %981, 0
  store ptr %983, ptr %982, align 8
  %984 = getelementptr inbounds { ptr, ptr }, ptr %174, i32 0, i32 1
  %985 = extractvalue { ptr, ptr } %981, 1
  store ptr %985, ptr %984, align 8
  %986 = getelementptr inbounds { ptr, ptr }, ptr %174, i32 0, i32 0
  %987 = load ptr, ptr %986, align 8
  %988 = getelementptr inbounds { ptr, ptr }, ptr %174, i32 0, i32 1
  %989 = load ptr, ptr %988, align 8
  %990 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %987, ptr %989, i32 noundef 150)
          to label %991 unwind label %1138

991:                                              ; preds = %974
  call void @llvm.lifetime.end.p0(i64 16, ptr %175) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %177) #8
  %992 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %133) #8
  %993 = getelementptr inbounds %"struct.aa::const_poly_ptr", ptr %177, i32 0, i32 0
  %994 = getelementptr inbounds { ptr, ptr }, ptr %993, i32 0, i32 0
  %995 = extractvalue { ptr, ptr } %992, 0
  store ptr %995, ptr %994, align 8
  %996 = getelementptr inbounds { ptr, ptr }, ptr %993, i32 0, i32 1
  %997 = extractvalue { ptr, ptr } %992, 1
  store ptr %997, ptr %996, align 8
  %998 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %177) #8
  %999 = getelementptr inbounds { ptr, ptr }, ptr %176, i32 0, i32 0
  %1000 = extractvalue { ptr, ptr } %998, 0
  store ptr %1000, ptr %999, align 8
  %1001 = getelementptr inbounds { ptr, ptr }, ptr %176, i32 0, i32 1
  %1002 = extractvalue { ptr, ptr } %998, 1
  store ptr %1002, ptr %1001, align 8
  %1003 = getelementptr inbounds { ptr, ptr }, ptr %176, i32 0, i32 0
  %1004 = load ptr, ptr %1003, align 8
  %1005 = getelementptr inbounds { ptr, ptr }, ptr %176, i32 0, i32 1
  %1006 = load ptr, ptr %1005, align 8
  %1007 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %1004, ptr %1006, i32 noundef 150)
          to label %1008 unwind label %1142

1008:                                             ; preds = %991
  call void @llvm.lifetime.end.p0(i64 16, ptr %177) #8
  %1009 = call noundef ptr @_ZN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %128) #8
  %1010 = call noundef i32 @_ZNK5Drawi6pluginIN2aa8poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1009, i32 noundef 150) #8
  %1011 = call noundef ptr @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %129) #8
  %1012 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1011, i32 noundef 150) #8
  %1013 = call noundef ptr @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %132) #8
  %1014 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1013, i32 noundef 150) #8
  %1015 = call noundef i32 @_ZNK5Drawi6pluginIN2aa8poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %130, i32 noundef 150) #8
  %1016 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %131, i32 noundef 150) #8
  %1017 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %133, i32 noundef 150) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %178) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %179) #8
  %1018 = call { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %130) #8
  %1019 = getelementptr inbounds %"struct.aa::poly_ptr", ptr %179, i32 0, i32 0
  %1020 = getelementptr inbounds { ptr, ptr }, ptr %1019, i32 0, i32 0
  %1021 = extractvalue { ptr, ptr } %1018, 0
  store ptr %1021, ptr %1020, align 8
  %1022 = getelementptr inbounds { ptr, ptr }, ptr %1019, i32 0, i32 1
  %1023 = extractvalue { ptr, ptr } %1018, 1
  store ptr %1023, ptr %1022, align 8
  %1024 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %179) #8
  %1025 = getelementptr inbounds { ptr, ptr }, ptr %178, i32 0, i32 0
  %1026 = extractvalue { ptr, ptr } %1024, 0
  store ptr %1026, ptr %1025, align 8
  %1027 = getelementptr inbounds { ptr, ptr }, ptr %178, i32 0, i32 1
  %1028 = extractvalue { ptr, ptr } %1024, 1
  store ptr %1028, ptr %1027, align 8
  %1029 = call noundef i32 @_ZNK5Drawi6pluginIN2aa8poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %178, i32 noundef 150) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %179) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %178) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %180) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %181) #8
  %1030 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %131) #8
  %1031 = getelementptr inbounds %"struct.aa::const_poly_ptr", ptr %181, i32 0, i32 0
  %1032 = getelementptr inbounds { ptr, ptr }, ptr %1031, i32 0, i32 0
  %1033 = extractvalue { ptr, ptr } %1030, 0
  store ptr %1033, ptr %1032, align 8
  %1034 = getelementptr inbounds { ptr, ptr }, ptr %1031, i32 0, i32 1
  %1035 = extractvalue { ptr, ptr } %1030, 1
  store ptr %1035, ptr %1034, align 8
  %1036 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %181) #8
  %1037 = getelementptr inbounds { ptr, ptr }, ptr %180, i32 0, i32 0
  %1038 = extractvalue { ptr, ptr } %1036, 0
  store ptr %1038, ptr %1037, align 8
  %1039 = getelementptr inbounds { ptr, ptr }, ptr %180, i32 0, i32 1
  %1040 = extractvalue { ptr, ptr } %1036, 1
  store ptr %1040, ptr %1039, align 8
  %1041 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %180, i32 noundef 150) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %181) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %180) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %182) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %183) #8
  %1042 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %133) #8
  %1043 = getelementptr inbounds %"struct.aa::const_poly_ptr", ptr %183, i32 0, i32 0
  %1044 = getelementptr inbounds { ptr, ptr }, ptr %1043, i32 0, i32 0
  %1045 = extractvalue { ptr, ptr } %1042, 0
  store ptr %1045, ptr %1044, align 8
  %1046 = getelementptr inbounds { ptr, ptr }, ptr %1043, i32 0, i32 1
  %1047 = extractvalue { ptr, ptr } %1042, 1
  store ptr %1047, ptr %1046, align 8
  %1048 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %183) #8
  %1049 = getelementptr inbounds { ptr, ptr }, ptr %182, i32 0, i32 0
  %1050 = extractvalue { ptr, ptr } %1048, 0
  store ptr %1050, ptr %1049, align 8
  %1051 = getelementptr inbounds { ptr, ptr }, ptr %182, i32 0, i32 1
  %1052 = extractvalue { ptr, ptr } %1048, 1
  store ptr %1052, ptr %1051, align 8
  %1053 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %182, i32 noundef 150) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %183) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %182) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %184, ptr align 8 %128, i64 16, i1 false)
  %1054 = getelementptr inbounds { ptr, ptr }, ptr %184, i32 0, i32 0
  %1055 = load ptr, ptr %1054, align 8
  %1056 = getelementptr inbounds { ptr, ptr }, ptr %184, i32 0, i32 1
  %1057 = load ptr, ptr %1056, align 8
  %1058 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %1055, ptr %1057) #8
  %1059 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1058, i32 noundef 150)
          to label %1060 unwind label %1130

1060:                                             ; preds = %1008
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %185, ptr align 8 %129, i64 16, i1 false)
  %1061 = getelementptr inbounds { ptr, ptr }, ptr %185, i32 0, i32 0
  %1062 = load ptr, ptr %1061, align 8
  %1063 = getelementptr inbounds { ptr, ptr }, ptr %185, i32 0, i32 1
  %1064 = load ptr, ptr %1063, align 8
  %1065 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPKS1_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %1062, ptr %1064) #8
  %1066 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1065, i32 noundef 150)
          to label %1067 unwind label %1130

1067:                                             ; preds = %1060
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %186, ptr align 8 %132, i64 16, i1 false)
  %1068 = getelementptr inbounds { ptr, ptr }, ptr %186, i32 0, i32 0
  %1069 = load ptr, ptr %1068, align 8
  %1070 = getelementptr inbounds { ptr, ptr }, ptr %186, i32 0, i32 1
  %1071 = load ptr, ptr %1070, align 8
  %1072 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPKS1_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %1069, ptr %1071) #8
  %1073 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1072, i32 noundef 150)
          to label %1074 unwind label %1130

1074:                                             ; preds = %1067
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %187, ptr align 8 %130, i64 16, i1 false)
  %1075 = getelementptr inbounds { ptr, ptr }, ptr %187, i32 0, i32 0
  %1076 = load ptr, ptr %1075, align 8
  %1077 = getelementptr inbounds { ptr, ptr }, ptr %187, i32 0, i32 1
  %1078 = load ptr, ptr %1077, align 8
  %1079 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE, ptr %1076, ptr %1078)
          to label %1080 unwind label %1130

1080:                                             ; preds = %1074
  %1081 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1079, i32 noundef 150)
          to label %1082 unwind label %1130

1082:                                             ; preds = %1080
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %188, ptr align 8 %131, i64 16, i1 false)
  %1083 = getelementptr inbounds { ptr, ptr }, ptr %188, i32 0, i32 0
  %1084 = load ptr, ptr %1083, align 8
  %1085 = getelementptr inbounds { ptr, ptr }, ptr %188, i32 0, i32 1
  %1086 = load ptr, ptr %1085, align 8
  %1087 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE, ptr %1084, ptr %1086)
          to label %1088 unwind label %1130

1088:                                             ; preds = %1082
  %1089 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1087, i32 noundef 150)
          to label %1090 unwind label %1130

1090:                                             ; preds = %1088
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %189, ptr align 8 %133, i64 16, i1 false)
  %1091 = getelementptr inbounds { ptr, ptr }, ptr %189, i32 0, i32 0
  %1092 = load ptr, ptr %1091, align 8
  %1093 = getelementptr inbounds { ptr, ptr }, ptr %189, i32 0, i32 1
  %1094 = load ptr, ptr %1093, align 8
  %1095 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable1NS_18anyany_poly_traitsEEE, ptr %1092, ptr %1094)
          to label %1096 unwind label %1130

1096:                                             ; preds = %1090
  %1097 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1095, i32 noundef 150)
          to label %1098 unwind label %1130

1098:                                             ; preds = %1096
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %190, ptr align 8 %130, i64 16, i1 false)
  %1099 = getelementptr inbounds { ptr, ptr }, ptr %190, i32 0, i32 0
  %1100 = load ptr, ptr %1099, align 8
  %1101 = getelementptr inbounds { ptr, ptr }, ptr %190, i32 0, i32 1
  %1102 = load ptr, ptr %1101, align 8
  %1103 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable0NS_18anyany_poly_traitsEEE, ptr %1100, ptr %1102)
          to label %1104 unwind label %1130

1104:                                             ; preds = %1098
  %1105 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1103, i32 noundef 150)
          to label %1106 unwind label %1130

1106:                                             ; preds = %1104
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %191, ptr align 8 %131, i64 16, i1 false)
  %1107 = getelementptr inbounds { ptr, ptr }, ptr %191, i32 0, i32 0
  %1108 = load ptr, ptr %1107, align 8
  %1109 = getelementptr inbounds { ptr, ptr }, ptr %191, i32 0, i32 1
  %1110 = load ptr, ptr %1109, align 8
  %1111 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable0NS_18anyany_poly_traitsEEE, ptr %1108, ptr %1110)
          to label %1112 unwind label %1130

1112:                                             ; preds = %1106
  %1113 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1111, i32 noundef 150)
          to label %1114 unwind label %1130

1114:                                             ; preds = %1112
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %192, ptr align 8 %133, i64 16, i1 false)
  %1115 = getelementptr inbounds { ptr, ptr }, ptr %192, i32 0, i32 0
  %1116 = load ptr, ptr %1115, align 8
  %1117 = getelementptr inbounds { ptr, ptr }, ptr %192, i32 0, i32 1
  %1118 = load ptr, ptr %1117, align 8
  %1119 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable1NS_18anyany_poly_traitsEEE, ptr %1116, ptr %1118)
          to label %1120 unwind label %1130

1120:                                             ; preds = %1114
  %1121 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %1119, i32 noundef 150)
          to label %1122 unwind label %1130

1122:                                             ; preds = %1120
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %193, ptr align 8 %128, i64 16, i1 false)
  %1123 = getelementptr inbounds { ptr, ptr }, ptr %193, i32 0, i32 0
  %1124 = load ptr, ptr %1123, align 8
  %1125 = getelementptr inbounds { ptr, ptr }, ptr %193, i32 0, i32 1
  %1126 = load ptr, ptr %1125, align 8
  %1127 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %1124, ptr %1126) #8
  %1128 = icmp ne ptr %1127, null
  br i1 %1128, label %1129, label %1146

1129:                                             ; preds = %1122
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1162

1130:                                             ; preds = %1157, %1120, %1114, %1112, %1106, %1104, %1098, %1096, %1090, %1088, %1082, %1080, %1074, %1067, %1060, %1008, %968, %957, %946, %923, %908
  %1131 = landingpad { ptr, i32 }
          cleanup
  %1132 = extractvalue { ptr, i32 } %1131, 0
  store ptr %1132, ptr %4, align 8
  %1133 = extractvalue { ptr, i32 } %1131, 1
  store i32 %1133, ptr %5, align 4
  br label %1319

1134:                                             ; preds = %929
  %1135 = landingpad { ptr, i32 }
          cleanup
  %1136 = extractvalue { ptr, i32 } %1135, 0
  store ptr %1136, ptr %4, align 8
  %1137 = extractvalue { ptr, i32 } %1135, 1
  store i32 %1137, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %170) #8
  br label %1319

1138:                                             ; preds = %974
  %1139 = landingpad { ptr, i32 }
          cleanup
  %1140 = extractvalue { ptr, i32 } %1139, 0
  store ptr %1140, ptr %4, align 8
  %1141 = extractvalue { ptr, i32 } %1139, 1
  store i32 %1141, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %175) #8
  br label %1319

1142:                                             ; preds = %991
  %1143 = landingpad { ptr, i32 }
          cleanup
  %1144 = extractvalue { ptr, i32 } %1143, 0
  store ptr %1144, ptr %4, align 8
  %1145 = extractvalue { ptr, i32 } %1143, 1
  store i32 %1145, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %177) #8
  br label %1319

1146:                                             ; preds = %1122
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %194, ptr align 8 %130, i64 16, i1 false)
  %1147 = getelementptr inbounds { ptr, ptr }, ptr %194, i32 0, i32 0
  %1148 = load ptr, ptr %1147, align 8
  %1149 = getelementptr inbounds { ptr, ptr }, ptr %194, i32 0, i32 1
  %1150 = load ptr, ptr %1149, align 8
  %1151 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable1NS_18anyany_poly_traitsEEE, ptr %1148, ptr %1150)
          to label %1152 unwind label %1153

1152:                                             ; preds = %1146
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1162

1153:                                             ; preds = %1146
  %1154 = landingpad { ptr, i32 }
          catch ptr null
  %1155 = extractvalue { ptr, i32 } %1154, 0
  store ptr %1155, ptr %4, align 8
  %1156 = extractvalue { ptr, i32 } %1154, 1
  store i32 %1156, ptr %5, align 4
  br label %1157

1157:                                             ; preds = %1153
  %1158 = load ptr, ptr %4, align 8
  %1159 = call ptr @__cxa_begin_catch(ptr %1158) #8
  invoke void @__cxa_end_catch()
          to label %1160 unwind label %1130

1160:                                             ; preds = %1157
  br label %1161

1161:                                             ; preds = %1160
  store i32 0, ptr %9, align 4
  br label %1162

1162:                                             ; preds = %1161, %1152, %1129
  call void @llvm.lifetime.end.p0(i64 16, ptr %166) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %163) #8
  br label %1163

1163:                                             ; preds = %1162, %895
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %157) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %156) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %150) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %150) #8
  br label %1164

1164:                                             ; preds = %1163, %822
  call void @llvm.lifetime.end.p0(i64 16, ptr %147) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %146) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %146) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %133) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #8
  br label %1165

1165:                                             ; preds = %1164, %736
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %126) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %125) #8
  %1166 = load i32, ptr %9, align 4
  switch i32 %1166, label %1515 [
    i32 0, label %1167
  ]

1167:                                             ; preds = %1165
  call void @llvm.lifetime.start.p0(i64 40, ptr %195) #8
  call void @_ZN6CircleC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %195) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %196) #8
  %1168 = getelementptr inbounds %struct.Circle, ptr %196, i32 0, i32 0
  store i32 5, ptr %1168, align 8, !tbaa !18
  %1169 = getelementptr inbounds %struct.Circle, ptr %196, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 1, ptr %197) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1169, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %197)
          to label %1170 unwind label %1324

1170:                                             ; preds = %1167
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %198) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES7_INS_6is_anyIS9_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEEPS9_(ptr noundef nonnull align 8 dereferenceable(16) %198, ptr noundef %195) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %199) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEEPKS9_(ptr noundef nonnull align 8 dereferenceable(16) %199, ptr noundef %195) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %200) #8
  call void @_ZN2aa8poly_refIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES7_INS_14is_polymorphicIS9_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEERS9_(ptr noundef nonnull align 8 dereferenceable(16) %200, ptr noundef nonnull align 8 dereferenceable(40) %195) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %201) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %201, ptr noundef nonnull align 8 dereferenceable(40) %195) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %202) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEEPKS9_(ptr noundef nonnull align 8 dereferenceable(16) %202, ptr noundef %196) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %203) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %203, ptr noundef nonnull align 8 dereferenceable(40) %196) #8
  %1171 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %198) #8
  %1172 = getelementptr inbounds { ptr, ptr }, ptr %204, i32 0, i32 0
  %1173 = extractvalue { ptr, ptr } %1171, 0
  store ptr %1173, ptr %1172, align 8
  %1174 = getelementptr inbounds { ptr, ptr }, ptr %204, i32 0, i32 1
  %1175 = extractvalue { ptr, ptr } %1171, 1
  store ptr %1175, ptr %1174, align 8
  %1176 = getelementptr inbounds { ptr, ptr }, ptr %204, i32 0, i32 0
  %1177 = load ptr, ptr %1176, align 8
  %1178 = getelementptr inbounds { ptr, ptr }, ptr %204, i32 0, i32 1
  %1179 = load ptr, ptr %1178, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_8poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %1177, ptr %1179, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1180 unwind label %1328

1180:                                             ; preds = %1170
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %205, ptr align 8 %200, i64 16, i1 false)
  %1181 = getelementptr inbounds { ptr, ptr }, ptr %205, i32 0, i32 0
  %1182 = load ptr, ptr %1181, align 8
  %1183 = getelementptr inbounds { ptr, ptr }, ptr %205, i32 0, i32 1
  %1184 = load ptr, ptr %1183, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_8poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %1182, ptr %1184, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1185 unwind label %1328

1185:                                             ; preds = %1180
  call void @llvm.lifetime.start.p0(i64 16, ptr %207) #8
  %1186 = call { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %200) #8
  %1187 = getelementptr inbounds %"struct.aa::poly_ptr.458", ptr %207, i32 0, i32 0
  %1188 = getelementptr inbounds { ptr, ptr }, ptr %1187, i32 0, i32 0
  %1189 = extractvalue { ptr, ptr } %1186, 0
  store ptr %1189, ptr %1188, align 8
  %1190 = getelementptr inbounds { ptr, ptr }, ptr %1187, i32 0, i32 1
  %1191 = extractvalue { ptr, ptr } %1186, 1
  store ptr %1191, ptr %1190, align 8
  %1192 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %207) #8
  %1193 = getelementptr inbounds { ptr, ptr }, ptr %206, i32 0, i32 0
  %1194 = extractvalue { ptr, ptr } %1192, 0
  store ptr %1194, ptr %1193, align 8
  %1195 = getelementptr inbounds { ptr, ptr }, ptr %206, i32 0, i32 1
  %1196 = extractvalue { ptr, ptr } %1192, 1
  store ptr %1196, ptr %1195, align 8
  %1197 = getelementptr inbounds { ptr, ptr }, ptr %206, i32 0, i32 0
  %1198 = load ptr, ptr %1197, align 8
  %1199 = getelementptr inbounds { ptr, ptr }, ptr %206, i32 0, i32 1
  %1200 = load ptr, ptr %1199, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_8poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %1198, ptr %1200, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1201 unwind label %1332

1201:                                             ; preds = %1185
  call void @llvm.lifetime.end.p0(i64 16, ptr %207) #8
  %1202 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %199) #8
  %1203 = getelementptr inbounds { ptr, ptr }, ptr %208, i32 0, i32 0
  %1204 = extractvalue { ptr, ptr } %1202, 0
  store ptr %1204, ptr %1203, align 8
  %1205 = getelementptr inbounds { ptr, ptr }, ptr %208, i32 0, i32 1
  %1206 = extractvalue { ptr, ptr } %1202, 1
  store ptr %1206, ptr %1205, align 8
  %1207 = getelementptr inbounds { ptr, ptr }, ptr %208, i32 0, i32 0
  %1208 = load ptr, ptr %1207, align 8
  %1209 = getelementptr inbounds { ptr, ptr }, ptr %208, i32 0, i32 1
  %1210 = load ptr, ptr %1209, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %1208, ptr %1210, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1211 unwind label %1328

1211:                                             ; preds = %1201
  %1212 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %202) #8
  %1213 = getelementptr inbounds { ptr, ptr }, ptr %209, i32 0, i32 0
  %1214 = extractvalue { ptr, ptr } %1212, 0
  store ptr %1214, ptr %1213, align 8
  %1215 = getelementptr inbounds { ptr, ptr }, ptr %209, i32 0, i32 1
  %1216 = extractvalue { ptr, ptr } %1212, 1
  store ptr %1216, ptr %1215, align 8
  %1217 = getelementptr inbounds { ptr, ptr }, ptr %209, i32 0, i32 0
  %1218 = load ptr, ptr %1217, align 8
  %1219 = getelementptr inbounds { ptr, ptr }, ptr %209, i32 0, i32 1
  %1220 = load ptr, ptr %1219, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %1218, ptr %1220, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1221 unwind label %1328

1221:                                             ; preds = %1211
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %210, ptr align 8 %201, i64 16, i1 false)
  %1222 = getelementptr inbounds { ptr, ptr }, ptr %210, i32 0, i32 0
  %1223 = load ptr, ptr %1222, align 8
  %1224 = getelementptr inbounds { ptr, ptr }, ptr %210, i32 0, i32 1
  %1225 = load ptr, ptr %1224, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %1223, ptr %1225, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1226 unwind label %1328

1226:                                             ; preds = %1221
  call void @llvm.lifetime.start.p0(i64 16, ptr %212) #8
  %1227 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %201) #8
  %1228 = getelementptr inbounds %"struct.aa::const_poly_ptr.463", ptr %212, i32 0, i32 0
  %1229 = getelementptr inbounds { ptr, ptr }, ptr %1228, i32 0, i32 0
  %1230 = extractvalue { ptr, ptr } %1227, 0
  store ptr %1230, ptr %1229, align 8
  %1231 = getelementptr inbounds { ptr, ptr }, ptr %1228, i32 0, i32 1
  %1232 = extractvalue { ptr, ptr } %1227, 1
  store ptr %1232, ptr %1231, align 8
  %1233 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %212) #8
  %1234 = getelementptr inbounds { ptr, ptr }, ptr %211, i32 0, i32 0
  %1235 = extractvalue { ptr, ptr } %1233, 0
  store ptr %1235, ptr %1234, align 8
  %1236 = getelementptr inbounds { ptr, ptr }, ptr %211, i32 0, i32 1
  %1237 = extractvalue { ptr, ptr } %1233, 1
  store ptr %1237, ptr %1236, align 8
  %1238 = getelementptr inbounds { ptr, ptr }, ptr %211, i32 0, i32 0
  %1239 = load ptr, ptr %1238, align 8
  %1240 = getelementptr inbounds { ptr, ptr }, ptr %211, i32 0, i32 1
  %1241 = load ptr, ptr %1240, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %1239, ptr %1241, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1242 unwind label %1336

1242:                                             ; preds = %1226
  call void @llvm.lifetime.end.p0(i64 16, ptr %212) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %214) #8
  %1243 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %203) #8
  %1244 = getelementptr inbounds %"struct.aa::const_poly_ptr.463", ptr %214, i32 0, i32 0
  %1245 = getelementptr inbounds { ptr, ptr }, ptr %1244, i32 0, i32 0
  %1246 = extractvalue { ptr, ptr } %1243, 0
  store ptr %1246, ptr %1245, align 8
  %1247 = getelementptr inbounds { ptr, ptr }, ptr %1244, i32 0, i32 1
  %1248 = extractvalue { ptr, ptr } %1243, 1
  store ptr %1248, ptr %1247, align 8
  %1249 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %214) #8
  %1250 = getelementptr inbounds { ptr, ptr }, ptr %213, i32 0, i32 0
  %1251 = extractvalue { ptr, ptr } %1249, 0
  store ptr %1251, ptr %1250, align 8
  %1252 = getelementptr inbounds { ptr, ptr }, ptr %213, i32 0, i32 1
  %1253 = extractvalue { ptr, ptr } %1249, 1
  store ptr %1253, ptr %1252, align 8
  %1254 = getelementptr inbounds { ptr, ptr }, ptr %213, i32 0, i32 0
  %1255 = load ptr, ptr %1254, align 8
  %1256 = getelementptr inbounds { ptr, ptr }, ptr %213, i32 0, i32 1
  %1257 = load ptr, ptr %1256, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %1255, ptr %1257, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1258 unwind label %1340

1258:                                             ; preds = %1242
  call void @llvm.lifetime.end.p0(i64 16, ptr %214) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %215, ptr align 8 %198, i64 16, i1 false)
  %1259 = getelementptr inbounds { ptr, ptr }, ptr %215, i32 0, i32 0
  %1260 = load ptr, ptr %1259, align 8
  %1261 = getelementptr inbounds { ptr, ptr }, ptr %215, i32 0, i32 1
  %1262 = load ptr, ptr %1261, align 8
  %1263 = call noundef ptr @_ZNK2aa11any_cast_fnIK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEEPS2_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK6CircleNS_18anyany_poly_traitsEEE, ptr %1260, ptr %1262) #8
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %1263, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1264 unwind label %1328

1264:                                             ; preds = %1258
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %216, ptr align 8 %199, i64 16, i1 false)
  %1265 = getelementptr inbounds { ptr, ptr }, ptr %216, i32 0, i32 0
  %1266 = load ptr, ptr %1265, align 8
  %1267 = getelementptr inbounds { ptr, ptr }, ptr %216, i32 0, i32 1
  %1268 = load ptr, ptr %1267, align 8
  %1269 = call noundef ptr @_ZNK2aa11any_cast_fnI6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEEPKS1_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI6CircleNS_18anyany_poly_traitsEEE, ptr %1266, ptr %1268) #8
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %1269, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1270 unwind label %1328

1270:                                             ; preds = %1264
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %217, ptr align 8 %202, i64 16, i1 false)
  %1271 = getelementptr inbounds { ptr, ptr }, ptr %217, i32 0, i32 0
  %1272 = load ptr, ptr %1271, align 8
  %1273 = getelementptr inbounds { ptr, ptr }, ptr %217, i32 0, i32 1
  %1274 = load ptr, ptr %1273, align 8
  %1275 = call noundef ptr @_ZNK2aa11any_cast_fnIK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEEPS2_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK6CircleNS_18anyany_poly_traitsEEE, ptr %1272, ptr %1274) #8
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %1275, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1276 unwind label %1328

1276:                                             ; preds = %1270
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %218, ptr align 8 %200, i64 16, i1 false)
  %1277 = getelementptr inbounds { ptr, ptr }, ptr %218, i32 0, i32 0
  %1278 = load ptr, ptr %1277, align 8
  %1279 = getelementptr inbounds { ptr, ptr }, ptr %218, i32 0, i32 1
  %1280 = load ptr, ptr %1279, align 8
  %1281 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR6CircleNS_18anyany_poly_traitsEEE, ptr %1278, ptr %1280)
          to label %1282 unwind label %1328

1282:                                             ; preds = %1276
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %1281, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1283 unwind label %1328

1283:                                             ; preds = %1282
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %219, ptr align 8 %200, i64 16, i1 false)
  %1284 = getelementptr inbounds { ptr, ptr }, ptr %219, i32 0, i32 0
  %1285 = load ptr, ptr %1284, align 8
  %1286 = getelementptr inbounds { ptr, ptr }, ptr %219, i32 0, i32 1
  %1287 = load ptr, ptr %1286, align 8
  %1288 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIRK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK6CircleNS_18anyany_poly_traitsEEE, ptr %1285, ptr %1287)
          to label %1289 unwind label %1328

1289:                                             ; preds = %1283
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %1288, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1290 unwind label %1328

1290:                                             ; preds = %1289
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %220, ptr align 8 %201, i64 16, i1 false)
  %1291 = getelementptr inbounds { ptr, ptr }, ptr %220, i32 0, i32 0
  %1292 = load ptr, ptr %1291, align 8
  %1293 = getelementptr inbounds { ptr, ptr }, ptr %220, i32 0, i32 1
  %1294 = load ptr, ptr %1293, align 8
  %1295 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR6CircleNS_18anyany_poly_traitsEEE, ptr %1292, ptr %1294)
          to label %1296 unwind label %1328

1296:                                             ; preds = %1290
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %1295, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1297 unwind label %1328

1297:                                             ; preds = %1296
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %221, ptr align 8 %203, i64 16, i1 false)
  %1298 = getelementptr inbounds { ptr, ptr }, ptr %221, i32 0, i32 0
  %1299 = load ptr, ptr %1298, align 8
  %1300 = getelementptr inbounds { ptr, ptr }, ptr %221, i32 0, i32 1
  %1301 = load ptr, ptr %1300, align 8
  %1302 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIRK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK6CircleNS_18anyany_poly_traitsEEE, ptr %1299, ptr %1301)
          to label %1303 unwind label %1328

1303:                                             ; preds = %1297
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %1302, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1304 unwind label %1328

1304:                                             ; preds = %1303
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %222, ptr align 8 %203, i64 16, i1 false)
  %1305 = getelementptr inbounds { ptr, ptr }, ptr %222, i32 0, i32 0
  %1306 = load ptr, ptr %1305, align 8
  %1307 = getelementptr inbounds { ptr, ptr }, ptr %222, i32 0, i32 1
  %1308 = load ptr, ptr %1307, align 8
  %1309 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR6CircleNS_18anyany_poly_traitsEEE, ptr %1306, ptr %1308)
          to label %1310 unwind label %1328

1310:                                             ; preds = %1304
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %1309, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %1311 unwind label %1328

1311:                                             ; preds = %1310
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %223, ptr align 8 %198, i64 16, i1 false)
  %1312 = getelementptr inbounds { ptr, ptr }, ptr %223, i32 0, i32 0
  %1313 = load ptr, ptr %1312, align 8
  %1314 = getelementptr inbounds { ptr, ptr }, ptr %223, i32 0, i32 1
  %1315 = load ptr, ptr %1314, align 8
  %1316 = call noundef ptr @_ZNK2aa11any_cast_fnI8TriangleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI8TriangleNS_18anyany_poly_traitsEEE, ptr %1313, ptr %1315) #8
  %1317 = icmp ne ptr %1316, null
  br i1 %1317, label %1318, label %1344

1318:                                             ; preds = %1311
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1360

1319:                                             ; preds = %1142, %1138, %1134, %1130
  call void @llvm.lifetime.end.p0(i64 16, ptr %166) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %164) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %163) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %160) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %159) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %158) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %157) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %156) #8
  br label %1320

1320:                                             ; preds = %1319, %904, %900
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %150) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %150) #8
  br label %1321

1321:                                             ; preds = %1320, %896
  call void @llvm.lifetime.end.p0(i64 16, ptr %147) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %146) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %146) #8
  br label %1322

1322:                                             ; preds = %1321, %823
  call void @llvm.lifetime.end.p0(i64 16, ptr %133) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %132) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %131) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %130) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %129) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %128) #8
  br label %1323

1323:                                             ; preds = %1322, %761
  call void @llvm.lifetime.end.p0(i64 32, ptr %127) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %126) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %125) #8
  br label %1516

1324:                                             ; preds = %1167
  %1325 = landingpad { ptr, i32 }
          cleanup
  %1326 = extractvalue { ptr, i32 } %1325, 0
  store ptr %1326, ptr %4, align 8
  %1327 = extractvalue { ptr, i32 } %1325, 1
  store i32 %1327, ptr %5, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %197) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %197) #8
  br label %1379

1328:                                             ; preds = %1355, %1310, %1304, %1303, %1297, %1296, %1290, %1289, %1283, %1282, %1276, %1270, %1264, %1258, %1221, %1211, %1201, %1180, %1170
  %1329 = landingpad { ptr, i32 }
          cleanup
  %1330 = extractvalue { ptr, i32 } %1329, 0
  store ptr %1330, ptr %4, align 8
  %1331 = extractvalue { ptr, i32 } %1329, 1
  store i32 %1331, ptr %5, align 4
  br label %1378

1332:                                             ; preds = %1185
  %1333 = landingpad { ptr, i32 }
          cleanup
  %1334 = extractvalue { ptr, i32 } %1333, 0
  store ptr %1334, ptr %4, align 8
  %1335 = extractvalue { ptr, i32 } %1333, 1
  store i32 %1335, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %207) #8
  br label %1378

1336:                                             ; preds = %1226
  %1337 = landingpad { ptr, i32 }
          cleanup
  %1338 = extractvalue { ptr, i32 } %1337, 0
  store ptr %1338, ptr %4, align 8
  %1339 = extractvalue { ptr, i32 } %1337, 1
  store i32 %1339, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %212) #8
  br label %1378

1340:                                             ; preds = %1242
  %1341 = landingpad { ptr, i32 }
          cleanup
  %1342 = extractvalue { ptr, i32 } %1341, 0
  store ptr %1342, ptr %4, align 8
  %1343 = extractvalue { ptr, i32 } %1341, 1
  store i32 %1343, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %214) #8
  br label %1378

1344:                                             ; preds = %1311
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %224, ptr align 8 %203, i64 16, i1 false)
  %1345 = getelementptr inbounds { ptr, ptr }, ptr %224, i32 0, i32 0
  %1346 = load ptr, ptr %1345, align 8
  %1347 = getelementptr inbounds { ptr, ptr }, ptr %224, i32 0, i32 1
  %1348 = load ptr, ptr %1347, align 8
  %1349 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR8TriangleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR8TriangleNS_18anyany_poly_traitsEEE, ptr %1346, ptr %1348)
          to label %1350 unwind label %1351

1350:                                             ; preds = %1344
  store i32 -1, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1360

1351:                                             ; preds = %1344
  %1352 = landingpad { ptr, i32 }
          catch ptr null
  %1353 = extractvalue { ptr, i32 } %1352, 0
  store ptr %1353, ptr %4, align 8
  %1354 = extractvalue { ptr, i32 } %1352, 1
  store i32 %1354, ptr %5, align 4
  br label %1355

1355:                                             ; preds = %1351
  %1356 = load ptr, ptr %4, align 8
  %1357 = call ptr @__cxa_begin_catch(ptr %1356) #8
  invoke void @__cxa_end_catch()
          to label %1358 unwind label %1328

1358:                                             ; preds = %1355
  br label %1359

1359:                                             ; preds = %1358
  store i32 0, ptr %9, align 4
  br label %1360

1360:                                             ; preds = %1359, %1350, %1318
  call void @llvm.lifetime.end.p0(i64 16, ptr %203) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %202) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %201) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %200) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %199) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %198) #8
  call void @_ZN6CircleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %196) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %196) #8
  call void @_ZN6CircleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %195) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %195) #8
  %1361 = load i32, ptr %9, align 4
  switch i32 %1361, label %1515 [
    i32 0, label %1362
  ]

1362:                                             ; preds = %1360
  call void @llvm.lifetime.start.p0(i64 1, ptr %225) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %226) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_6is_anyISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPSD_(ptr noundef nonnull align 8 dereferenceable(16) %227, ptr noundef %225) #8
  %1363 = getelementptr inbounds { ptr, ptr }, ptr %227, i32 0, i32 0
  %1364 = load ptr, ptr %1363, align 8
  %1365 = getelementptr inbounds { ptr, ptr }, ptr %227, i32 0, i32 1
  %1366 = load ptr, ptr %1365, align 8
  invoke void @_Z6FoobarN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEE(ptr %1364, ptr %1366)
          to label %1367 unwind label %1380

1367:                                             ; preds = %1362
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPKSD_(ptr noundef nonnull align 8 dereferenceable(16) %228, ptr noundef %226) #8
  %1368 = getelementptr inbounds { ptr, ptr }, ptr %228, i32 0, i32 0
  %1369 = load ptr, ptr %1368, align 8
  %1370 = getelementptr inbounds { ptr, ptr }, ptr %228, i32 0, i32 1
  %1371 = load ptr, ptr %1370, align 8
  invoke void @_Z6FoobarN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEE(ptr %1369, ptr %1371)
          to label %1372 unwind label %1380

1372:                                             ; preds = %1367
  call void @llvm.lifetime.start.p0(i64 32, ptr %229) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #8
  store i32 5, ptr %230, align 4, !tbaa !5
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S5_S6_EEEEEiE4typeELi0EEEOSC_(ptr noundef nonnull align 16 dereferenceable(32) %229, ptr noundef nonnull align 4 dereferenceable(4) %230) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #8
  %1373 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef 32)
          to label %1374 unwind label %1384

1374:                                             ; preds = %1372
  call void @llvm.lifetime.start.p0(i64 32, ptr %231) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #8
  store i32 5, ptr %232, align 4, !tbaa !5
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S5_S6_EEEEEiE4typeELi0EEEOSC_(ptr noundef nonnull align 16 dereferenceable(32) %231, ptr noundef nonnull align 4 dereferenceable(4) %232) #8
  %1375 = invoke noundef zeroext i1 @_ZNK2aa8equal_to6pluginINS_9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS4_Lm40EEES0_EEEEneERKS9_(ptr noundef nonnull align 1 dereferenceable(1) %229, ptr noundef nonnull align 1 dereferenceable(1) %231)
          to label %1376 unwind label %1388

1376:                                             ; preds = %1374
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEED2Ev(ptr noundef nonnull align 16 dereferenceable(32) %231) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #8
  br i1 %1375, label %1377, label %1392

1377:                                             ; preds = %1376
  store i32 -100, ptr %1, align 4
  store i32 1, ptr %9, align 4
  br label %1512

1378:                                             ; preds = %1340, %1336, %1332, %1328
  call void @llvm.lifetime.end.p0(i64 16, ptr %203) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %202) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %201) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %200) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %199) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %198) #8
  call void @_ZN6CircleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %196) #8
  br label %1379

1379:                                             ; preds = %1378, %1324
  call void @llvm.lifetime.end.p0(i64 40, ptr %196) #8
  call void @_ZN6CircleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %195) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %195) #8
  br label %1516

1380:                                             ; preds = %1367, %1362
  %1381 = landingpad { ptr, i32 }
          cleanup
  %1382 = extractvalue { ptr, i32 } %1381, 0
  store ptr %1382, ptr %4, align 8
  %1383 = extractvalue { ptr, i32 } %1381, 1
  store i32 %1383, ptr %5, align 4
  br label %1514

1384:                                             ; preds = %1372
  %1385 = landingpad { ptr, i32 }
          cleanup
  %1386 = extractvalue { ptr, i32 } %1385, 0
  store ptr %1386, ptr %4, align 8
  %1387 = extractvalue { ptr, i32 } %1385, 1
  store i32 %1387, ptr %5, align 4
  br label %1513

1388:                                             ; preds = %1374
  %1389 = landingpad { ptr, i32 }
          cleanup
  %1390 = extractvalue { ptr, i32 } %1389, 0
  store ptr %1390, ptr %4, align 8
  %1391 = extractvalue { ptr, i32 } %1389, 1
  store i32 %1391, ptr %5, align 4
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEED2Ev(ptr noundef nonnull align 16 dereferenceable(32) %231) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %231) #8
  br label %1513

1392:                                             ; preds = %1376
  call void @llvm.lifetime.start.p0(i64 32, ptr %233) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %234) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %233, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %234)
          to label %1393 unwind label %1468

1393:                                             ; preds = %1392
  %1394 = invoke noundef nonnull align 16 dereferenceable(32) ptr @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEaSINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISI_JS3_S5_S6_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISI_E4typeEOSI_E16any_is_small_forISQ_EEiE4typeELi0EEERS7_SR_(ptr noundef nonnull align 16 dereferenceable(32) %229, ptr noundef nonnull align 8 dereferenceable(32) %233)
          to label %1395 unwind label %1472

1395:                                             ; preds = %1393
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %234) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %233) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #8
  store float 0.000000e+00, ptr %235, align 4, !tbaa !22
  %1396 = invoke noundef nonnull align 16 dereferenceable(32) ptr @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEaSIfS7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S5_S6_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISC_E4typeEOSC_E16any_is_small_forISK_EEiE4typeELi0EEERS7_SL_(ptr noundef nonnull align 16 dereferenceable(32) %229, ptr noundef nonnull align 4 dereferenceable(4) %235)
          to label %1397 unwind label %1477

1397:                                             ; preds = %1395
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %236) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %238) #8
  store i32 1, ptr %238, align 4, !tbaa !5
  %1398 = getelementptr inbounds i32, ptr %238, i64 1
  store i32 2, ptr %1398, align 4, !tbaa !5
  %1399 = getelementptr inbounds i32, ptr %238, i64 2
  store i32 3, ptr %1399, align 4, !tbaa !5
  %1400 = getelementptr inbounds i32, ptr %238, i64 3
  store i32 4, ptr %1400, align 4, !tbaa !5
  %1401 = getelementptr inbounds %"class.std::initializer_list", ptr %237, i32 0, i32 0
  store ptr %238, ptr %1401, align 8, !tbaa !24
  %1402 = getelementptr inbounds %"class.std::initializer_list", ptr %237, i32 0, i32 1
  store i64 4, ptr %1402, align 8, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 1, ptr %239) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #8
  %1403 = getelementptr inbounds { ptr, i64 }, ptr %237, i32 0, i32 0
  %1404 = load ptr, ptr %1403, align 8
  %1405 = getelementptr inbounds { ptr, i64 }, ptr %237, i32 0, i32 1
  %1406 = load i64, ptr %1405, align 8
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %236, ptr %1404, i64 %1406, ptr noundef nonnull align 1 dereferenceable(1) %239)
          to label %1407 unwind label %1481

1407:                                             ; preds = %1397
  %1408 = invoke noundef nonnull align 16 dereferenceable(32) ptr @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEaSISt6vectorIiSaIiEES7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISF_JS3_S5_S6_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISF_E4typeEOSF_E16any_is_small_forISN_EEiE4typeELi0EEERS7_SO_(ptr noundef nonnull align 16 dereferenceable(32) %229, ptr noundef nonnull align 8 dereferenceable(24) %236)
          to label %1409 unwind label %1485

1409:                                             ; preds = %1407
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %236) #8
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %238) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %236) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr %240) #8
  call void @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %240) #8
  call void @llvm.lifetime.start.p0(i64 64, ptr %241) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %242) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %243) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %242, ptr noundef @.str, ptr noundef nonnull align 1 dereferenceable(1) %243)
          to label %1410 unwind label %1490

1410:                                             ; preds = %1409
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_4hashENS_8equal_toENS_9copy_withIS2_Lm40EEEEEC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISJ_JS3_S4_S5_S7_EEEEEiE4typeELi0EEEOSJ_(ptr noundef nonnull align 16 dereferenceable(64) %241, ptr noundef nonnull align 8 dereferenceable(32) %242) #8
  %1411 = invoke { ptr, i8 } @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EE6insertEOS9_(ptr noundef nonnull align 8 dereferenceable(56) %240, ptr noundef nonnull align 16 dereferenceable(64) %241)
          to label %1412 unwind label %1494

1412:                                             ; preds = %1410
  %1413 = getelementptr inbounds { ptr, i8 }, ptr %244, i32 0, i32 0
  %1414 = extractvalue { ptr, i8 } %1411, 0
  store ptr %1414, ptr %1413, align 8
  %1415 = getelementptr inbounds { ptr, i8 }, ptr %244, i32 0, i32 1
  %1416 = extractvalue { ptr, i8 } %1411, 1
  store i8 %1416, ptr %1415, align 8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_4hashENS_8equal_toENS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %241) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %241) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #8
  store i32 5, ptr %245, align 4, !tbaa !5
  %1417 = invoke { ptr, i8 } @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EE7emplaceIJiEEESt4pairINSt8__detail14_Node_iteratorIS9_Lb1ELb0EEEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %240, ptr noundef nonnull align 4 dereferenceable(4) %245)
          to label %1418 unwind label %1499

1418:                                             ; preds = %1412
  %1419 = getelementptr inbounds { ptr, i8 }, ptr %246, i32 0, i32 0
  %1420 = extractvalue { ptr, i8 } %1417, 0
  store ptr %1420, ptr %1419, align 8
  %1421 = getelementptr inbounds { ptr, i8 }, ptr %246, i32 0, i32 1
  %1422 = extractvalue { ptr, i8 } %1417, 1
  store i8 %1422, ptr %1421, align 8
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %247) #8
  store double 5.000000e+00, ptr %247, align 8, !tbaa !27
  %1423 = invoke { ptr, i8 } @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EE7emplaceIJdEEESt4pairINSt8__detail14_Node_iteratorIS9_Lb1ELb0EEEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %240, ptr noundef nonnull align 8 dereferenceable(8) %247)
          to label %1424 unwind label %1503

1424:                                             ; preds = %1418
  %1425 = getelementptr inbounds { ptr, i8 }, ptr %248, i32 0, i32 0
  %1426 = extractvalue { ptr, i8 } %1423, 0
  store ptr %1426, ptr %1425, align 8
  %1427 = getelementptr inbounds { ptr, i8 }, ptr %248, i32 0, i32 1
  %1428 = extractvalue { ptr, i8 } %1423, 1
  store i8 %1428, ptr %1427, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %247) #8
  %1429 = call i64 @time(ptr noundef null) #8
  %1430 = trunc i64 %1429 to i32
  call void @srand(i32 noundef %1430) #8
  %1431 = invoke noundef i64 @_Z16TESTconstructorsm(i64 noundef 0)
          to label %1432 unwind label %1507

1432:                                             ; preds = %1424
  %1433 = invoke noundef i64 @_Z12TESTany_castm(i64 noundef 0)
          to label %1434 unwind label %1507

1434:                                             ; preds = %1432
  %1435 = add i64 %1431, %1433
  %1436 = invoke noundef i64 @_Z13TESTany_cast2m(i64 noundef 0)
          to label %1437 unwind label %1507

1437:                                             ; preds = %1434
  %1438 = add i64 %1435, %1436
  %1439 = invoke noundef i64 @_Z10TESTinvokem(i64 noundef 0)
          to label %1440 unwind label %1507

1440:                                             ; preds = %1437
  %1441 = add i64 %1438, %1439
  %1442 = call noundef i64 @_Z11TESTcomparev()
  %1443 = add i64 %1441, %1442
  %1444 = call noundef i64 @_Z43TESTtype_descriptor_and_plugins_interactionm(i64 noundef 0)
  %1445 = add i64 %1443, %1444
  %1446 = invoke noundef i64 @_Z28TESTspecial_member_functionsm(i64 noundef 0)
          to label %1447 unwind label %1507

1447:                                             ; preds = %1440
  %1448 = add i64 %1445, %1446
  %1449 = invoke noundef i64 @_Z16TESTptr_behaviorm(i64 noundef 0)
          to label %1450 unwind label %1507

1450:                                             ; preds = %1447
  %1451 = add i64 %1448, %1449
  %1452 = invoke noundef i64 @_Z21TESTtransmutate_ctorsm(i64 noundef 0)
          to label %1453 unwind label %1507

1453:                                             ; preds = %1450
  %1454 = add i64 %1451, %1452
  %1455 = invoke noundef i64 @_Z12TESTstatefulm(i64 noundef 0)
          to label %1456 unwind label %1507

1456:                                             ; preds = %1453
  %1457 = add i64 %1454, %1455
  %1458 = invoke noundef i64 @_Z16TESTsubtable_ptrm(i64 noundef 0)
          to label %1459 unwind label %1507

1459:                                             ; preds = %1456
  %1460 = add i64 %1457, %1458
  %1461 = invoke noundef i64 @_Z15TESTmaterializem(i64 noundef 0)
          to label %1462 unwind label %1507

1462:                                             ; preds = %1459
  %1463 = add i64 %1460, %1461
  %1464 = invoke noundef i64 @_Z22TESTruntime_reflectionm(i64 noundef 0)
          to label %1465 unwind label %1507

1465:                                             ; preds = %1462
  %1466 = add i64 %1463, %1464
  %1467 = trunc i64 %1466 to i32
  store i32 %1467, ptr %1, align 4
  store i32 1, ptr %9, align 4
  call void @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %240) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %240) #8
  br label %1512

1468:                                             ; preds = %1392
  %1469 = landingpad { ptr, i32 }
          cleanup
  %1470 = extractvalue { ptr, i32 } %1469, 0
  store ptr %1470, ptr %4, align 8
  %1471 = extractvalue { ptr, i32 } %1469, 1
  store i32 %1471, ptr %5, align 4
  br label %1476

1472:                                             ; preds = %1393
  %1473 = landingpad { ptr, i32 }
          cleanup
  %1474 = extractvalue { ptr, i32 } %1473, 0
  store ptr %1474, ptr %4, align 8
  %1475 = extractvalue { ptr, i32 } %1473, 1
  store i32 %1475, ptr %5, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %233) #8
  br label %1476

1476:                                             ; preds = %1472, %1468
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %234) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %234) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %233) #8
  br label %1513

1477:                                             ; preds = %1395
  %1478 = landingpad { ptr, i32 }
          cleanup
  %1479 = extractvalue { ptr, i32 } %1478, 0
  store ptr %1479, ptr %4, align 8
  %1480 = extractvalue { ptr, i32 } %1478, 1
  store i32 %1480, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #8
  br label %1513

1481:                                             ; preds = %1397
  %1482 = landingpad { ptr, i32 }
          cleanup
  %1483 = extractvalue { ptr, i32 } %1482, 0
  store ptr %1483, ptr %4, align 8
  %1484 = extractvalue { ptr, i32 } %1482, 1
  store i32 %1484, ptr %5, align 4
  br label %1489

1485:                                             ; preds = %1407
  %1486 = landingpad { ptr, i32 }
          cleanup
  %1487 = extractvalue { ptr, i32 } %1486, 0
  store ptr %1487, ptr %4, align 8
  %1488 = extractvalue { ptr, i32 } %1486, 1
  store i32 %1488, ptr %5, align 4
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %236) #8
  br label %1489

1489:                                             ; preds = %1485, %1481
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %239) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %239) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %238) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %236) #8
  br label %1513

1490:                                             ; preds = %1409
  %1491 = landingpad { ptr, i32 }
          cleanup
  %1492 = extractvalue { ptr, i32 } %1491, 0
  store ptr %1492, ptr %4, align 8
  %1493 = extractvalue { ptr, i32 } %1491, 1
  store i32 %1493, ptr %5, align 4
  br label %1498

1494:                                             ; preds = %1410
  %1495 = landingpad { ptr, i32 }
          cleanup
  %1496 = extractvalue { ptr, i32 } %1495, 0
  store ptr %1496, ptr %4, align 8
  %1497 = extractvalue { ptr, i32 } %1495, 1
  store i32 %1497, ptr %5, align 4
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_4hashENS_8equal_toENS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %241) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %242) #8
  br label %1498

1498:                                             ; preds = %1494, %1490
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %243) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %243) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %242) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %241) #8
  br label %1511

1499:                                             ; preds = %1412
  %1500 = landingpad { ptr, i32 }
          cleanup
  %1501 = extractvalue { ptr, i32 } %1500, 0
  store ptr %1501, ptr %4, align 8
  %1502 = extractvalue { ptr, i32 } %1500, 1
  store i32 %1502, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #8
  br label %1511

1503:                                             ; preds = %1418
  %1504 = landingpad { ptr, i32 }
          cleanup
  %1505 = extractvalue { ptr, i32 } %1504, 0
  store ptr %1505, ptr %4, align 8
  %1506 = extractvalue { ptr, i32 } %1504, 1
  store i32 %1506, ptr %5, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %247) #8
  br label %1511

1507:                                             ; preds = %1462, %1459, %1456, %1453, %1450, %1447, %1440, %1437, %1434, %1432, %1424
  %1508 = landingpad { ptr, i32 }
          cleanup
  %1509 = extractvalue { ptr, i32 } %1508, 0
  store ptr %1509, ptr %4, align 8
  %1510 = extractvalue { ptr, i32 } %1508, 1
  store i32 %1510, ptr %5, align 4
  br label %1511

1511:                                             ; preds = %1507, %1503, %1499, %1498
  call void @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %240) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %240) #8
  br label %1513

1512:                                             ; preds = %1465, %1377
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEED2Ev(ptr noundef nonnull align 16 dereferenceable(32) %229) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %226) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %225) #8
  br label %1515

1513:                                             ; preds = %1511, %1489, %1477, %1476, %1388, %1384
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEED2Ev(ptr noundef nonnull align 16 dereferenceable(32) %229) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %229) #8
  br label %1514

1514:                                             ; preds = %1513, %1380
  call void @llvm.lifetime.end.p0(i64 1, ptr %226) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %225) #8
  br label %1516

1515:                                             ; preds = %1512, %1360, %1165
  call void @llvm.lifetime.end.p0(i64 16, ptr %119) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #8
  call void @_ZNSt6vectorIN2aa8poly_refIJ4fooxEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %82) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %82) #8
  br label %1523

1516:                                             ; preds = %1514, %1379, %1323, %757
  call void @llvm.lifetime.end.p0(i64 16, ptr %119) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %117) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %115) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %113) #8
  br label %1517

1517:                                             ; preds = %1516, %753
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %105) #8
  br label %1518

1518:                                             ; preds = %1517, %749
  call void @llvm.lifetime.end.p0(i64 16, ptr %101) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %99) #8
  br label %1519

1519:                                             ; preds = %1518, %745
  call void @llvm.lifetime.end.p0(i64 16, ptr %96) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %94) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %92) #8
  br label %1520

1520:                                             ; preds = %1519, %741
  call void @llvm.lifetime.end.p0(i64 16, ptr %90) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %89) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %1521

1521:                                             ; preds = %1520, %737
  call void @llvm.lifetime.end.p0(i64 1, ptr %86) #8
  call void @_ZNSt6vectorIN2aa8poly_refIJ4fooxEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %85) #8
  br label %1522

1522:                                             ; preds = %1521, %566
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %82) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %82) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %54) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %49) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %49) #8
  call void @_ZNSt13unordered_setIN2aa12descriptor_tESt4hashIS1_ESt8equal_toIS1_ESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %43) #8
  br label %1526

1523:                                             ; preds = %1515, %549, %508
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %66) #8
  br label %1524

1524:                                             ; preds = %1523, %473
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %1525

1525:                                             ; preds = %1524, %429
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %54) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %52) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %49) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %49) #8
  call void @_ZNSt13unordered_setIN2aa12descriptor_tESt4hashIS1_ESt8equal_toIS1_ESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %43) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr %43) #8
  br label %1527

1526:                                             ; preds = %1522, %430
  call void @llvm.lifetime.end.p0(i64 56, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #8
  br label %1528

1527:                                             ; preds = %1525, %381
  call void @llvm.lifetime.end.p0(i64 16, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %34) #8
  call void @"_ZZ4mainEN3$_2D2Ev"(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %26) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %26) #8
  br label %1530

1528:                                             ; preds = %1526, %398, %386
  call void @"_ZZ4mainEN3$_2D2Ev"(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  br label %1529

1529:                                             ; preds = %1528, %382
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %26) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %26) #8
  br label %1531

1530:                                             ; preds = %1527, %354, %332
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %10) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %10) #8
  br label %1533

1531:                                             ; preds = %1529, %363, %349, %337
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %10) #8
  br label %1532

1532:                                             ; preds = %1531, %333
  call void @llvm.lifetime.end.p0(i64 64, ptr %10) #8
  br label %1535

1533:                                             ; preds = %1530, %271
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %6) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %6) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %2) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %2) #8
  %1534 = load i32, ptr %1, align 4
  ret i32 %1534

1535:                                             ; preds = %1532, %280
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %6) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %6) #8
  br label %1536

1536:                                             ; preds = %1535, %276, %272
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %2) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %2) #8
  br label %1537

1537:                                             ; preds = %1536
  %1538 = load ptr, ptr %4, align 8
  %1539 = load i32, ptr %5, align 4
  %1540 = insertvalue { ptr, i32 } poison, ptr %1538, 0
  %1541 = insertvalue { ptr, i32 } %1540, i32 %1539, 1
  resume { ptr, i32 } %1541

1542:                                             ; preds = %564
  unreachable
}

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EEC2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 16 dereferenceable(64) ptr @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EEaSIiS7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S4_S6_S4_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISC_E4typeEOSC_E16any_is_small_forISK_EEiE4typeELi0EEERS7_SL_(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI5printNS_9type_listIJEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES2_NS_9copy_withIS9_Lm40EEES2_EEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSG_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(64)) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEEC2I1xTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S4_S5_EEEEEiE4typeELi0EEEOSC_(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyE5KekabEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEEC2IZ4mainE3$_0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISL_JS3_S5_S6_SD_SE_EEEEEiE4typeELi0EEEOSL_"(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef nonnull align 16 dereferenceable(64) ptr @"_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEEaSIZ4mainE3$_1SF_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISL_JS3_S5_S6_SD_SE_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISL_E4typeEOSL_E16any_is_small_forIST_EEiE4typeELi0EEERSF_SU_"(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(1)) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI5visitIiENS_9type_listIJRKiEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES3_S2_IfES2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES2_IdEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSQ_S6_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) #0 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_8poly_ptrIJDpT_EEES6_(ptr, ptr, ptr, ptr) #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISB_JS3_S4_S5_EEEEEiE4typeELi0EEENS_23force_stable_pointers_tEOSB_(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEE18is_stable_pointersEv(ptr noundef nonnull align 16 dereferenceable(64)) #3 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_8poly_ptrIJDpT_EEES6_(ptr, ptr, ptr, ptr) #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_14const_poly_ptrIJDpT_EEES6_(ptr, ptr, ptr, ptr) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_14const_poly_ptrIJDpT_EEES6_(ptr, ptr, ptr, ptr) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr, ptr, ptr, ptr) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTeqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr, ptr, ptr, ptr) #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) #3 align 2

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_throw(ptr, ptr, ptr)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI5printNS_9type_listIJEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoES2_EEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSF_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(64)) #0 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, i32 noundef) #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_refIJ2M12M2NS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M2NS_4moveEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_refIJ2M2NS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_refIJ2M12M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2EEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M12M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_refIJ2M2NS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEEvNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, i32 noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_NS_9copy_withISaISt4byteELm40EEENS_4moveEEEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_9copy_withISaISt4byteELm40EEEEEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJ2M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN2aa8noexport3getILm0ENS_12descriptor_tEEERT0_RNS0_14value_in_tupleIS3_XT_EEE(ptr noundef nonnull align 8 dereferenceable(8)) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN2aa8noexport3getILm2ENS_12descriptor_tEEERT0_RNS0_14value_in_tupleIS3_XT_EEE(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_8poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIRK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIRK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) #0 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 16 dereferenceable(32) ptr @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEaSIfS7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S5_S6_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISC_E4typeEOSC_E16any_is_small_forISK_EEiE4typeELi0EEERS7_SL_(ptr noundef nonnull align 16 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) #0 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_4hashENS_8equal_toENS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

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

; Function Attrs: nounwind
declare void @srand(i32 noundef) #7

; Function Attrs: nounwind
declare i64 @time(ptr noundef) #7

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @"_ZZ4mainEN3$_2D2Ev"(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"_ZTS1x", !6, i64 0}
!11 = !{i64 0, i64 8, !12}
!12 = !{!13, !13, i64 0}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!15, !13, i64 0}
!15 = !{!"_ZTSSt16initializer_listIN2aa12descriptor_tEE", !13, i64 0, !16, i64 8}
!16 = !{!"long", !7, i64 0}
!17 = !{!15, !16, i64 8}
!18 = !{!19, !6, i64 0}
!19 = !{!"_ZTS6Circle", !6, i64 0, !20, i64 8}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !16, i64 8, !7, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !13, i64 0}
!22 = !{!23, !23, i64 0}
!23 = !{!"float", !7, i64 0}
!24 = !{!25, !13, i64 0}
!25 = !{!"_ZTSSt16initializer_listIiE", !13, i64 0, !16, i64 8}
!26 = !{!25, !16, i64 8}
!27 = !{!28, !28, i64 0}
!28 = !{!"double", !7, i64 0}


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

%"struct.aa::any_cast_fn.132" = type { i8 }
%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"struct.aa::noexport::invoke_fn.139" = type { i8 }
%"struct.aa::descriptor_t" = type { ptr }
%"struct.aa::noexport::invoke_fn.313" = type { i8 }
%"struct.aa::any_cast_fn.319" = type { i8 }
%"struct.aa::noexport::invoke_fn.356" = type { i8 }
%"struct.aa::noexport::invoke_fn.357" = type { i8 }
%"struct.aa::any_cast_fn.391" = type { i8 }
%struct.FooAble = type { i8 }
%"struct.aa::noexport::invoke_fn.408" = type { i8 }
%"struct.aa::noexport::invoke_fn.413" = type { i8 }
%"struct.aa::any_cast_fn.434" = type { i8 }
%"struct.aa::any_cast_fn.435" = type { i8 }
%"struct.aa::any_cast_fn.436" = type { i8 }
%"struct.aa::any_cast_fn.437" = type { i8 }
%"struct.aa::any_cast_fn.438" = type { i8 }
%"struct.aa::any_cast_fn.439" = type { i8 }
%"struct.aa::any_cast_fn.440" = type { i8 }
%"struct.aa::any_cast_fn.441" = type { i8 }
%"struct.aa::noexport::invoke_fn.467" = type { i8 }
%"struct.aa::any_cast_fn.468" = type { i8 }
%"struct.aa::any_cast_fn.469" = type { i8 }
%"struct.aa::any_cast_fn.470" = type { i8 }
%"struct.aa::any_cast_fn.471" = type { i8 }
%"struct.aa::any_cast_fn.472" = type { i8 }
%"struct.aa::any_cast_fn.473" = type { i8 }
%"struct.aa::basic_any.309" = type { ptr, ptr, %union.anon.312 }
%union.anon.312 = type { i64, [40 x i8] }
%"struct.aa::basic_any.314" = type { ptr, ptr, %union.anon.318 }
%union.anon.318 = type { i64, [40 x i8] }
%struct.x = type { i32 }
%"struct.aa::basic_any.327" = type { ptr, ptr, %union.anon.330 }
%union.anon.330 = type { i64, [40 x i8] }
%struct.kekabl1 = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.130 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.130 = type { i64, [8 x i8] }
%"class.std::allocator.127" = type { i8 }
%"struct.aa::stateful::ref.331" = type { ptr, %"struct.aa::vtable.334" }
%"struct.aa::vtable.334" = type { %"struct.aa::noexport::tuple.335" }
%"struct.aa::noexport::tuple.335" = type { %"struct.aa::noexport::tuple_base.336" }
%"struct.aa::noexport::tuple_base.336" = type { %"struct.aa::noexport::value_in_tuple.337", %"struct.aa::noexport::value_in_tuple.216" }
%"struct.aa::noexport::value_in_tuple.337" = type { ptr }
%"struct.aa::noexport::value_in_tuple.216" = type { ptr }
%"struct.aa::poly_ptr.342" = type { %"struct.aa::poly_ref.338" }
%"struct.aa::poly_ref.338" = type { %"struct.aa::noexport::vtable_view.341", ptr }
%"struct.aa::noexport::vtable_view.341" = type { ptr }
%"struct.aa::stateful::cref.343" = type { ptr, %"struct.aa::vtable.334" }
%"struct.aa::stateful::cref.346" = type { ptr }
%"struct.aa::basic_any.347" = type { ptr, ptr, %union.anon.348 }
%union.anon.348 = type { i64, [40 x i8] }
%class.anon.349 = type { i8 }
%class.anon.351 = type { i8 }
%class.anon.355 = type { %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.20" }
%"struct.std::_Head_base.20" = type { ptr }
%"struct.std::atomic.358" = type { %"struct.aa::poly_ptr.359" }
%"struct.aa::poly_ptr.359" = type { %"struct.aa::poly_ref.360" }
%"struct.aa::poly_ref.360" = type { %"struct.aa::noexport::vtable_view.361", ptr }
%"struct.aa::noexport::vtable_view.361" = type { ptr }
%"struct.std::atomic.362" = type { %"struct.aa::const_poly_ptr.363" }
%"struct.aa::const_poly_ptr.363" = type { %"struct.aa::const_poly_ref.364" }
%"struct.aa::const_poly_ref.364" = type { %"struct.aa::noexport::vtable_view.361", ptr }
%struct.sm = type { i32 }
%"struct.aa::poly_ptr.365" = type { %"struct.aa::poly_ref.366" }
%"struct.aa::poly_ref.366" = type { %"struct.aa::noexport::vtable_view.369", ptr }
%"struct.aa::noexport::vtable_view.369" = type { %"struct.aa::vtable.370" }
%"struct.aa::vtable.370" = type { %"struct.aa::noexport::tuple.371" }
%"struct.aa::noexport::tuple.371" = type { %"struct.aa::noexport::tuple_base.372" }
%"struct.aa::noexport::tuple_base.372" = type { %"struct.aa::noexport::value_in_tuple.190" }
%"struct.aa::noexport::value_in_tuple.190" = type { %"struct.aa::descriptor_t" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"struct.std::hash" = type { i8 }
%"struct.std::equal_to" = type { i8 }
%"class.std::allocator.379" = type { i8 }
%"struct.aa::basic_any.152" = type { ptr, ptr, %union.anon.155 }
%union.anon.155 = type { i64, [40 x i8] }
%"struct.aa::poly_ptr.156" = type { %"struct.aa::poly_ref.157" }
%"struct.aa::poly_ref.157" = type { %"struct.aa::noexport::vtable_view.160", ptr }
%"struct.aa::noexport::vtable_view.160" = type { ptr }
%struct.deriv = type { %struct.base, i32 }
%struct.base = type { i32 }
%"struct.aa::const_poly_ptr.382" = type { %"struct.aa::const_poly_ref.383" }
%"struct.aa::const_poly_ref.383" = type { %"struct.aa::noexport::vtable_view.369", ptr }
%"struct.aa::basic_any.386" = type { ptr, ptr, %union.anon.390 }
%union.anon.390 = type { i64, [40 x i8] }
%"class.std::vector.398" = type { %"struct.std::_Vector_base.399" }
%"struct.std::_Vector_base.399" = type { %"struct.std::_Vector_base<aa::poly_ref<foox>, std::allocator<aa::poly_ref<foox>>>::_Vector_impl" }
%"struct.std::_Vector_base<aa::poly_ref<foox>, std::allocator<aa::poly_ref<foox>>>::_Vector_impl" = type { %"struct.std::_Vector_base<aa::poly_ref<foox>, std::allocator<aa::poly_ref<foox>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<aa::poly_ref<foox>, std::allocator<aa::poly_ref<foox>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.A1 = type { i32 }
%struct.A2 = type { double }
%"struct.aa::poly_ref.404" = type { %"struct.aa::noexport::vtable_view.405", ptr }
%"struct.aa::noexport::vtable_view.405" = type { ptr }
%"struct.aa::const_poly_ref.406" = type { %"struct.aa::noexport::vtable_view.407", ptr }
%"struct.aa::noexport::vtable_view.407" = type { ptr }
%"struct.aa::const_poly_ref.409" = type { %"struct.aa::noexport::vtable_view.410", ptr }
%"struct.aa::noexport::vtable_view.410" = type { ptr }
%"struct.aa::const_poly_ptr.411" = type { %"struct.aa::const_poly_ref.409" }
%"struct.aa::const_poly_ref.414" = type { %"struct.aa::noexport::vtable_view.415", ptr }
%"struct.aa::noexport::vtable_view.415" = type { %"struct.aa::vtable.416" }
%"struct.aa::vtable.416" = type { %"struct.aa::noexport::tuple.417" }
%"struct.aa::noexport::tuple.417" = type { %"struct.aa::noexport::tuple_base.418" }
%"struct.aa::noexport::tuple_base.418" = type { %"struct.aa::noexport::value_in_tuple.419" }
%"struct.aa::noexport::value_in_tuple.419" = type { ptr }
%"struct.aa::const_poly_ptr.420" = type { %"struct.aa::const_poly_ref.414" }
%"struct.aa::const_poly_ref.421" = type { %"struct.aa::noexport::vtable_view.422", ptr }
%"struct.aa::noexport::vtable_view.422" = type { ptr }
%"struct.aa::const_poly_ptr.423" = type { %"struct.aa::const_poly_ref.421" }
%"struct.aa::poly_ref.425" = type { %"struct.aa::noexport::vtable_view.426", ptr }
%"struct.aa::noexport::vtable_view.426" = type { ptr }
%"struct.aa::poly_ref.427" = type { %"struct.aa::noexport::vtable_view.415", ptr }
%"struct.aa::poly_ptr.428" = type { %"struct.aa::poly_ref.427" }
%struct.drawable0 = type { i8 }
%struct.drawable1 = type { i8 }
%"struct.aa::vtable.430" = type { %"struct.aa::noexport::tuple.431" }
%"struct.aa::noexport::tuple.431" = type { %"struct.aa::noexport::tuple_base.432" }
%"struct.aa::noexport::tuple_base.432" = type { %"struct.aa::noexport::value_in_tuple.190", %"struct.aa::noexport::value_in_tuple.191", %"struct.aa::noexport::value_in_tuple.433" }
%"struct.aa::noexport::value_in_tuple.191" = type { %"struct.aa::copy_with<>::value_type" }
%"struct.aa::copy_with<>::value_type" = type { ptr, ptr }
%"struct.aa::noexport::value_in_tuple.433" = type { %"struct.aa::descriptor_t" }
%"struct.aa::poly_ptr" = type { %"struct.aa::poly_ref" }
%"struct.aa::poly_ref" = type { %"struct.aa::noexport::vtable_view", ptr }
%"struct.aa::noexport::vtable_view" = type { ptr }
%"struct.aa::const_poly_ptr" = type { %"struct.aa::const_poly_ref" }
%"struct.aa::const_poly_ref" = type { %"struct.aa::noexport::vtable_view", ptr }
%"struct.aa::basic_any.442" = type { ptr, ptr, %union.anon.446 }
%union.anon.446 = type { i64, [40 x i8] }
%"struct.aa::poly_ptr.447" = type { %"struct.aa::poly_ref.448" }
%"struct.aa::poly_ref.448" = type { %"struct.aa::noexport::vtable_view.452", ptr }
%"struct.aa::noexport::vtable_view.452" = type { ptr }
%"struct.aa::const_poly_ptr.457" = type { %"struct.aa::const_poly_ref.453" }
%"struct.aa::const_poly_ref.453" = type { %"struct.aa::noexport::vtable_view.452", ptr }
%struct.Circle = type { i32, %"class.std::__cxx11::basic_string" }
%"struct.aa::poly_ptr.458" = type { %"struct.aa::poly_ref.459" }
%"struct.aa::poly_ref.459" = type { %"struct.aa::noexport::vtable_view.462", ptr }
%"struct.aa::noexport::vtable_view.462" = type { ptr }
%"struct.aa::const_poly_ptr.463" = type { %"struct.aa::const_poly_ref.464" }
%"struct.aa::const_poly_ref.464" = type { %"struct.aa::noexport::vtable_view.462", ptr }
%"struct.aa::basic_any.474" = type { ptr, ptr, %union.anon.478 }
%union.anon.478 = type { i64, [8 x i8] }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::unordered_set.479" = type { %"class.std::_Hashtable.480" }
%"class.std::_Hashtable.480" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.aa::basic_any.498" = type { ptr, ptr, %union.anon.502 }
%union.anon.502 = type { i64, [40 x i8] }

@.str = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN2aa8any_castIiNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.132", align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@_ZN2aa6invokeI5DrawiEE = external dso_local constant %"struct.aa::noexport::invoke_fn.139", align 1
@_ZN2aa12descriptor_vIvEE = external dso_local local_unnamed_addr constant %"struct.aa::descriptor_t", align 8
@_ZN2aa12descriptor_vIiEE = external dso_local constant %"struct.aa::descriptor_t", align 8
@.str.5 = external hidden unnamed_addr constant [15 x i8], align 1
@_ZN2aa6invokeI5printEE = external dso_local constant %"struct.aa::noexport::invoke_fn.313", align 1
@_ZN2aa8any_castI1xNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.319", align 1
@.str.6 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZN2aa6invokeI5visitIiEEE = external dso_local constant %"struct.aa::noexport::invoke_fn.356", align 1
@_ZN2aa6invokeI5visitINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE = external dso_local constant %"struct.aa::noexport::invoke_fn.357", align 1
@.str.8 = external hidden unnamed_addr constant [16 x i8], align 1
@_ZN2aa8any_castIPKcNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.391", align 1
@_ZTIi = external constant ptr
@__const.main.fef = external hidden unnamed_addr constant %struct.FooAble, align 1
@_ZN2aa6invokeI2M1EE = external dso_local constant %"struct.aa::noexport::invoke_fn.408", align 1
@_ZN2aa6invokeI2M2EE = external dso_local constant %"struct.aa::noexport::invoke_fn.413", align 1
@_ZN2aa8any_castIK9drawable1NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.434", align 1
@_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.435", align 1
@_ZN2aa8any_castIRK9drawable1NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.436", align 1
@_ZN2aa8any_castIR9drawable1NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.437", align 1
@_ZN2aa8any_castIK9drawable0NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.438", align 1
@_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.439", align 1
@_ZN2aa8any_castIRK9drawable0NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.440", align 1
@_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.441", align 1
@_ZN2aa6invokeI4DrawEE = external dso_local constant %"struct.aa::noexport::invoke_fn.467", align 1
@_ZN2aa8any_castIK6CircleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.468", align 1
@_ZN2aa8any_castI6CircleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.469", align 1
@_ZN2aa8any_castIR6CircleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.470", align 1
@_ZN2aa8any_castIRK6CircleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.471", align 1
@_ZN2aa8any_castI8TriangleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.472", align 1
@_ZN2aa8any_castIR8TriangleNS_18anyany_poly_traitsEEE = external dso_local constant %"struct.aa::any_cast_fn.473", align 1

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z16TESTconstructorsm(i64 noundef) local_unnamed_addr #0

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z28TESTspecial_member_functionsm(i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15noallocate_testv() local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_Z11TESTcomparev() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z12TESTany_castm(i64 noundef) local_unnamed_addr #0

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z10TESTinvokem(i64 noundef) local_unnamed_addr #0

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z13TESTany_cast2m(i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6FoobarN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEE(ptr, ptr) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z6FoobarN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEE(ptr, ptr) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z21TESTtransmutate_ctorsm(i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEC2EOS6_(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z12TESTstatefulm(i64 noundef) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z16TESTptr_behaviorm(i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z13any_cast_testv() local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_Z43TESTtype_descriptor_and_plugins_interactionm(i64 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z20anyany_concepts_testv() local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z16TESTsubtable_ptrm(i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z15TESTmaterializem(i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z9meta_testv() local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z22TESTruntime_reflectionm(i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress norecurse uwtable
define dso_local noundef i32 @main() local_unnamed_addr #6 personality ptr @__gxx_personality_v0 {
  %1 = alloca %"struct.aa::basic_any.309", align 16
  %2 = alloca i32, align 4
  %3 = alloca %"struct.aa::basic_any.314", align 16
  %4 = alloca %struct.x, align 4
  %5 = alloca %"struct.aa::basic_any.327", align 16
  %6 = alloca %struct.kekabl1, align 8
  %7 = alloca %"class.std::allocator.127", align 1
  %8 = alloca %"struct.aa::stateful::ref.331", align 8
  %9 = alloca %"struct.aa::poly_ptr.342", align 8
  %10 = alloca %"struct.aa::stateful::cref.343", align 8
  %11 = alloca %"struct.aa::poly_ptr.342", align 8
  %12 = alloca %"struct.aa::stateful::cref.343", align 8
  %13 = alloca %"struct.aa::stateful::cref.346", align 8
  %14 = alloca %"struct.aa::poly_ref.338", align 8
  %15 = alloca %"struct.aa::poly_ptr.342", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"struct.aa::basic_any.347", align 16
  %20 = alloca %class.anon.349, align 1
  %21 = alloca %class.anon.351, align 1
  %22 = alloca %class.anon.355, align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator.127", align 1
  %26 = alloca %"struct.std::atomic.358", align 16
  %27 = alloca %"struct.std::atomic.362", align 16
  %28 = alloca %"struct.aa::poly_ref.360", align 8
  %29 = alloca %"struct.aa::poly_ref.360", align 8
  %30 = alloca %struct.sm, align 4
  %31 = alloca %"struct.aa::poly_ptr.365", align 8
  %32 = alloca %"struct.aa::poly_ptr.365", align 8
  %33 = alloca %"class.std::unordered_set", align 8
  %34 = alloca [2 x %"struct.aa::descriptor_t"], align 8
  %35 = alloca %"struct.std::hash", align 1
  %36 = alloca %"struct.std::equal_to", align 1
  %37 = alloca %"class.std::allocator.379", align 1
  %38 = alloca %"struct.aa::basic_any.152", align 16
  %39 = alloca i32, align 4
  %40 = alloca %"struct.aa::poly_ptr.156", align 8
  %41 = alloca %"struct.aa::basic_any.152", align 16
  %42 = alloca %"struct.aa::poly_ptr.156", align 8
  %43 = alloca %struct.deriv, align 4
  %44 = alloca %"struct.aa::poly_ptr.365", align 8
  %45 = alloca %"struct.aa::poly_ptr.365", align 8
  %46 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %47 = alloca %"struct.aa::const_poly_ptr.382", align 8
  %48 = alloca %"struct.aa::basic_any.386", align 16
  %49 = alloca %"class.std::vector.398", align 8
  %50 = alloca %struct.FooAble, align 1
  %51 = alloca %struct.A1, align 4
  %52 = alloca %struct.A2, align 8
  %53 = alloca %"struct.aa::poly_ref.404", align 8
  %54 = alloca %"struct.aa::const_poly_ref.406", align 8
  %55 = alloca %"struct.aa::const_poly_ref.409", align 8
  %56 = alloca %"struct.aa::const_poly_ptr.411", align 8
  %57 = alloca %"struct.aa::const_poly_ref.414", align 8
  %58 = alloca %"struct.aa::const_poly_ptr.420", align 8
  %59 = alloca %"struct.aa::const_poly_ref.421", align 8
  %60 = alloca %"struct.aa::const_poly_ptr.423", align 8
  %61 = alloca %"struct.aa::poly_ref.425", align 8
  %62 = alloca %"struct.aa::poly_ref.427", align 8
  %63 = alloca %"struct.aa::poly_ptr.428", align 8
  %64 = alloca %struct.drawable0, align 1
  %65 = alloca %struct.drawable1, align 1
  %66 = alloca %"struct.aa::vtable.430", align 8
  %67 = alloca %"struct.aa::poly_ptr", align 8
  %68 = alloca %"struct.aa::const_poly_ptr", align 8
  %69 = alloca %"struct.aa::poly_ref", align 8
  %70 = alloca %"struct.aa::const_poly_ref", align 8
  %71 = alloca %"struct.aa::const_poly_ptr", align 8
  %72 = alloca %"struct.aa::const_poly_ref", align 8
  %73 = alloca %"struct.aa::basic_any.442", align 16
  %74 = alloca %"struct.aa::poly_ptr.447", align 8
  %75 = alloca %"struct.aa::basic_any.442", align 16
  %76 = alloca %struct.drawable1, align 1
  %77 = alloca %"struct.aa::const_poly_ptr.457", align 8
  %78 = alloca %"struct.aa::poly_ref", align 8
  %79 = alloca %"struct.aa::const_poly_ref", align 8
  %80 = alloca %"struct.aa::poly_ptr", align 8
  %81 = alloca %"struct.aa::const_poly_ptr", align 8
  %82 = alloca %"struct.aa::const_poly_ptr", align 8
  %83 = alloca %"struct.aa::poly_ptr", align 8
  %84 = alloca %"struct.aa::const_poly_ptr", align 8
  %85 = alloca %"struct.aa::const_poly_ptr", align 8
  %86 = alloca %"struct.aa::poly_ref", align 8
  %87 = alloca %"struct.aa::poly_ptr", align 8
  %88 = alloca %"struct.aa::const_poly_ref", align 8
  %89 = alloca %"struct.aa::const_poly_ptr", align 8
  %90 = alloca %"struct.aa::const_poly_ref", align 8
  %91 = alloca %"struct.aa::const_poly_ptr", align 8
  %92 = alloca %struct.Circle, align 8
  %93 = alloca %struct.Circle, align 8
  %94 = alloca %"class.std::allocator.127", align 1
  %95 = alloca %"struct.aa::poly_ptr.458", align 8
  %96 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %97 = alloca %"struct.aa::poly_ref.459", align 8
  %98 = alloca %"struct.aa::const_poly_ref.464", align 8
  %99 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %100 = alloca %"struct.aa::const_poly_ref.464", align 8
  %101 = alloca %"struct.aa::poly_ptr.458", align 8
  %102 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %103 = alloca %"struct.aa::const_poly_ptr.463", align 8
  %104 = alloca %struct.drawable0, align 1
  %105 = alloca %struct.drawable1, align 1
  %106 = alloca %"struct.aa::poly_ptr", align 8
  %107 = alloca %"struct.aa::const_poly_ptr", align 8
  %108 = alloca %"struct.aa::basic_any.474", align 16
  %109 = alloca i32, align 4
  %110 = alloca %"struct.aa::basic_any.474", align 16
  %111 = alloca i32, align 4
  %112 = alloca %"class.std::__cxx11::basic_string", align 8
  %113 = alloca %"class.std::allocator.127", align 1
  %114 = alloca float, align 4
  %115 = alloca %"class.std::vector", align 8
  %116 = alloca [4 x i32], align 16
  %117 = alloca %"class.std::allocator", align 1
  %118 = alloca %"class.std::unordered_set.479", align 8
  %119 = alloca %"struct.aa::basic_any.498", align 16
  %120 = alloca %"class.std::__cxx11::basic_string", align 8
  %121 = alloca %"class.std::allocator.127", align 1
  %122 = alloca i32, align 4
  %123 = alloca double, align 8
  %124 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @.str.5)
  %125 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %124, i64 noundef 201703)
  %126 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  tail call void @_Z20anyany_concepts_testv()
  tail call void @_Z13any_cast_testv()
  tail call void @_Z15noallocate_testv()
  tail call void @_Z9meta_testv()
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %1) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EEC2Ev(ptr noundef nonnull align 16 dereferenceable(64) %1) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #8
  store i32 5, ptr %2, align 4, !tbaa !5
  %127 = invoke noundef nonnull align 16 dereferenceable(64) ptr @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EEaSIiS7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S4_S6_S4_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISC_E4typeEOSC_E16any_is_small_forISK_EEiE4typeELi0EEERS7_SL_(ptr noundef nonnull align 16 dereferenceable(64) %1, ptr noundef nonnull align 4 dereferenceable(4) %2)
          to label %128 unwind label %136

128:                                              ; preds = %0
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  invoke void @_ZNK2aa8noexport9invoke_fnI5printNS_9type_listIJEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES2_NS_9copy_withIS9_Lm40EEES2_EEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSG_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5printEE, ptr noundef nonnull align 16 dereferenceable(64) %1)
          to label %129 unwind label %138

129:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %3) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #8
  store i32 0, ptr %4, align 4, !tbaa !9
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEEC2I1xTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S4_S5_EEEEEiE4typeELi0EEEOSC_(ptr noundef nonnull align 16 dereferenceable(64) %3, ptr noundef nonnull align 4 dereferenceable(4) %4) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #8
  invoke void @_ZNK8change_i11make_pluginIN2aa9basic_anyISaISt4byteELm40EJNS1_7destroyES_NS1_9type_infoEEEEFvRKiES_E8change_iEv(ptr noundef nonnull align 1 dereferenceable(1) %3)
          to label %130 unwind label %140

130:                                              ; preds = %129
  %131 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %3) #8
  %132 = extractvalue { ptr, ptr } %131, 0
  %133 = extractvalue { ptr, ptr } %131, 1
  %134 = call noundef ptr @_ZNK2aa11any_cast_fnI1xNS_18anyany_poly_traitsEEclIJNS_7destroyE8change_iNS_9type_infoEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI1xNS_18anyany_poly_traitsEEE, ptr %132, ptr %133) #8
  %135 = load i32, ptr %134, align 4, !tbaa !9
  %.not = icmp eq i32 %135, 0
  br i1 %.not, label %142, label %726

136:                                              ; preds = %0
  %137 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #8
  br label %728

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

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

142:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %143 unwind label %170

143:                                              ; preds = %142
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEC2I7kekabl1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISB_JS3_S4_EEEEEiE4typeELi0EEEOSB_(ptr noundef nonnull align 16 dereferenceable(64) %5, ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @_ZN7kekabl1D2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #8
  %144 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %5) #8
  %145 = extractvalue { ptr, ptr } %144, 0
  store ptr %145, ptr %9, align 8
  %146 = getelementptr inbounds i8, ptr %9, i64 8
  %147 = extractvalue { ptr, ptr } %144, 1
  store ptr %147, ptr %146, align 8
  %148 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyE5KekabEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %9) #8
  %149 = extractvalue { ptr, ptr } %148, 0
  %150 = extractvalue { ptr, ptr } %148, 1
  call void @_ZN2aa8stateful3refIJNS_7destroyE5KekabEEC2ENS_8poly_refIJS2_S3_EEE(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr %149, ptr %150) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #8
  %151 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %5) #8
  %152 = extractvalue { ptr, ptr } %151, 0
  store ptr %152, ptr %11, align 8
  %153 = getelementptr inbounds i8, ptr %11, i64 8
  %154 = extractvalue { ptr, ptr } %151, 1
  store ptr %154, ptr %153, align 8
  %155 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyE5KekabEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %11) #8
  %156 = extractvalue { ptr, ptr } %155, 0
  %157 = extractvalue { ptr, ptr } %155, 1
  call void @_ZN2aa8stateful4crefIJNS_7destroyE5KekabEEC2ENS_8poly_refIJS2_S3_EEE(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr %156, ptr %157) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #8
  call void @_ZN2aa8stateful4crefIJNS_7destroyE5KekabEEC2ERKNS0_3refIJS2_S3_EEE(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #8
  %158 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %5) #8
  %159 = extractvalue { ptr, ptr } %158, 0
  store ptr %159, ptr %15, align 8
  %160 = getelementptr inbounds i8, ptr %15, i64 8
  %161 = extractvalue { ptr, ptr } %158, 1
  store ptr %161, ptr %160, align 8
  %162 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyE5KekabEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  %163 = extractvalue { ptr, ptr } %162, 0
  store ptr %163, ptr %14, align 8
  %164 = getelementptr inbounds i8, ptr %14, i64 8
  %165 = extractvalue { ptr, ptr } %162, 1
  store ptr %165, ptr %164, align 8
  invoke void @_ZN2aa8stateful4crefIJEEC2INS_8poly_refIJNS_7destroyE5KekabEEETnNSt9enable_ifIXsr14is_polymorphicIT_EE5valueEiE4typeELi0ETnPvLPv0EEERKS9_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(16) %14)
          to label %166 unwind label %172

166:                                              ; preds = %143
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #8
  invoke void @_ZNK5Kekab11make_pluginIN2aa8stateful3refIJNS1_7destroyES_EEEFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiicES_E5KekabEic(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 1 dereferenceable(1) %8, i32 noundef 5, i8 noundef signext 99)
          to label %167 unwind label %174

167:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  invoke void @_ZNK5Kekab11make_pluginIN2aa9basic_anyISaISt4byteELm40EJNS1_7destroyES_EEEFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiicES_E5KekabEic(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 1 dereferenceable(1) %5, i32 noundef 5, i8 noundef signext 99)
          to label %168 unwind label %176

168:                                              ; preds = %167
  %169 = call noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br i1 %169, label %723, label %179

170:                                              ; preds = %142
  %171 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #8
  br label %725

172:                                              ; preds = %143
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  br label %724

174:                                              ; preds = %166
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %178

176:                                              ; preds = %167
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #8
  br label %178

178:                                              ; preds = %176, %174
  %.pn = phi { ptr, i32 } [ %177, %176 ], [ %175, %174 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #8
  br label %724

179:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #8
  invoke void @_ZNK5Kekab11make_pluginIN2aa9basic_anyISaISt4byteELm40EJNS1_7destroyES_EEEFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiicES_E5KekabEic(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 1 dereferenceable(1) %5, i32 noundef 5, i8 noundef signext 99)
          to label %180 unwind label %183

180:                                              ; preds = %179
  %181 = invoke noundef zeroext i1 @_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.7)
          to label %182 unwind label %185

182:                                              ; preds = %180
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  br i1 %181, label %723, label %188

183:                                              ; preds = %179
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %187

185:                                              ; preds = %180
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  br label %187

187:                                              ; preds = %185, %183
  %.pn275 = phi { ptr, i32 } [ %186, %185 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #8
  br label %724

188:                                              ; preds = %182
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %19) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #8
  call void @"_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEEC2IZ4mainE3$_0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISL_JS3_S5_S6_SD_SE_EEEEEiE4typeELi0EEEOSL_"(ptr noundef nonnull align 16 dereferenceable(64) %19, ptr noundef nonnull align 1 dereferenceable(1) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #8
  %189 = invoke noundef nonnull align 16 dereferenceable(64) ptr @"_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEEaSIZ4mainE3$_1SF_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISL_JS3_S5_S6_SD_SE_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISL_E4typeEOSL_E16any_is_small_forIST_EEiE4typeELi0EEERSF_SU_"(ptr noundef nonnull align 16 dereferenceable(64) %19, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %190 unwind label %195

190:                                              ; preds = %188
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  call void @_ZNSt10unique_ptrIiSt14default_deleteIiEEC2IS1_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #8
  store i32 5, ptr %23, align 4, !tbaa !5
  invoke void @_ZNK2aa8noexport9invoke_fnI5visitIiENS_9type_listIJRKiEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES3_S2_IfES2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES2_IdEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSQ_S6_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5visitIiEEE, ptr noundef nonnull align 16 dereferenceable(64) %19, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %191 unwind label %197

191:                                              ; preds = %190
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %192 unwind label %199

192:                                              ; preds = %191
  invoke void @_ZNK2aa8noexport9invoke_fnI5visitINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENS_9type_listIJRKS8_EEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES2_IiES2_IfES9_S2_IdEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSQ_SC_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5visitINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEE, ptr noundef nonnull align 16 dereferenceable(64) %19, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %193 unwind label %201

193:                                              ; preds = %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #8
  call void @_ZNSt6atomicIN2aa8poly_ptrIJEEEEC2Ev(ptr noundef nonnull align 16 dereferenceable(16) %26) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #8
  call void @_ZNSt6atomicIN2aa14const_poly_ptrIJEEEEC2Ev(ptr noundef nonnull align 16 dereferenceable(16) %27) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %28) #8
  call void @_ZN2aa8poly_refIJEEC2ISt6atomicINS_8poly_ptrIJEEEETnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES8_INS_14is_polymorphicISA_EEENS_9exist_forISA_JEEEEEiE4typeELi0EEERSA_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 16 dereferenceable(16) %26) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %29) #8
  call void @_ZN2aa8poly_refIJEEC2ISt6atomicINS_8poly_ptrIJEEEETnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES8_INS_14is_polymorphicISA_EEENS_9exist_forISA_JEEEEEiE4typeELi0EEERSA_(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull align 16 dereferenceable(16) %26) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %29, i64 16, i1 false)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %29) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %31) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoEEEC2I2smTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES6_INS_6is_anyIS8_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPS8_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES5_INS_6is_anyIS7_EEENS_9exist_forIS7_JS1_EEEEEiE4typeELi0EEEPS7_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull %30) #8
  %.sroa.0211.0.copyload = load ptr, ptr %31, align 8
  %.sroa.2212.0..sroa_idx = getelementptr inbounds i8, ptr %31, i64 8
  %.sroa.2212.0.copyload = load ptr, ptr %.sroa.2212.0..sroa_idx, align 8
  %.sroa.0209.0.copyload = load ptr, ptr %32, align 8
  %.sroa.2210.0..sroa_idx = getelementptr inbounds i8, ptr %32, i64 8
  %.sroa.2210.0.copyload = load ptr, ptr %.sroa.2210.0..sroa_idx, align 8
  %194 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_8poly_ptrIJDpT_EEES6_(ptr %.sroa.0211.0.copyload, ptr %.sroa.2212.0.copyload, ptr %.sroa.0209.0.copyload, ptr %.sroa.2210.0.copyload) #8
  br i1 %194, label %720, label %204

195:                                              ; preds = %188
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  br label %722

197:                                              ; preds = %190
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #8
  br label %721

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

201:                                              ; preds = %192
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %203

203:                                              ; preds = %201, %199
  %.pn277 = phi { ptr, i32 } [ %202, %201 ], [ %200, %199 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  br label %721

204:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %34) #8
  %205 = load i64, ptr @_ZN2aa12descriptor_vIvEE, align 8, !tbaa !11
  store i64 %205, ptr %34, align 8, !tbaa !11
  %206 = getelementptr inbounds i8, ptr %34, i64 8
  %207 = load i64, ptr @_ZN2aa12descriptor_vIiEE, align 8, !tbaa !11
  store i64 %207, ptr %206, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #8
  call void @_ZNSaIN2aa12descriptor_tEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  invoke void @_ZNSt13unordered_setIN2aa12descriptor_tESt4hashIS1_ESt8equal_toIS1_ESaIS1_EEC2ESt16initializer_listIS1_EmRKS3_RKS5_RKS6_(ptr noundef nonnull align 8 dereferenceable(56) %33, ptr nonnull %34, i64 2, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(1) %35, ptr noundef nonnull align 1 dereferenceable(1) %36, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %208 unwind label %221

208:                                              ; preds = %204
  call void @_ZNSt15__new_allocatorIN2aa12descriptor_tEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #8
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %38) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #8
  store i32 5, ptr %39, align 4, !tbaa !5
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISB_JS3_S4_S5_EEEEEiE4typeELi0EEENS_23force_stable_pointers_tEOSB_(ptr noundef nonnull align 16 dereferenceable(64) %38, ptr noundef nonnull align 4 dereferenceable(4) %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #8
  %209 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %38) #8
  %210 = extractvalue { ptr, ptr } %209, 0
  store ptr %210, ptr %40, align 8
  %211 = getelementptr inbounds i8, ptr %40, i64 8
  %212 = extractvalue { ptr, ptr } %209, 1
  store ptr %212, ptr %211, align 8
  %213 = call noundef ptr @_ZNK2aa8poly_ptrIJNS_7destroyENS_9type_infoENS_4moveEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %40) #8
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %41) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEC2EOS6_(ptr noundef nonnull align 16 dereferenceable(64) %41, ptr noundef nonnull align 16 dereferenceable(64) %38) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %42) #8
  %214 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %41) #8
  %215 = extractvalue { ptr, ptr } %214, 0
  store ptr %215, ptr %42, align 8
  %216 = getelementptr inbounds i8, ptr %42, i64 8
  %217 = extractvalue { ptr, ptr } %214, 1
  store ptr %217, ptr %216, align 8
  %218 = call noundef ptr @_ZNK2aa8poly_ptrIJNS_7destroyENS_9type_infoENS_4moveEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %42) #8
  %.not279 = icmp eq ptr %213, %218
  br i1 %.not279, label %219, label %.critedge

219:                                              ; preds = %208
  %220 = call noundef zeroext i1 @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEE18is_stable_pointersEv(ptr noundef nonnull align 16 dereferenceable(64) %41) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #8
  br i1 %220, label %223, label %718

.critedge:                                        ; preds = %208
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %42) #8
  br label %718

221:                                              ; preds = %204
  %222 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIN2aa12descriptor_tEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %34) #8
  br label %719

223:                                              ; preds = %219
  %.sroa.0204.0.copyload = load ptr, ptr %40, align 8
  %.sroa.2205.0.copyload = load ptr, ptr %211, align 8
  %224 = call noundef ptr @_ZNK2aa11any_cast_fnIiNS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoENS_4moveEEEEPiNS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIiNS_18anyany_poly_traitsEEE, ptr %.sroa.0204.0.copyload, ptr %.sroa.2205.0.copyload) #8
  store i32 150, ptr %224, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %44) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoEEEC2I5derivTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES6_INS_6is_anyIS8_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPS8_(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef nonnull %43) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %45) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoEEEC2I4baseTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES6_INS_6is_anyIS8_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPS8_(ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef nonnull %43) #8
  %225 = call noundef ptr @_ZNK2aa8poly_ptrIJNS_9type_infoEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %44) #8
  %226 = call noundef ptr @_ZNK2aa8poly_ptrIJNS_9type_infoEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %45) #8
  %.not280 = icmp eq ptr %225, %226
  br i1 %.not280, label %227, label %717

227:                                              ; preds = %223
  %.sroa.0202.0.copyload = load ptr, ptr %44, align 8
  %.sroa.2203.0..sroa_idx = getelementptr inbounds i8, ptr %44, i64 8
  %.sroa.2203.0.copyload = load ptr, ptr %.sroa.2203.0..sroa_idx, align 8
  %.sroa.0200.0.copyload = load ptr, ptr %45, align 8
  %.sroa.2201.0..sroa_idx = getelementptr inbounds i8, ptr %45, i64 8
  %.sroa.2201.0.copyload = load ptr, ptr %.sroa.2201.0..sroa_idx, align 8
  %228 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_8poly_ptrIJDpT_EEES6_(ptr %.sroa.0202.0.copyload, ptr %.sroa.2203.0.copyload, ptr %.sroa.0200.0.copyload, ptr %.sroa.2201.0.copyload) #8
  br i1 %228, label %717, label %229

229:                                              ; preds = %227
  %.sroa.0198.0.copyload = load ptr, ptr %44, align 8
  %.sroa.2199.0.copyload = load ptr, ptr %.sroa.2203.0..sroa_idx, align 8
  %230 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_8poly_ptrIJDpT_EEES6_(ptr %.sroa.0198.0.copyload, ptr %.sroa.2199.0.copyload, ptr %.sroa.0198.0.copyload, ptr %.sroa.2199.0.copyload) #8
  br i1 %230, label %717, label %231

231:                                              ; preds = %229
  %.sroa.0194.0.copyload = load ptr, ptr %45, align 8
  %.sroa.2195.0.copyload = load ptr, ptr %.sroa.2201.0..sroa_idx, align 8
  %232 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_8poly_ptrIJDpT_EEES6_(ptr %.sroa.0194.0.copyload, ptr %.sroa.2195.0.copyload, ptr %.sroa.0194.0.copyload, ptr %.sroa.2195.0.copyload) #8
  br i1 %232, label %717, label %233

233:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %46) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoEEEC2I5derivTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPKS8_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull %43) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %47) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoEEEC2I4baseTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS8_JS1_EEEEEiE4typeELi0EEEPKS8_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull %43) #8
  %234 = call noundef ptr @_ZNK2aa14const_poly_ptrIJNS_9type_infoEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %46) #8
  %235 = call noundef ptr @_ZNK2aa14const_poly_ptrIJNS_9type_infoEEE3rawEv(ptr noundef nonnull align 8 dereferenceable(16) %47) #8
  %.not281 = icmp eq ptr %234, %235
  br i1 %.not281, label %236, label %716

236:                                              ; preds = %233
  %.sroa.0190.0.copyload = load ptr, ptr %46, align 8
  %.sroa.2191.0..sroa_idx = getelementptr inbounds i8, ptr %46, i64 8
  %.sroa.2191.0.copyload = load ptr, ptr %.sroa.2191.0..sroa_idx, align 8
  %.sroa.0188.0.copyload = load ptr, ptr %47, align 8
  %.sroa.2189.0..sroa_idx = getelementptr inbounds i8, ptr %47, i64 8
  %.sroa.2189.0.copyload = load ptr, ptr %.sroa.2189.0..sroa_idx, align 8
  %237 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_14const_poly_ptrIJDpT_EEES6_(ptr %.sroa.0190.0.copyload, ptr %.sroa.2191.0.copyload, ptr %.sroa.0188.0.copyload, ptr %.sroa.2189.0.copyload) #8
  br i1 %237, label %716, label %238

238:                                              ; preds = %236
  %.sroa.0186.0.copyload = load ptr, ptr %46, align 8
  %.sroa.2187.0.copyload = load ptr, ptr %.sroa.2191.0..sroa_idx, align 8
  %239 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_14const_poly_ptrIJDpT_EEES6_(ptr %.sroa.0186.0.copyload, ptr %.sroa.2187.0.copyload, ptr %.sroa.0186.0.copyload, ptr %.sroa.2187.0.copyload) #8
  br i1 %239, label %716, label %240

240:                                              ; preds = %238
  %.sroa.0182.0.copyload = load ptr, ptr %47, align 8
  %.sroa.2183.0.copyload = load ptr, ptr %.sroa.2189.0..sroa_idx, align 8
  %241 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_14const_poly_ptrIJDpT_EEES6_(ptr %.sroa.0182.0.copyload, ptr %.sroa.2183.0.copyload, ptr %.sroa.0182.0.copyload, ptr %.sroa.2183.0.copyload) #8
  br i1 %241, label %716, label %242

242:                                              ; preds = %240
  %.sroa.0178.0.copyload = load ptr, ptr %46, align 8
  %.sroa.2179.0.copyload = load ptr, ptr %.sroa.2191.0..sroa_idx, align 8
  %.sroa.0176.0.copyload = load ptr, ptr %44, align 8
  %.sroa.2177.0.copyload = load ptr, ptr %.sroa.2203.0..sroa_idx, align 8
  %243 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr %.sroa.0178.0.copyload, ptr %.sroa.2179.0.copyload, ptr %.sroa.0176.0.copyload, ptr %.sroa.2177.0.copyload) #8
  br i1 %243, label %716, label %244

244:                                              ; preds = %242
  %.sroa.0174.0.copyload = load ptr, ptr %47, align 8
  %.sroa.2175.0.copyload = load ptr, ptr %.sroa.2189.0..sroa_idx, align 8
  %.sroa.0172.0.copyload = load ptr, ptr %45, align 8
  %.sroa.2173.0.copyload = load ptr, ptr %.sroa.2201.0..sroa_idx, align 8
  %245 = call noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr %.sroa.0174.0.copyload, ptr %.sroa.2175.0.copyload, ptr %.sroa.0172.0.copyload, ptr %.sroa.2173.0.copyload) #8
  br i1 %245, label %716, label %246

246:                                              ; preds = %244
  %.sroa.0170.0.copyload = load ptr, ptr %47, align 8
  %.sroa.2171.0.copyload = load ptr, ptr %.sroa.2189.0..sroa_idx, align 8
  %.sroa.0168.0.copyload = load ptr, ptr %44, align 8
  %.sroa.2169.0.copyload = load ptr, ptr %.sroa.2203.0..sroa_idx, align 8
  %247 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTeqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr %.sroa.0170.0.copyload, ptr %.sroa.2171.0.copyload, ptr %.sroa.0168.0.copyload, ptr %.sroa.2169.0.copyload) #8
  br i1 %247, label %716, label %248

248:                                              ; preds = %246
  %.sroa.0166.0.copyload = load ptr, ptr %46, align 8
  %.sroa.2167.0.copyload = load ptr, ptr %.sroa.2191.0..sroa_idx, align 8
  %.sroa.0164.0.copyload = load ptr, ptr %45, align 8
  %.sroa.2165.0.copyload = load ptr, ptr %.sroa.2201.0..sroa_idx, align 8
  %249 = call noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTeqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr %.sroa.0166.0.copyload, ptr %.sroa.2167.0.copyload, ptr %.sroa.0164.0.copyload, ptr %.sroa.2165.0.copyload) #8
  br i1 %249, label %716, label %250

250:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %48) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEEC2IRA12_KcTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISE_JS3_S4_S5_EEEEEiE4typeELi0EEEOSE_(ptr noundef nonnull align 16 dereferenceable(64) %48, ptr noundef nonnull align 1 dereferenceable(12) @.str) #8
  %251 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %48) #8
  %252 = extractvalue { ptr, ptr } %251, 0
  %253 = extractvalue { ptr, ptr } %251, 1
  %254 = call noundef ptr @_ZNK2aa11any_cast_fnIPKcNS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5printEEEPS2_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIPKcNS_18anyany_poly_traitsEEE, ptr %252, ptr %253) #8
  %.not282 = icmp eq ptr %254, null
  br i1 %.not282, label %255, label %259

255:                                              ; preds = %250
  %256 = call ptr @__cxa_allocate_exception(i64 4) #8
  store i32 1, ptr %256, align 16, !tbaa !5
  invoke void @__cxa_throw(ptr nonnull %256, ptr nonnull @_ZTIi, ptr null) #9
          to label %729 unwind label %257

257:                                              ; preds = %259, %255
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %715

259:                                              ; preds = %250
  invoke void @_ZNK2aa8noexport9invoke_fnI5printNS_9type_listIJEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoES2_EEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSF_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5printEE, ptr noundef nonnull align 16 dereferenceable(64) %48)
          to label %260 unwind label %257

260:                                              ; preds = %259
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %49) #8
  call void @_ZNSt6vectorIN2aa8poly_refIJ4fooxEEESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #8
  %261 = load i8, ptr @__const.main.fef, align 1
  store i8 %261, ptr %50, align 1
  %262 = invoke noundef nonnull align 1 ptr @_ZNSt6vectorIN2aa8poly_refIJ4fooxEEESaIS3_EE12emplace_backIJR7FooAbleEEERS3_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %49, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %263 unwind label %312

263:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #8
  call void @_ZN2A1C2Ev(ptr noundef nonnull align 4 dereferenceable(4) %51) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #8
  call void @_ZN2A2C2Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %53) #8
  call void @_ZN2aa8poly_refIJ2M12M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEC2I2A1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESC_INS_14is_polymorphicISE_EEENS_9exist_forISE_JS1_S2_S6_S7_EEEEEiE4typeELi0EEERSE_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 4 dereferenceable(4) %51) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %54) #8
  call void @_ZN2aa14const_poly_refIJ2M12M2NS_4moveEEEC2I2A2TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISA_JS1_S2_S3_EEEEEiE4typeELi0EEERKSA_(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  %.sroa.0160.0.copyload = load ptr, ptr %54, align 8
  %.sroa.2161.0..sroa_idx = getelementptr inbounds i8, ptr %54, i64 8
  %.sroa.2161.0.copyload = load ptr, ptr %.sroa.2161.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M1EE, ptr %.sroa.0160.0.copyload, ptr %.sroa.2161.0.copyload, i32 noundef -1)
          to label %264 unwind label %314

264:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %55) #8
  %.sroa.0158.0.copyload = load ptr, ptr %54, align 8
  %.sroa.2159.0.copyload = load ptr, ptr %.sroa.2161.0..sroa_idx, align 8
  call void @_ZN2aa14const_poly_refIJ2M2NS_4moveEEEC2IJ2M1S1_S2_EvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %55, ptr %.sroa.0158.0.copyload, ptr %.sroa.2159.0.copyload) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %56) #8
  %265 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJ2M12M2NS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %54) #8
  %266 = extractvalue { ptr, ptr } %265, 0
  %267 = extractvalue { ptr, ptr } %265, 1
  call void @_ZN2aa14const_poly_ptrIJ2M2NS_4moveEEEC2IJ2M1S1_S2_EvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %56, ptr %266, ptr %267) #8
  %.sroa.0153.0.copyload = load ptr, ptr %55, align 8
  %.sroa.2154.0..sroa_idx = getelementptr inbounds i8, ptr %55, i64 8
  %.sroa.2154.0.copyload = load ptr, ptr %.sroa.2154.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %.sroa.0153.0.copyload, ptr %.sroa.2154.0.copyload, double noundef 3.140000e+00, i32 noundef -2)
          to label %268 unwind label %316

268:                                              ; preds = %264
  %269 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M2NS_4moveEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %56) #8
  %270 = extractvalue { ptr, ptr } %269, 0
  %271 = extractvalue { ptr, ptr } %269, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %270, ptr %271, double noundef 3.140000e+00, i32 noundef -2)
          to label %272 unwind label %316

272:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %57) #8
  %.sroa.0149.0.copyload = load ptr, ptr %55, align 8
  %.sroa.2150.0.copyload = load ptr, ptr %.sroa.2154.0..sroa_idx, align 8
  call void @_ZN2aa14const_poly_refIJ2M2EEC2IJS1_NS_4moveEEvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr %.sroa.0149.0.copyload, ptr %.sroa.2150.0.copyload) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %58) #8
  %273 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJ2M2NS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %55) #8
  %274 = extractvalue { ptr, ptr } %273, 0
  %275 = extractvalue { ptr, ptr } %273, 1
  call void @_ZN2aa14const_poly_ptrIJ2M2EEC2IJS1_NS_4moveEEvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr %274, ptr %275) #8
  %.sroa.0145.0.copyload = load ptr, ptr %57, align 8
  %.sroa.2146.0..sroa_idx = getelementptr inbounds i8, ptr %57, i64 8
  %.sroa.2146.0.copyload = load ptr, ptr %.sroa.2146.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %.sroa.0145.0.copyload, ptr %.sroa.2146.0.copyload, double noundef 1.340000e+02, i32 noundef -3)
          to label %276 unwind label %318

276:                                              ; preds = %272
  %277 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %58) #8
  %278 = extractvalue { ptr, ptr } %277, 0
  %279 = extractvalue { ptr, ptr } %277, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %278, ptr %279, double noundef 1.340000e+02, i32 noundef -3)
          to label %280 unwind label %318

280:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %59) #8
  %.sroa.0141.0.copyload = load ptr, ptr %53, align 8
  %.sroa.2142.0..sroa_idx = getelementptr inbounds i8, ptr %53, i64 8
  %.sroa.2142.0.copyload = load ptr, ptr %.sroa.2142.0..sroa_idx, align 8
  call void @_ZN2aa14const_poly_refIJ2M12M2EEC2IJS1_S2_NS_9copy_withISaISt4byteELm40EEENS_4moveEEvEENS_8poly_refIJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr %.sroa.0141.0.copyload, ptr %.sroa.2142.0.copyload) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %60) #8
  %281 = call { ptr, ptr } @_ZNK2aa8poly_refIJ2M12M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %53) #8
  %282 = extractvalue { ptr, ptr } %281, 0
  %283 = extractvalue { ptr, ptr } %281, 1
  call void @_ZN2aa14const_poly_ptrIJ2M12M2EEC2IJS1_S2_NS_9copy_withISaISt4byteELm40EEENS_4moveEEvEENS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr %282, ptr %283) #8
  %.sroa.0137.0.copyload = load ptr, ptr %59, align 8
  %.sroa.2138.0..sroa_idx = getelementptr inbounds i8, ptr %59, i64 8
  %.sroa.2138.0.copyload = load ptr, ptr %.sroa.2138.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2EEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M1EE, ptr %.sroa.0137.0.copyload, ptr %.sroa.2138.0.copyload, i32 noundef -5)
          to label %284 unwind label %320

284:                                              ; preds = %280
  %285 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M12M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %60) #8
  %286 = extractvalue { ptr, ptr } %285, 0
  %287 = extractvalue { ptr, ptr } %285, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2EEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M1EE, ptr %286, ptr %287, i32 noundef -5)
          to label %288 unwind label %320

288:                                              ; preds = %284
  %.sroa.0133.0.copyload = load ptr, ptr %59, align 8
  %.sroa.2134.0.copyload = load ptr, ptr %.sroa.2138.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %.sroa.0133.0.copyload, ptr %.sroa.2134.0.copyload, double noundef 1.340000e+04, i32 noundef -6)
          to label %289 unwind label %320

289:                                              ; preds = %288
  %290 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M12M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %60) #8
  %291 = extractvalue { ptr, ptr } %290, 0
  %292 = extractvalue { ptr, ptr } %290, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %291, ptr %292, double noundef 1.340000e+04, i32 noundef -6)
          to label %293 unwind label %320

293:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %61) #8
  %.sroa.0129.0.copyload = load ptr, ptr %53, align 8
  %.sroa.2130.0.copyload = load ptr, ptr %.sroa.2142.0..sroa_idx, align 8
  call void @_ZN2aa8poly_refIJ2M2NS_9copy_withISaISt4byteELm40EEEEEC2IJ2M1S1_S5_NS_4moveEEvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr %.sroa.0129.0.copyload, ptr %.sroa.2130.0.copyload) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %62) #8
  %.sroa.0127.0.copyload = load ptr, ptr %61, align 8
  %.sroa.2128.0..sroa_idx = getelementptr inbounds i8, ptr %61, i64 8
  %.sroa.2128.0.copyload = load ptr, ptr %.sroa.2128.0..sroa_idx, align 8
  call void @_ZN2aa8poly_refIJ2M2EEC2IJS1_NS_9copy_withISaISt4byteELm40EEEEvEENS0_IJDpT_EEE(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr %.sroa.0127.0.copyload, ptr %.sroa.2128.0.copyload) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %63) #8
  %294 = call { ptr, ptr } @_ZNK2aa8poly_refIJ2M2NS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %61) #8
  %295 = extractvalue { ptr, ptr } %294, 0
  %296 = extractvalue { ptr, ptr } %294, 1
  call void @_ZN2aa8poly_ptrIJ2M2EEC2IJS1_NS_9copy_withISaISt4byteELm40EEEETnNSt9enable_ifIXclsr8noexportE15has_subsequencetlNS_9type_listIJS1_EEEEtlNS9_IJDpT_EEEEEEiE4typeELi0EEENS0_IJSC_EEE(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr %295, ptr %296) #8
  %.sroa.0122.0.copyload = load ptr, ptr %53, align 8
  %.sroa.2123.0.copyload = load ptr, ptr %.sroa.2142.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEEvNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M1EE, ptr %.sroa.0122.0.copyload, ptr %.sroa.2123.0.copyload, i32 noundef 10)
          to label %297 unwind label %322

297:                                              ; preds = %293
  %.sroa.0120.0.copyload = load ptr, ptr %53, align 8
  %.sroa.2121.0.copyload = load ptr, ptr %.sroa.2142.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_NS_9copy_withISaISt4byteELm40EEENS_4moveEEEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %.sroa.0120.0.copyload, ptr %.sroa.2121.0.copyload, double noundef 1.100000e+01, i32 noundef 12)
          to label %298 unwind label %322

298:                                              ; preds = %297
  %.sroa.0118.0.copyload = load ptr, ptr %61, align 8
  %.sroa.2119.0.copyload = load ptr, ptr %.sroa.2128.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_9copy_withISaISt4byteELm40EEEEEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %.sroa.0118.0.copyload, ptr %.sroa.2119.0.copyload, double noundef 1.100000e+01, i32 noundef 12)
          to label %299 unwind label %322

299:                                              ; preds = %298
  %.sroa.0116.0.copyload = load ptr, ptr %62, align 8
  %.sroa.2117.0..sroa_idx = getelementptr inbounds i8, ptr %62, i64 8
  %.sroa.2117.0.copyload = load ptr, ptr %.sroa.2117.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %.sroa.0116.0.copyload, ptr %.sroa.2117.0.copyload, double noundef 1.100000e+01, i32 noundef 12)
          to label %300 unwind label %322

300:                                              ; preds = %299
  %301 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJ2M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %63) #8
  %302 = extractvalue { ptr, ptr } %301, 0
  %303 = extractvalue { ptr, ptr } %301, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI2M2EE, ptr %302, ptr %303, double noundef 1.100000e+01, i32 noundef 12)
          to label %304 unwind label %322

304:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %65) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %66) #8
  call void @_ZN2aa6vtableIJNS_9type_infoENS_9copy_withISaISt4byteELm40EEES1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  invoke void @_ZN2aa6vtableIJNS_9type_infoENS_9copy_withISaISt4byteELm40EEES1_EE6changeIS1_NS_12descriptor_tEEEvRKT0_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(8) @_ZN2aa12descriptor_vIiEE)
          to label %305 unwind label %324

305:                                              ; preds = %304
  %306 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2aa8noexport3getILm0ENS_12descriptor_tEEERT0_RNS0_14value_in_tupleIS3_XT_EEE(ptr noundef nonnull align 8 dereferenceable(8) %66) #8
  %307 = call noundef zeroext i1 @_ZNK2aa12descriptor_tneERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull align 8 dereferenceable(8) @_ZN2aa12descriptor_vIiEE) #8
  br i1 %307, label %.thread, label %308

308:                                              ; preds = %305
  %309 = getelementptr inbounds i8, ptr %66, i64 24
  %310 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2aa8noexport3getILm2ENS_12descriptor_tEEERT0_RNS0_14value_in_tupleIS3_XT_EEE(ptr noundef nonnull align 8 dereferenceable(8) %309) #8
  %311 = call noundef zeroext i1 @_ZNK2aa12descriptor_tneERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %310, ptr noundef nonnull align 8 dereferenceable(8) @_ZN2aa12descriptor_vIiEE) #8
  br i1 %311, label %.thread, label %326

312:                                              ; preds = %260
  %313 = landingpad { ptr, i32 }
          cleanup
  br label %714

314:                                              ; preds = %263
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %713

316:                                              ; preds = %268, %264
  %317 = landingpad { ptr, i32 }
          cleanup
  br label %712

318:                                              ; preds = %276, %272
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %711

320:                                              ; preds = %289, %288, %284, %280
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %710

322:                                              ; preds = %300, %299, %298, %297, %293
  %323 = landingpad { ptr, i32 }
          cleanup
  br label %709

324:                                              ; preds = %304
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %587

326:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %67) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_6is_anyISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPSD_(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %68) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPKSD_(ptr noundef nonnull align 8 dereferenceable(16) %68, ptr noundef nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %69) #8
  call void @_ZN2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_14is_polymorphicISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERSD_(ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %70) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERKSD_(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %71) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPKSD_(ptr noundef nonnull align 8 dereferenceable(16) %71, ptr noundef nonnull %65) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %72) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERKSD_(ptr noundef nonnull align 8 dereferenceable(16) %72, ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  %.sroa.0112.0.copyload = load ptr, ptr %72, align 8
  %.sroa.2113.0..sroa_idx = getelementptr inbounds i8, ptr %72, i64 8
  %.sroa.2113.0.copyload = load ptr, ptr %.sroa.2113.0..sroa_idx, align 8
  invoke void @_ZNK2aa11any_cast_fnIK9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK9drawable1NS_18anyany_poly_traitsEEE, ptr %.sroa.0112.0.copyload, ptr %.sroa.2113.0.copyload)
          to label %327 unwind label %345

327:                                              ; preds = %326
  %.sroa.0110.0.copyload = load ptr, ptr %72, align 8
  %.sroa.2111.0.copyload = load ptr, ptr %.sroa.2113.0..sroa_idx, align 8
  invoke void @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %.sroa.0110.0.copyload, ptr %.sroa.2111.0.copyload)
          to label %328 unwind label %345

328:                                              ; preds = %327
  %.sroa.0108.0.copyload = load ptr, ptr %72, align 8
  %.sroa.2109.0.copyload = load ptr, ptr %.sroa.2113.0..sroa_idx, align 8
  %329 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable1NS_18anyany_poly_traitsEEE, ptr %.sroa.0108.0.copyload, ptr %.sroa.2109.0.copyload)
          to label %330 unwind label %345

330:                                              ; preds = %328
  %.sroa.0106.0.copyload = load ptr, ptr %72, align 8
  %.sroa.2107.0.copyload = load ptr, ptr %.sroa.2113.0..sroa_idx, align 8
  %331 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable1NS_18anyany_poly_traitsEEE, ptr %.sroa.0106.0.copyload, ptr %.sroa.2107.0.copyload)
          to label %332 unwind label %345

332:                                              ; preds = %330
  %.sroa.0104.0.copyload = load ptr, ptr %69, align 8
  %.sroa.2105.0..sroa_idx = getelementptr inbounds i8, ptr %69, i64 8
  %.sroa.2105.0.copyload = load ptr, ptr %.sroa.2105.0..sroa_idx, align 8
  invoke void @_ZNK2aa11any_cast_fnIK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.0104.0.copyload, ptr %.sroa.2105.0.copyload)
          to label %333 unwind label %345

333:                                              ; preds = %332
  %.sroa.0102.0.copyload = load ptr, ptr %69, align 8
  %.sroa.2103.0.copyload = load ptr, ptr %.sroa.2105.0..sroa_idx, align 8
  invoke void @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.0102.0.copyload, ptr %.sroa.2103.0.copyload)
          to label %334 unwind label %345

334:                                              ; preds = %333
  %.sroa.0100.0.copyload = load ptr, ptr %69, align 8
  %.sroa.2101.0.copyload = load ptr, ptr %.sroa.2105.0..sroa_idx, align 8
  %335 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.0100.0.copyload, ptr %.sroa.2101.0.copyload)
          to label %336 unwind label %345

336:                                              ; preds = %334
  %.sroa.098.0.copyload = load ptr, ptr %69, align 8
  %.sroa.299.0.copyload = load ptr, ptr %.sroa.2105.0..sroa_idx, align 8
  %337 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.098.0.copyload, ptr %.sroa.299.0.copyload)
          to label %338 unwind label %345

338:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %73) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEC2IR9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISF_JS3_S4_S5_S7_EEEEEiE4typeELi0EEEOSF_(ptr noundef nonnull align 16 dereferenceable(64) %73, ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %74) #8
  %339 = call { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %73) #8
  %340 = extractvalue { ptr, ptr } %339, 0
  store ptr %340, ptr %74, align 8
  %341 = getelementptr inbounds i8, ptr %74, i64 8
  %342 = extractvalue { ptr, ptr } %339, 1
  store ptr %342, ptr %341, align 8
  %343 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %340, ptr %342) #8
  %344 = icmp eq ptr %343, null
  br i1 %344, label %.thread321, label %347

.thread321:                                       ; preds = %338
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %73) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #8
  br label %708

345:                                              ; preds = %336, %334, %333, %332, %330, %328, %327, %326
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %586

347:                                              ; preds = %338
  %348 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %74) #8
  %349 = extractvalue { ptr, ptr } %348, 0
  %350 = extractvalue { ptr, ptr } %348, 1
  %351 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable0NS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE, ptr %349, ptr %350)
          to label %352 unwind label %381

352:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %75) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEC2IRK9drawable1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISG_JS3_S4_S5_S7_EEEEEiE4typeELi0EEEOSG_(ptr noundef nonnull align 16 dereferenceable(64) %75, ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %76) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %77) #8
  %353 = call { ptr, ptr } @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %75) #8
  %354 = extractvalue { ptr, ptr } %353, 0
  store ptr %354, ptr %77, align 8
  %355 = getelementptr inbounds i8, ptr %77, i64 8
  %356 = extractvalue { ptr, ptr } %353, 1
  store ptr %356, ptr %355, align 8
  %357 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %77) #8
  %358 = extractvalue { ptr, ptr } %357, 0
  %359 = extractvalue { ptr, ptr } %357, 1
  invoke void @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %358, ptr %359)
          to label %360 unwind label %383

360:                                              ; preds = %352
  %361 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %76, i32 noundef 5)
          to label %362 unwind label %383

362:                                              ; preds = %360
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #8
  %363 = call { ptr, ptr } @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %75) #8
  %364 = extractvalue { ptr, ptr } %363, 0
  %365 = extractvalue { ptr, ptr } %363, 1
  %366 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPKS1_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %364, ptr %365) #8
  %367 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %366, i32 noundef 5)
          to label %368 unwind label %385

368:                                              ; preds = %362
  %369 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclINS_9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS7_Lm40EEEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEPKS1_PKSF_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr noundef nonnull %75) #8
  %370 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %369, i32 noundef 5)
          to label %371 unwind label %385

371:                                              ; preds = %368
  %372 = call noundef ptr @_ZNK2aa11any_cast_fnIK9drawable1NS_18anyany_poly_traitsEEclINS_9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS8_Lm40EEEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEPS2_PKSG_(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK9drawable1NS_18anyany_poly_traitsEEE, ptr noundef nonnull %75) #8
  %373 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %372, i32 noundef 5)
          to label %374 unwind label %385

374:                                              ; preds = %371
  %375 = call { ptr, ptr } @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64) %75) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %78) #8
  call void @_ZN2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_14is_polymorphicISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERSD_(ptr noundef nonnull align 8 dereferenceable(16) %78, ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %79) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEERKSD_(ptr noundef nonnull align 8 dereferenceable(16) %79, ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %80) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_6is_anyISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPSD_(ptr noundef nonnull align 8 dereferenceable(16) %80, ptr noundef nonnull %64) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %81) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPKSD_(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull %64) #8
  %.sroa.087.0.copyload = load ptr, ptr %67, align 8
  %.sroa.288.0..sroa_idx = getelementptr inbounds i8, ptr %67, i64 8
  %.sroa.288.0.copyload = load ptr, ptr %.sroa.288.0..sroa_idx, align 8
  %376 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.087.0.copyload, ptr %.sroa.288.0.copyload) #8
  %377 = icmp eq ptr %376, null
  br i1 %377, label %519, label %378

378:                                              ; preds = %374
  %.sroa.085.0.copyload = load ptr, ptr %67, align 8
  %.sroa.286.0.copyload = load ptr, ptr %.sroa.288.0..sroa_idx, align 8
  %379 = call noundef ptr @_ZNK2aa11any_cast_fnIK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS2_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.085.0.copyload, ptr %.sroa.286.0.copyload) #8
  %380 = icmp eq ptr %379, null
  br i1 %380, label %519, label %387

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

383:                                              ; preds = %360, %352
  %384 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %77) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %76) #8
  br label %584

385:                                              ; preds = %371, %368, %362
  %386 = landingpad { ptr, i32 }
          cleanup
  br label %584

387:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %82) #8
  %.sroa.082.0.copyload = load ptr, ptr %67, align 8
  %.sroa.283.0.copyload = load ptr, ptr %.sroa.288.0..sroa_idx, align 8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2ENS_8poly_ptrIJS1_S2_S6_EEE(ptr noundef nonnull align 8 dereferenceable(16) %82, ptr %.sroa.082.0.copyload, ptr %.sroa.283.0.copyload) #8
  %388 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %67) #8
  %389 = extractvalue { ptr, ptr } %388, 0
  %390 = extractvalue { ptr, ptr } %388, 1
  %391 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %389, ptr %390, i32 noundef 150)
          to label %392 unwind label %504

392:                                              ; preds = %387
  %.sroa.077.0.copyload = load ptr, ptr %69, align 8
  %.sroa.278.0.copyload = load ptr, ptr %.sroa.2105.0..sroa_idx, align 8
  %393 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %.sroa.077.0.copyload, ptr %.sroa.278.0.copyload, i32 noundef 150)
          to label %394 unwind label %504

394:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %83) #8
  %395 = call { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %69) #8
  %396 = extractvalue { ptr, ptr } %395, 0
  store ptr %396, ptr %83, align 8
  %397 = getelementptr inbounds i8, ptr %83, i64 8
  %398 = extractvalue { ptr, ptr } %395, 1
  store ptr %398, ptr %397, align 8
  %399 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %83) #8
  %400 = extractvalue { ptr, ptr } %399, 0
  %401 = extractvalue { ptr, ptr } %399, 1
  %402 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %400, ptr %401, i32 noundef 150)
          to label %403 unwind label %506

403:                                              ; preds = %394
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #8
  %404 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %68) #8
  %405 = extractvalue { ptr, ptr } %404, 0
  %406 = extractvalue { ptr, ptr } %404, 1
  %407 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %405, ptr %406, i32 noundef 150)
          to label %408 unwind label %504

408:                                              ; preds = %403
  %409 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %71) #8
  %410 = extractvalue { ptr, ptr } %409, 0
  %411 = extractvalue { ptr, ptr } %409, 1
  %412 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %410, ptr %411, i32 noundef 150)
          to label %413 unwind label %504

413:                                              ; preds = %408
  %.sroa.069.0.copyload = load ptr, ptr %70, align 8
  %.sroa.270.0..sroa_idx = getelementptr inbounds i8, ptr %70, i64 8
  %.sroa.270.0.copyload = load ptr, ptr %.sroa.270.0..sroa_idx, align 8
  %414 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %.sroa.069.0.copyload, ptr %.sroa.270.0.copyload, i32 noundef 150)
          to label %415 unwind label %504

415:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %84) #8
  %416 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %70) #8
  %417 = extractvalue { ptr, ptr } %416, 0
  store ptr %417, ptr %84, align 8
  %418 = getelementptr inbounds i8, ptr %84, i64 8
  %419 = extractvalue { ptr, ptr } %416, 1
  store ptr %419, ptr %418, align 8
  %420 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %84) #8
  %421 = extractvalue { ptr, ptr } %420, 0
  %422 = extractvalue { ptr, ptr } %420, 1
  %423 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %421, ptr %422, i32 noundef 150)
          to label %424 unwind label %508

424:                                              ; preds = %415
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %85) #8
  %425 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  %426 = extractvalue { ptr, ptr } %425, 0
  store ptr %426, ptr %85, align 8
  %427 = getelementptr inbounds i8, ptr %85, i64 8
  %428 = extractvalue { ptr, ptr } %425, 1
  store ptr %428, ptr %427, align 8
  %429 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %85) #8
  %430 = extractvalue { ptr, ptr } %429, 0
  %431 = extractvalue { ptr, ptr } %429, 1
  %432 = invoke noundef i32 @_ZNK2aa8noexport9invoke_fnI5DrawiNS_9type_listIJiEEEEclIJNS_9type_infoES2_NS_9copy_withISaISt4byteELm40EEEEEEiNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI5DrawiEE, ptr %430, ptr %431, i32 noundef 150)
          to label %433 unwind label %510

433:                                              ; preds = %424
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %85) #8
  %434 = call noundef ptr @_ZN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %67) #8
  %435 = call noundef i32 @_ZNK5Drawi6pluginIN2aa8poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %434, i32 noundef 150) #8
  %436 = call noundef ptr @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %68) #8
  %437 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %436, i32 noundef 150) #8
  %438 = call noundef ptr @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %71) #8
  %439 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %438, i32 noundef 150) #8
  %440 = call noundef i32 @_ZNK5Drawi6pluginIN2aa8poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %69, i32 noundef 150) #8
  %441 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %70, i32 noundef 150) #8
  %442 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %72, i32 noundef 150) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %86) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %87) #8
  %443 = call { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %69) #8
  %444 = extractvalue { ptr, ptr } %443, 0
  store ptr %444, ptr %87, align 8
  %445 = getelementptr inbounds i8, ptr %87, i64 8
  %446 = extractvalue { ptr, ptr } %443, 1
  store ptr %446, ptr %445, align 8
  %447 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %87) #8
  %448 = extractvalue { ptr, ptr } %447, 0
  store ptr %448, ptr %86, align 8
  %449 = getelementptr inbounds i8, ptr %86, i64 8
  %450 = extractvalue { ptr, ptr } %447, 1
  store ptr %450, ptr %449, align 8
  %451 = call noundef i32 @_ZNK5Drawi6pluginIN2aa8poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %86, i32 noundef 150) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %87) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %86) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %88) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %89) #8
  %452 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %70) #8
  %453 = extractvalue { ptr, ptr } %452, 0
  store ptr %453, ptr %89, align 8
  %454 = getelementptr inbounds i8, ptr %89, i64 8
  %455 = extractvalue { ptr, ptr } %452, 1
  store ptr %455, ptr %454, align 8
  %456 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %89) #8
  %457 = extractvalue { ptr, ptr } %456, 0
  store ptr %457, ptr %88, align 8
  %458 = getelementptr inbounds i8, ptr %88, i64 8
  %459 = extractvalue { ptr, ptr } %456, 1
  store ptr %459, ptr %458, align 8
  %460 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %88, i32 noundef 150) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %89) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %88) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %90) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %91) #8
  %461 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %72) #8
  %462 = extractvalue { ptr, ptr } %461, 0
  store ptr %462, ptr %91, align 8
  %463 = getelementptr inbounds i8, ptr %91, i64 8
  %464 = extractvalue { ptr, ptr } %461, 1
  store ptr %464, ptr %463, align 8
  %465 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %91) #8
  %466 = extractvalue { ptr, ptr } %465, 0
  store ptr %466, ptr %90, align 8
  %467 = getelementptr inbounds i8, ptr %90, i64 8
  %468 = extractvalue { ptr, ptr } %465, 1
  store ptr %468, ptr %467, align 8
  %469 = call noundef i32 @_ZNK5Drawi6pluginIN2aa14const_poly_refIJNS1_9type_infoES_NS1_9copy_withISaISt4byteELm40EEEEEEE4drawEi(ptr noundef nonnull align 1 dereferenceable(1) %90, i32 noundef 150) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %90) #8
  %.sroa.063.0.copyload = load ptr, ptr %67, align 8
  %.sroa.264.0.copyload = load ptr, ptr %.sroa.288.0..sroa_idx, align 8
  %470 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.063.0.copyload, ptr %.sroa.264.0.copyload) #8
  %471 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %470, i32 noundef 150)
          to label %472 unwind label %504

472:                                              ; preds = %433
  %.sroa.061.0.copyload = load ptr, ptr %68, align 8
  %.sroa.262.0..sroa_idx = getelementptr inbounds i8, ptr %68, i64 8
  %.sroa.262.0.copyload = load ptr, ptr %.sroa.262.0..sroa_idx, align 8
  %473 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPKS1_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.061.0.copyload, ptr %.sroa.262.0.copyload) #8
  %474 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %473, i32 noundef 150)
          to label %475 unwind label %504

475:                                              ; preds = %472
  %.sroa.059.0.copyload = load ptr, ptr %71, align 8
  %.sroa.260.0..sroa_idx = getelementptr inbounds i8, ptr %71, i64 8
  %.sroa.260.0.copyload = load ptr, ptr %.sroa.260.0..sroa_idx, align 8
  %476 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPKS1_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %.sroa.059.0.copyload, ptr %.sroa.260.0.copyload) #8
  %477 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %476, i32 noundef 150)
          to label %478 unwind label %504

478:                                              ; preds = %475
  %.sroa.057.0.copyload = load ptr, ptr %69, align 8
  %.sroa.258.0.copyload = load ptr, ptr %.sroa.2105.0..sroa_idx, align 8
  %479 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.057.0.copyload, ptr %.sroa.258.0.copyload)
          to label %480 unwind label %504

480:                                              ; preds = %478
  %481 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %479, i32 noundef 150)
          to label %482 unwind label %504

482:                                              ; preds = %480
  %.sroa.055.0.copyload = load ptr, ptr %70, align 8
  %.sroa.256.0.copyload = load ptr, ptr %.sroa.270.0..sroa_idx, align 8
  %483 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.055.0.copyload, ptr %.sroa.256.0.copyload)
          to label %484 unwind label %504

484:                                              ; preds = %482
  %485 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %483, i32 noundef 150)
          to label %486 unwind label %504

486:                                              ; preds = %484
  %.sroa.053.0.copyload = load ptr, ptr %72, align 8
  %.sroa.254.0.copyload = load ptr, ptr %.sroa.2113.0..sroa_idx, align 8
  %487 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR9drawable1NS_18anyany_poly_traitsEEE, ptr %.sroa.053.0.copyload, ptr %.sroa.254.0.copyload)
          to label %488 unwind label %504

488:                                              ; preds = %486
  %489 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %487, i32 noundef 150)
          to label %490 unwind label %504

490:                                              ; preds = %488
  %.sroa.051.0.copyload = load ptr, ptr %69, align 8
  %.sroa.252.0.copyload = load ptr, ptr %.sroa.2105.0..sroa_idx, align 8
  %491 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.051.0.copyload, ptr %.sroa.252.0.copyload)
          to label %492 unwind label %504

492:                                              ; preds = %490
  %493 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %491, i32 noundef 150)
          to label %494 unwind label %504

494:                                              ; preds = %492
  %.sroa.049.0.copyload = load ptr, ptr %70, align 8
  %.sroa.250.0.copyload = load ptr, ptr %.sroa.270.0..sroa_idx, align 8
  %495 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable0NS_18anyany_poly_traitsEEE, ptr %.sroa.049.0.copyload, ptr %.sroa.250.0.copyload)
          to label %496 unwind label %504

496:                                              ; preds = %494
  %497 = invoke noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1) %495, i32 noundef 150)
          to label %498 unwind label %504

498:                                              ; preds = %496
  %.sroa.047.0.copyload = load ptr, ptr %72, align 8
  %.sroa.248.0.copyload = load ptr, ptr %.sroa.2113.0..sroa_idx, align 8
  %499 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable1NS_18anyany_poly_traitsEEE, ptr %.sroa.047.0.copyload, ptr %.sroa.248.0.copyload)
          to label %500 unwind label %504

500:                                              ; preds = %498
  %501 = invoke noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1) %499, i32 noundef 150)
          to label %502 unwind label %504

502:                                              ; preds = %500
  %.sroa.045.0.copyload = load ptr, ptr %67, align 8
  %.sroa.246.0.copyload = load ptr, ptr %.sroa.288.0..sroa_idx, align 8
  %503 = call noundef ptr @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI9drawable1NS_18anyany_poly_traitsEEE, ptr %.sroa.045.0.copyload, ptr %.sroa.246.0.copyload) #8
  %.not283 = icmp eq ptr %503, null
  br i1 %.not283, label %512, label %518

504:                                              ; preds = %514, %500, %498, %496, %494, %492, %490, %488, %486, %484, %482, %480, %478, %475, %472, %433, %413, %408, %403, %392, %387
  %505 = landingpad { ptr, i32 }
          cleanup
  br label %583

506:                                              ; preds = %394
  %507 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %83) #8
  br label %583

508:                                              ; preds = %415
  %509 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %84) #8
  br label %583

510:                                              ; preds = %424
  %511 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %85) #8
  br label %583

512:                                              ; preds = %502
  %.sroa.043.0.copyload = load ptr, ptr %69, align 8
  %.sroa.244.0.copyload = load ptr, ptr %.sroa.2105.0..sroa_idx, align 8
  %513 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIRK9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK9drawable1NS_18anyany_poly_traitsEEE, ptr %.sroa.043.0.copyload, ptr %.sroa.244.0.copyload)
          to label %518 unwind label %514

514:                                              ; preds = %512
  %515 = landingpad { ptr, i32 }
          catch ptr null
  %516 = extractvalue { ptr, i32 } %515, 0
  %517 = call ptr @__cxa_begin_catch(ptr %516) #8
  invoke void @__cxa_end_catch()
          to label %518 unwind label %504

518:                                              ; preds = %514, %512, %502
  %.0269 = phi i32 [ 1, %502 ], [ 1, %512 ], [ 0, %514 ]
  %.0 = phi i32 [ -1, %502 ], [ -1, %512 ], [ 0, %514 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #8
  br label %519

.thread:                                          ; preds = %308, %305
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #8
  br label %708

519:                                              ; preds = %518, %378, %374
  %.1270 = phi i32 [ %.0269, %518 ], [ 1, %378 ], [ 1, %374 ]
  %.1 = phi i32 [ %.0, %518 ], [ -1, %378 ], [ -1, %374 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %81) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %80) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %78) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %75) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %75) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %73) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %73) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #8
  %cond = icmp eq i32 %.1270, 0
  br i1 %cond, label %520, label %708

520:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %92) #8
  call void @_ZN6CircleC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %92) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %93) #8
  store i32 5, ptr %93, align 8, !tbaa !13
  %521 = getelementptr inbounds i8, ptr %93, i64 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %94) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %521, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %522 unwind label %588

522:                                              ; preds = %520
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %95) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES7_INS_6is_anyIS9_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEEPS9_(ptr noundef nonnull align 8 dereferenceable(16) %95, ptr noundef nonnull %92) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %96) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEEPKS9_(ptr noundef nonnull align 8 dereferenceable(16) %96, ptr noundef nonnull %92) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %97) #8
  call void @_ZN2aa8poly_refIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EES7_INS_14is_polymorphicIS9_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEERS9_(ptr noundef nonnull align 8 dereferenceable(16) %97, ptr noundef nonnull align 8 dereferenceable(40) %92) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %98) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %98, ptr noundef nonnull align 8 dereferenceable(40) %92) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %99) #8
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEEPKS9_(ptr noundef nonnull align 8 dereferenceable(16) %99, ptr noundef nonnull %93) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %100) #8
  call void @_ZN2aa14const_poly_refIJNS_9type_infoE4DrawEEC2I6CircleTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forIS9_JS1_S2_EEEEEiE4typeELi0EEERKS9_(ptr noundef nonnull align 8 dereferenceable(16) %100, ptr noundef nonnull align 8 dereferenceable(40) %93) #8
  %523 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %95) #8
  %524 = extractvalue { ptr, ptr } %523, 0
  %525 = extractvalue { ptr, ptr } %523, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_8poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %524, ptr %525, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %526 unwind label %590

526:                                              ; preds = %522
  %.sroa.039.0.copyload = load ptr, ptr %97, align 8
  %.sroa.240.0..sroa_idx = getelementptr inbounds i8, ptr %97, i64 8
  %.sroa.240.0.copyload = load ptr, ptr %.sroa.240.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_8poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %.sroa.039.0.copyload, ptr %.sroa.240.0.copyload, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %527 unwind label %590

527:                                              ; preds = %526
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %101) #8
  %528 = call { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %97) #8
  %529 = extractvalue { ptr, ptr } %528, 0
  store ptr %529, ptr %101, align 8
  %530 = getelementptr inbounds i8, ptr %101, i64 8
  %531 = extractvalue { ptr, ptr } %528, 1
  store ptr %531, ptr %530, align 8
  %532 = call { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %101) #8
  %533 = extractvalue { ptr, ptr } %532, 0
  %534 = extractvalue { ptr, ptr } %532, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_8poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %533, ptr %534, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %535 unwind label %592

535:                                              ; preds = %527
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #8
  %536 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %96) #8
  %537 = extractvalue { ptr, ptr } %536, 0
  %538 = extractvalue { ptr, ptr } %536, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %537, ptr %538, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %539 unwind label %590

539:                                              ; preds = %535
  %540 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %99) #8
  %541 = extractvalue { ptr, ptr } %540, 0
  %542 = extractvalue { ptr, ptr } %540, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %541, ptr %542, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %543 unwind label %590

543:                                              ; preds = %539
  %.sroa.031.0.copyload = load ptr, ptr %98, align 8
  %.sroa.232.0..sroa_idx = getelementptr inbounds i8, ptr %98, i64 8
  %.sroa.232.0.copyload = load ptr, ptr %.sroa.232.0..sroa_idx, align 8
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %.sroa.031.0.copyload, ptr %.sroa.232.0.copyload, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %544 unwind label %590

544:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %102) #8
  %545 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %98) #8
  %546 = extractvalue { ptr, ptr } %545, 0
  store ptr %546, ptr %102, align 8
  %547 = getelementptr inbounds i8, ptr %102, i64 8
  %548 = extractvalue { ptr, ptr } %545, 1
  store ptr %548, ptr %547, align 8
  %549 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %102) #8
  %550 = extractvalue { ptr, ptr } %549, 0
  %551 = extractvalue { ptr, ptr } %549, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %550, ptr %551, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %552 unwind label %594

552:                                              ; preds = %544
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %102) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %103) #8
  %553 = call { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16) %100) #8
  %554 = extractvalue { ptr, ptr } %553, 0
  store ptr %554, ptr %103, align 8
  %555 = getelementptr inbounds i8, ptr %103, i64 8
  %556 = extractvalue { ptr, ptr } %553, 1
  store ptr %556, ptr %555, align 8
  %557 = call { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16) %103) #8
  %558 = extractvalue { ptr, ptr } %557, 0
  %559 = extractvalue { ptr, ptr } %557, 1
  invoke void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa6invokeI4DrawEE, ptr %558, ptr %559, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %560 unwind label %596

560:                                              ; preds = %552
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #8
  %.sroa.025.0.copyload = load ptr, ptr %95, align 8
  %.sroa.226.0..sroa_idx = getelementptr inbounds i8, ptr %95, i64 8
  %.sroa.226.0.copyload = load ptr, ptr %.sroa.226.0..sroa_idx, align 8
  %561 = call noundef ptr @_ZNK2aa11any_cast_fnIK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEEPS2_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK6CircleNS_18anyany_poly_traitsEEE, ptr %.sroa.025.0.copyload, ptr %.sroa.226.0.copyload) #8
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %561, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %562 unwind label %590

562:                                              ; preds = %560
  %.sroa.023.0.copyload = load ptr, ptr %96, align 8
  %.sroa.224.0..sroa_idx = getelementptr inbounds i8, ptr %96, i64 8
  %.sroa.224.0.copyload = load ptr, ptr %.sroa.224.0..sroa_idx, align 8
  %563 = call noundef ptr @_ZNK2aa11any_cast_fnI6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEEPKS1_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI6CircleNS_18anyany_poly_traitsEEE, ptr %.sroa.023.0.copyload, ptr %.sroa.224.0.copyload) #8
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %563, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %564 unwind label %590

564:                                              ; preds = %562
  %.sroa.021.0.copyload = load ptr, ptr %99, align 8
  %.sroa.222.0..sroa_idx = getelementptr inbounds i8, ptr %99, i64 8
  %.sroa.222.0.copyload = load ptr, ptr %.sroa.222.0..sroa_idx, align 8
  %565 = call noundef ptr @_ZNK2aa11any_cast_fnIK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEEPS2_NS_14const_poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIK6CircleNS_18anyany_poly_traitsEEE, ptr %.sroa.021.0.copyload, ptr %.sroa.222.0.copyload) #8
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %565, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %566 unwind label %590

566:                                              ; preds = %564
  %.sroa.019.0.copyload = load ptr, ptr %97, align 8
  %.sroa.220.0.copyload = load ptr, ptr %.sroa.240.0..sroa_idx, align 8
  %567 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR6CircleNS_18anyany_poly_traitsEEE, ptr %.sroa.019.0.copyload, ptr %.sroa.220.0.copyload)
          to label %568 unwind label %590

568:                                              ; preds = %566
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %567, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %569 unwind label %590

569:                                              ; preds = %568
  %.sroa.017.0.copyload = load ptr, ptr %97, align 8
  %.sroa.218.0.copyload = load ptr, ptr %.sroa.240.0..sroa_idx, align 8
  %570 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIRK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK6CircleNS_18anyany_poly_traitsEEE, ptr %.sroa.017.0.copyload, ptr %.sroa.218.0.copyload)
          to label %571 unwind label %590

571:                                              ; preds = %569
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %570, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %572 unwind label %590

572:                                              ; preds = %571
  %.sroa.015.0.copyload = load ptr, ptr %98, align 8
  %.sroa.216.0.copyload = load ptr, ptr %.sroa.232.0..sroa_idx, align 8
  %573 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR6CircleNS_18anyany_poly_traitsEEE, ptr %.sroa.015.0.copyload, ptr %.sroa.216.0.copyload)
          to label %574 unwind label %590

574:                                              ; preds = %572
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %573, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %575 unwind label %590

575:                                              ; preds = %574
  %.sroa.013.0.copyload = load ptr, ptr %100, align 8
  %.sroa.214.0..sroa_idx = getelementptr inbounds i8, ptr %100, i64 8
  %.sroa.214.0.copyload = load ptr, ptr %.sroa.214.0..sroa_idx, align 8
  %576 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIRK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIRK6CircleNS_18anyany_poly_traitsEEE, ptr %.sroa.013.0.copyload, ptr %.sroa.214.0.copyload)
          to label %577 unwind label %590

577:                                              ; preds = %575
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %576, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %578 unwind label %590

578:                                              ; preds = %577
  %.sroa.011.0.copyload = load ptr, ptr %100, align 8
  %.sroa.212.0.copyload = load ptr, ptr %.sroa.214.0..sroa_idx, align 8
  %579 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR6CircleNS_18anyany_poly_traitsEEE, ptr %.sroa.011.0.copyload, ptr %.sroa.212.0.copyload)
          to label %580 unwind label %590

580:                                              ; preds = %578
  invoke void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40) %579, ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i32 noundef 150)
          to label %581 unwind label %590

581:                                              ; preds = %580
  %.sroa.09.0.copyload = load ptr, ptr %95, align 8
  %.sroa.210.0.copyload = load ptr, ptr %.sroa.226.0..sroa_idx, align 8
  %582 = call noundef ptr @_ZNK2aa11any_cast_fnI8TriangleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEEPS1_NS_8poly_ptrIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castI8TriangleNS_18anyany_poly_traitsEEE, ptr %.sroa.09.0.copyload, ptr %.sroa.210.0.copyload) #8
  %.not290 = icmp eq ptr %582, null
  br i1 %.not290, label %598, label %604

583:                                              ; preds = %510, %508, %506, %504
  %.pn284 = phi { ptr, i32 } [ %505, %504 ], [ %511, %510 ], [ %509, %508 ], [ %507, %506 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %82) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %81) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %80) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %79) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %78) #8
  br label %584

584:                                              ; preds = %583, %385, %383
  %.pn284.pn = phi { ptr, i32 } [ %.pn284, %583 ], [ %386, %385 ], [ %384, %383 ]
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %75) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %75) #8
  br label %585

585:                                              ; preds = %584, %381
  %.pn284.pn.pn = phi { ptr, i32 } [ %.pn284.pn, %584 ], [ %382, %381 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %74) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %73) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %73) #8
  br label %586

586:                                              ; preds = %585, %345
  %.pn284.pn.pn.pn = phi { ptr, i32 } [ %.pn284.pn.pn, %585 ], [ %346, %345 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %72) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %69) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %68) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %67) #8
  br label %587

587:                                              ; preds = %586, %324
  %.pn284.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn284.pn.pn.pn, %586 ], [ %325, %324 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %66) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #8
  br label %709

588:                                              ; preds = %520
  %589 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %94) #8
  br label %619

590:                                              ; preds = %600, %580, %578, %577, %575, %574, %572, %571, %569, %568, %566, %564, %562, %560, %543, %539, %535, %526, %522
  %591 = landingpad { ptr, i32 }
          cleanup
  br label %618

592:                                              ; preds = %527
  %593 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #8
  br label %618

594:                                              ; preds = %544
  %595 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %102) #8
  br label %618

596:                                              ; preds = %552
  %597 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %103) #8
  br label %618

598:                                              ; preds = %581
  %.sroa.07.0.copyload = load ptr, ptr %100, align 8
  %.sroa.28.0.copyload = load ptr, ptr %.sroa.214.0..sroa_idx, align 8
  %599 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK2aa11any_cast_fnIR8TriangleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1) @_ZN2aa8any_castIR8TriangleNS_18anyany_poly_traitsEEE, ptr %.sroa.07.0.copyload, ptr %.sroa.28.0.copyload)
          to label %604 unwind label %600

600:                                              ; preds = %598
  %601 = landingpad { ptr, i32 }
          catch ptr null
  %602 = extractvalue { ptr, i32 } %601, 0
  %603 = call ptr @__cxa_begin_catch(ptr %602) #8
  invoke void @__cxa_end_catch()
          to label %604 unwind label %590

604:                                              ; preds = %600, %598, %581
  %cond1 = phi i1 [ false, %581 ], [ false, %598 ], [ true, %600 ]
  %.4 = phi i32 [ -1, %581 ], [ -1, %598 ], [ %.1, %600 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %99) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %98) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %97) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %95) #8
  call void @_ZN6CircleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %93) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %93) #8
  call void @_ZN6CircleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %92) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %92) #8
  br i1 %cond1, label %605, label %708

605:                                              ; preds = %604
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %104) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %105) #8
  call void @_ZN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationISt8is_constIT_EESB_INS_6is_anyISD_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPSD_(ptr noundef nonnull align 8 dereferenceable(16) %106, ptr noundef nonnull %104) #8
  %606 = load ptr, ptr %106, align 8
  %607 = getelementptr inbounds i8, ptr %106, i64 8
  %608 = load ptr, ptr %607, align 8
  invoke void @_Z6FoobarN2aa8poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEE(ptr %606, ptr %608)
          to label %609 unwind label %620

609:                                              ; preds = %605
  call void @_ZN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEC2I9drawable1TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISD_JS1_S2_S6_EEEEEiE4typeELi0EEEPKSD_(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef nonnull %105) #8
  %610 = load ptr, ptr %107, align 8
  %611 = getelementptr inbounds i8, ptr %107, i64 8
  %612 = load ptr, ptr %611, align 8
  invoke void @_Z6FoobarN2aa14const_poly_ptrIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEE(ptr %610, ptr %612)
          to label %613 unwind label %620

613:                                              ; preds = %609
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %109) #8
  store i32 5, ptr %109, align 4, !tbaa !5
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S5_S6_EEEEEiE4typeELi0EEEOSC_(ptr noundef nonnull align 16 dereferenceable(32) %108, ptr noundef nonnull align 4 dereferenceable(4) %109) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %109) #8
  %614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, i64 noundef 32)
          to label %615 unwind label %622

615:                                              ; preds = %613
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %110) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %111) #8
  store i32 5, ptr %111, align 4, !tbaa !5
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S5_S6_EEEEEiE4typeELi0EEEOSC_(ptr noundef nonnull align 16 dereferenceable(32) %110, ptr noundef nonnull align 4 dereferenceable(4) %111) #8
  %616 = invoke noundef zeroext i1 @_ZNK2aa8equal_to6pluginINS_9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS4_Lm40EEES0_EEEEneERKS9_(ptr noundef nonnull align 1 dereferenceable(1) %108, ptr noundef nonnull align 1 dereferenceable(1) %110)
          to label %617 unwind label %624

617:                                              ; preds = %615
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEED2Ev(ptr noundef nonnull align 16 dereferenceable(32) %110) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %111) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #8
  br i1 %616, label %705, label %626

618:                                              ; preds = %596, %594, %592, %590
  %.pn291 = phi { ptr, i32 } [ %591, %590 ], [ %597, %596 ], [ %595, %594 ], [ %593, %592 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %100) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %99) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %98) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %97) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %96) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %95) #8
  call void @_ZN6CircleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %93) #8
  br label %619

619:                                              ; preds = %618, %588
  %.pn291.pn = phi { ptr, i32 } [ %.pn291, %618 ], [ %589, %588 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %93) #8
  call void @_ZN6CircleD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %92) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %92) #8
  br label %709

620:                                              ; preds = %609, %605
  %621 = landingpad { ptr, i32 }
          cleanup
  br label %707

622:                                              ; preds = %613
  %623 = landingpad { ptr, i32 }
          cleanup
  br label %706

624:                                              ; preds = %615
  %625 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEED2Ev(ptr noundef nonnull align 16 dereferenceable(32) %110) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %111) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %110) #8
  br label %706

626:                                              ; preds = %617
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %112) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %113) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %112, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %627 unwind label %681

627:                                              ; preds = %626
  %628 = invoke noundef nonnull align 16 dereferenceable(32) ptr @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEaSINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISI_JS3_S5_S6_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISI_E4typeEOSI_E16any_is_small_forISQ_EEiE4typeELi0EEERS7_SR_(ptr noundef nonnull align 16 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %629 unwind label %683

629:                                              ; preds = %627
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %114) #8
  store float 0.000000e+00, ptr %114, align 4, !tbaa !18
  %630 = invoke noundef nonnull align 16 dereferenceable(32) ptr @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEaSIfS7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S5_S6_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISC_E4typeEOSC_E16any_is_small_forISK_EEiE4typeELi0EEERS7_SL_(ptr noundef nonnull align 16 dereferenceable(32) %108, ptr noundef nonnull align 4 dereferenceable(4) %114)
          to label %631 unwind label %686

631:                                              ; preds = %629
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %114) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %115) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %116) #8
  store <4 x i32> <i32 1, i32 2, i32 3, i32 4>, ptr %116, align 16, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %117) #8
  call void @_ZNSaIiEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #8
  invoke void @_ZNSt6vectorIiSaIiEEC2ESt16initializer_listIiERKS0_(ptr noundef nonnull align 8 dereferenceable(24) %115, ptr nonnull %116, i64 4, ptr noundef nonnull align 1 dereferenceable(1) %117)
          to label %632 unwind label %688

632:                                              ; preds = %631
  %633 = invoke noundef nonnull align 16 dereferenceable(32) ptr @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEaSISt6vectorIiSaIiEES7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISF_JS3_S5_S6_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISF_E4typeEOSF_E16any_is_small_forISN_EEiE4typeELi0EEERS7_SO_(ptr noundef nonnull align 16 dereferenceable(32) %108, ptr noundef nonnull align 8 dereferenceable(24) %115)
          to label %634 unwind label %690

634:                                              ; preds = %632
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %115) #8
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %116) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %115) #8
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %118) #8
  call void @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %118) #8
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %119) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %120) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %121) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %635 unwind label %693

635:                                              ; preds = %634
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_4hashENS_8equal_toENS_9copy_withIS2_Lm40EEEEEC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISJ_JS3_S4_S5_S7_EEEEEiE4typeELi0EEEOSJ_(ptr noundef nonnull align 16 dereferenceable(64) %119, ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  %636 = invoke { ptr, i8 } @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EE6insertEOS9_(ptr noundef nonnull align 8 dereferenceable(56) %118, ptr noundef nonnull align 16 dereferenceable(64) %119)
          to label %637 unwind label %695

637:                                              ; preds = %635
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_4hashENS_8equal_toENS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %119) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %119) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %122) #8
  store i32 5, ptr %122, align 4, !tbaa !5
  %638 = invoke { ptr, i8 } @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EE7emplaceIJiEEESt4pairINSt8__detail14_Node_iteratorIS9_Lb1ELb0EEEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %118, ptr noundef nonnull align 4 dereferenceable(4) %122)
          to label %639 unwind label %698

639:                                              ; preds = %637
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %122) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %123) #8
  store double 5.000000e+00, ptr %123, align 8, !tbaa !20
  %640 = invoke { ptr, i8 } @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EE7emplaceIJdEEESt4pairINSt8__detail14_Node_iteratorIS9_Lb1ELb0EEEbEDpOT_(ptr noundef nonnull align 8 dereferenceable(56) %118, ptr noundef nonnull align 8 dereferenceable(8) %123)
          to label %641 unwind label %700

641:                                              ; preds = %639
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #8
  %642 = call i64 @time(ptr noundef null) #8
  %643 = trunc i64 %642 to i32
  call void @srand(i32 noundef %643) #8
  %644 = invoke noundef i64 @_Z16TESTconstructorsm(i64 noundef 0)
          to label %645 unwind label %702

645:                                              ; preds = %641
  %646 = invoke noundef i64 @_Z12TESTany_castm(i64 noundef 0)
          to label %647 unwind label %702

647:                                              ; preds = %645
  %648 = invoke noundef i64 @_Z13TESTany_cast2m(i64 noundef 0)
          to label %649 unwind label %702

649:                                              ; preds = %647
  %650 = invoke noundef i64 @_Z10TESTinvokem(i64 noundef 0)
          to label %651 unwind label %702

651:                                              ; preds = %649
  %652 = call noundef i64 @_Z11TESTcomparev()
  %653 = call noundef i64 @_Z43TESTtype_descriptor_and_plugins_interactionm(i64 noundef 0)
  %654 = invoke noundef i64 @_Z28TESTspecial_member_functionsm(i64 noundef 0)
          to label %655 unwind label %702

655:                                              ; preds = %651
  %656 = invoke noundef i64 @_Z16TESTptr_behaviorm(i64 noundef 0)
          to label %657 unwind label %702

657:                                              ; preds = %655
  %658 = invoke noundef i64 @_Z21TESTtransmutate_ctorsm(i64 noundef 0)
          to label %659 unwind label %702

659:                                              ; preds = %657
  %660 = invoke noundef i64 @_Z12TESTstatefulm(i64 noundef 0)
          to label %661 unwind label %702

661:                                              ; preds = %659
  %662 = invoke noundef i64 @_Z16TESTsubtable_ptrm(i64 noundef 0)
          to label %663 unwind label %702

663:                                              ; preds = %661
  %664 = invoke noundef i64 @_Z15TESTmaterializem(i64 noundef 0)
          to label %665 unwind label %702

665:                                              ; preds = %663
  %666 = invoke noundef i64 @_Z22TESTruntime_reflectionm(i64 noundef 0)
          to label %667 unwind label %702

667:                                              ; preds = %665
  %668 = add i64 %646, %644
  %669 = add i64 %668, %648
  %670 = add i64 %669, %650
  %671 = add i64 %670, %652
  %672 = add i64 %671, %653
  %673 = add i64 %672, %654
  %674 = add i64 %673, %656
  %675 = add i64 %674, %658
  %676 = add i64 %675, %660
  %677 = add i64 %676, %662
  %678 = add i64 %677, %664
  %679 = add i64 %678, %666
  %680 = trunc i64 %679 to i32
  call void @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %118) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %118) #8
  br label %705

681:                                              ; preds = %626
  %682 = landingpad { ptr, i32 }
          cleanup
  br label %685

683:                                              ; preds = %627
  %684 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %112) #8
  br label %685

685:                                              ; preds = %683, %681
  %.pn294 = phi { ptr, i32 } [ %684, %683 ], [ %682, %681 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %113) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %112) #8
  br label %706

686:                                              ; preds = %629
  %687 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %114) #8
  br label %706

688:                                              ; preds = %631
  %689 = landingpad { ptr, i32 }
          cleanup
  br label %692

690:                                              ; preds = %632
  %691 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %115) #8
  br label %692

692:                                              ; preds = %690, %688
  %.pn296 = phi { ptr, i32 } [ %691, %690 ], [ %689, %688 ]
  call void @_ZNSt15__new_allocatorIiED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %117) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %117) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %116) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %115) #8
  br label %706

693:                                              ; preds = %634
  %694 = landingpad { ptr, i32 }
          cleanup
  br label %697

695:                                              ; preds = %635
  %696 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_4hashENS_8equal_toENS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %119) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %120) #8
  br label %697

697:                                              ; preds = %695, %693
  %.pn298 = phi { ptr, i32 } [ %696, %695 ], [ %694, %693 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %121) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %120) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %119) #8
  br label %704

698:                                              ; preds = %637
  %699 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %122) #8
  br label %704

700:                                              ; preds = %639
  %701 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %123) #8
  br label %704

702:                                              ; preds = %665, %663, %661, %659, %657, %655, %651, %649, %647, %645, %641
  %703 = landingpad { ptr, i32 }
          cleanup
  br label %704

704:                                              ; preds = %702, %700, %698, %697
  %.pn300 = phi { ptr, i32 } [ %703, %702 ], [ %701, %700 ], [ %699, %698 ], [ %.pn298, %697 ]
  call void @_ZNSt13unordered_setIN2aa9basic_anyISaISt4byteELm40EJNS0_7destroyENS0_4hashENS0_8equal_toENS0_9copy_withIS3_Lm40EEEEEESt4hashIS9_ESt8equal_toIS9_ESaIS9_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %118) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %118) #8
  br label %706

705:                                              ; preds = %617, %667
  %.5 = phi i32 [ %680, %667 ], [ -100, %617 ]
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEED2Ev(ptr noundef nonnull align 16 dereferenceable(32) %108) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #8
  br label %708

706:                                              ; preds = %704, %692, %686, %685, %624, %622
  %.pn300.pn = phi { ptr, i32 } [ %.pn300, %704 ], [ %.pn296, %692 ], [ %687, %686 ], [ %.pn294, %685 ], [ %625, %624 ], [ %623, %622 ]
  call void @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEED2Ev(ptr noundef nonnull align 16 dereferenceable(32) %108) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #8
  br label %707

707:                                              ; preds = %706, %620
  %.pn300.pn.pn = phi { ptr, i32 } [ %.pn300.pn, %706 ], [ %621, %620 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %105) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %104) #8
  br label %709

708:                                              ; preds = %.thread321, %.thread, %604, %519, %705
  %.6 = phi i32 [ %.5, %705 ], [ %.4, %604 ], [ %.1, %519 ], [ -10, %.thread ], [ -1, %.thread321 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  call void @_ZNSt6vectorIN2aa8poly_refIJ4fooxEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %48) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %48) #8
  br label %716

709:                                              ; preds = %707, %619, %587, %322
  %.pn300.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn, %707 ], [ %.pn291.pn, %619 ], [ %.pn284.pn.pn.pn.pn, %587 ], [ %323, %322 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %62) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %61) #8
  br label %710

710:                                              ; preds = %709, %320
  %.pn300.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn, %709 ], [ %321, %320 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %60) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %59) #8
  br label %711

711:                                              ; preds = %710, %318
  %.pn300.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn, %710 ], [ %319, %318 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %58) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %57) #8
  br label %712

712:                                              ; preds = %711, %316
  %.pn300.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn, %711 ], [ %317, %316 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %55) #8
  br label %713

713:                                              ; preds = %712, %314
  %.pn300.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn, %712 ], [ %315, %314 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #8
  br label %714

714:                                              ; preds = %713, %312
  %.pn300.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn.pn, %713 ], [ %313, %312 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #8
  call void @_ZNSt6vectorIN2aa8poly_refIJ4fooxEEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %49) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %49) #8
  br label %715

715:                                              ; preds = %714, %257
  %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn.pn.pn, %714 ], [ %258, %257 ]
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %48) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %41) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %38) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %38) #8
  call void @_ZNSt13unordered_setIN2aa12descriptor_tESt4hashIS1_ESt8equal_toIS1_ESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %33) #8
  br label %719

716:                                              ; preds = %242, %244, %246, %248, %233, %236, %238, %240, %708
  %.7 = phi i32 [ %.6, %708 ], [ -16, %240 ], [ -16, %238 ], [ -16, %236 ], [ -16, %233 ], [ -17, %248 ], [ -17, %246 ], [ -17, %244 ], [ -17, %242 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %46) #8
  br label %717

717:                                              ; preds = %223, %227, %229, %231, %716
  %.8 = phi i32 [ %.7, %716 ], [ -15, %231 ], [ -15, %229 ], [ -15, %227 ], [ -15, %223 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  br label %718

718:                                              ; preds = %219, %.critedge, %717
  %.9 = phi i32 [ %.8, %717 ], [ -20, %.critedge ], [ -20, %219 ]
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %41) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %38) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %38) #8
  call void @_ZNSt13unordered_setIN2aa12descriptor_tESt4hashIS1_ESt8equal_toIS1_ESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %33) #8
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %33) #8
  br label %720

719:                                              ; preds = %715, %221
  %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn, %715 ], [ %222, %221 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  br label %721

720:                                              ; preds = %193, %718
  %.10 = phi i32 [ %.9, %718 ], [ -111, %193 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #8
  call void @"_ZZ4mainEN3$_2D2Ev"(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %19) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %19) #8
  br label %723

721:                                              ; preds = %719, %203, %197
  %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %719 ], [ %.pn277, %203 ], [ %198, %197 ]
  call void @"_ZZ4mainEN3$_2D2Ev"(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  br label %722

722:                                              ; preds = %721, %195
  %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %721 ], [ %196, %195 ]
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %19) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %19) #8
  br label %724

723:                                              ; preds = %182, %168, %720
  %.11 = phi i32 [ %.10, %720 ], [ -500, %168 ], [ -200, %182 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %5) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %5) #8
  br label %726

724:                                              ; preds = %722, %187, %178, %172
  %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %722 ], [ %.pn275, %187 ], [ %.pn, %178 ], [ %173, %172 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %5) #8
  br label %725

725:                                              ; preds = %724, %170
  %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %724 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %5) #8
  br label %727

726:                                              ; preds = %130, %723
  %.12 = phi i32 [ %.11, %723 ], [ -114, %130 ]
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %3) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %3) #8
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %1) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %1) #8
  ret i32 %.12

727:                                              ; preds = %725, %140
  %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %725 ], [ %141, %140 ]
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %3) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %3) #8
  br label %728

728:                                              ; preds = %727, %138, %136
  %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %727 ], [ %139, %138 ], [ %137, %136 ]
  call void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EED2Ev(ptr noundef nonnull align 16 dereferenceable(64) %1) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %1) #8
  resume { ptr, i32 } %.pn300.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn

729:                                              ; preds = %255
  unreachable
}

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #4

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EEC2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 16 dereferenceable(64) ptr @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EEaSIiS7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S4_S6_S4_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISC_E4typeEOSC_E16any_is_small_forISK_EEiE4typeELi0EEERS7_SL_(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI5printNS_9type_listIJEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES2_NS_9copy_withIS9_Lm40EEES2_EEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSG_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(64)) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEEC2I1xTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S4_S5_EEEEEiE4typeELi0EEEOSC_(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyE5KekabEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5Kekab11make_pluginIN2aa8stateful3refIJNS1_7destroyES_EEEFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiicES_E5KekabEic(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(1), i32 noundef, i8 noundef signext) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5Kekab11make_pluginIN2aa9basic_anyISaISt4byteELm40EJNS1_7destroyES_EEEFNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKiicES_E5KekabEic(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 1 dereferenceable(1), i32 noundef, i8 noundef signext) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEEC2IZ4mainE3$_0TnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISL_JS3_S5_S6_SD_SE_EEEEEiE4typeELi0EEEOSL_"(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare hidden noundef nonnull align 16 dereferenceable(64) ptr @"_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEEaSIZ4mainE3$_1SF_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISL_JS3_S5_S6_SD_SE_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISL_E4typeEOSL_E16any_is_small_forIST_EEiE4typeELi0EEERSF_SU_"(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI5visitIiENS_9type_listIJRKiEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyES3_S2_IfES2_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES2_IdEEEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSQ_S6_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_8poly_ptrIJDpT_EEES6_(ptr, ptr, ptr, ptr) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEEC2IiTnNSt9enable_ifIXsr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISB_JS3_S4_S5_EEEEEiE4typeELi0EEENS_23force_stable_pointers_tEOSB_(ptr noundef nonnull align 16 dereferenceable(64), ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoENS_4moveEEE18is_stable_pointersEv(ptr noundef nonnull align 16 dereferenceable(64)) local_unnamed_addr #3 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_8poly_ptrIJDpT_EEES6_(ptr, ptr, ptr, ptr) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTcmcldtfp_15type_descriptorELb1EENS_14const_poly_ptrIJDpT_EEES6_(ptr, ptr, ptr, ptr) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_fp0_ENS_14const_poly_ptrIJDpT_EEES6_(ptr, ptr, ptr, ptr) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaneIJNS_9type_infoEEEEDTnteqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr, ptr, ptr, ptr) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2aaeqIJNS_9type_infoEEEEDTeqfp_cvNS_14const_poly_ptrEfp0_ENS2_IJDpT_EEENS_8poly_ptrIJS5_EEE(ptr, ptr, ptr, ptr) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) local_unnamed_addr #3 align 2

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI5printNS_9type_listIJEEEEclIRNS_9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoES2_EEETnNSt9enable_ifIXsr6is_anyIT_EE5valueEiE4typeELi0EEEvOSF_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 16 dereferenceable(64)) local_unnamed_addr #0 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, i32 noundef) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_refIJ2M12M2NS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_4moveEEEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M2NS_4moveEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_refIJ2M2NS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_refIJ2M12M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2EEEvNS_14const_poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJ2M12M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_EEEvNS_14const_poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_refIJ2M2NS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M1NS_9type_listIJiEEEEclIJS2_2M2NS_9copy_withISaISt4byteELm40EEENS_4moveEEEEvNS_8poly_refIJDpT_EEEi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJ2M1S2_NS_9copy_withISaISt4byteELm40EEENS_4moveEEEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_NS_9copy_withISaISt4byteELm40EEEEEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI2M2NS_9type_listIJdiEEEEclIJS2_EEEvNS_8poly_refIJDpT_EEEdi(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, double noundef, i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJ2M2EEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa11any_cast_fnIK9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa11any_cast_fnIK9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa11any_cast_fnI9drawable0NS_18anyany_poly_traitsEEclIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa11any_cast_fnI9drawable1NS_18anyany_poly_traitsEEclIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEES1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEEadEv(ptr noundef nonnull align 16 dereferenceable(64)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK9drawable14drawEi(ptr noundef nonnull align 1 dereferenceable(1), i32 noundef) local_unnamed_addr #0 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE5DrawiNS_9copy_withISaISt4byteELm40EEEEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZNK9drawable04drawEi(ptr noundef nonnull align 1 dereferenceable(1), i32 noundef) local_unnamed_addr #0 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5DrawiNS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_8poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa8poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK2aa8noexport9invoke_fnI4DrawNS_9type_listIJRSoiEEEEclIJNS_9type_infoES2_EEEvNS_14const_poly_refIJDpT_EEES4_i(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr, ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_ptrIJNS_9type_infoE4DrawEEdeEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, ptr } @_ZNK2aa14const_poly_refIJNS_9type_infoE4DrawEEadEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK6Circle4drawERSoi(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES2_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIRK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES3_NS_8poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIR6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEERKS1_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNK2aa11any_cast_fnIRK6CircleNS_18anyany_poly_traitsEEclIJNS_9type_infoE4DrawEEES3_NS_14const_poly_refIJDpT_EEE(ptr noundef nonnull align 1 dereferenceable(1), ptr, ptr) local_unnamed_addr #0 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK2aa8equal_to6pluginINS_9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS4_Lm40EEES0_EEEEneERKS9_(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 16 dereferenceable(32) ptr @_ZN2aa9basic_anyISaISt4byteELm8EJNS_7destroyENS_9copy_withIS2_Lm40EEENS_8equal_toEEEaSIfS7_TnNSt9enable_ifIXaasr3stdE13conjunction_vISt8negationINS_14is_polymorphicIT_EEENS_9exist_forISC_JS3_S5_S6_EEEEoosrT0_8has_moveaasr3stdE26is_nothrow_constructible_vINSt5decayISC_E4typeEOSC_E16any_is_small_forISK_EEiE4typeELi0EEERS7_SL_(ptr noundef nonnull align 16 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #0 align 2

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_4hashENS_8equal_toENS_9copy_withIS2_Lm40EEEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

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

; Function Attrs: nounwind
declare void @srand(i32 noundef) local_unnamed_addr #7

; Function Attrs: nounwind
declare i64 @time(ptr noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyENS_9type_infoE5printEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @"_ZZ4mainEN3$_2D2Ev"(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5visitIiES4_IfES4_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES4_IdEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5KekabEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE8change_iNS_9type_infoEEED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2aa9basic_anyISaISt4byteELm40EJNS_7destroyE5printNS_9copy_withIS2_Lm40EEES4_EED2Ev(ptr noundef nonnull align 16 dereferenceable(64)) unnamed_addr #3 align 2

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

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"_ZTS1x", !6, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !7, i64 0}
!13 = !{!14, !6, i64 0}
!14 = !{!"_ZTS6Circle", !6, i64 0, !15, i64 8}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !16, i64 0, !17, i64 8, !7, i64 16}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!17 = !{!"long", !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"float", !7, i64 0}
!20 = !{!21, !21, i64 0}
!21 = !{!"double", !7, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass