; LLVM IR from Overload-Technologies/Overload :: Dependencies/assimp/code/AssetLib/FBX (FBXConverter)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.130" = type { %"struct.std::_Vector_base.131" }
%"struct.std::_Vector_base.131" = type { %"struct.std::_Vector_base<const Assimp::FBX::Connection *, std::allocator<const Assimp::FBX::Connection *>>::_Vector_impl" }
%"struct.std::_Vector_base<const Assimp::FBX::Connection *, std::allocator<const Assimp::FBX::Connection *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const Assimp::FBX::Connection *, std::allocator<const Assimp::FBX::Connection *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const Assimp::FBX::Connection *, std::allocator<const Assimp::FBX::Connection *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.411" = type { ptr }
%"struct.std::__detail::_Node_const_iterator.262" = type { %"struct.std::__detail::_Node_iterator_base.263" }
%"struct.std::__detail::_Node_iterator_base.263" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.195" = type { ptr }
%struct.aiString = type { i32, [1024 x i8] }
%"struct.std::_Rb_tree_iterator.399" = type { ptr }
%"class.std::allocator.72" = type { i8 }
%"struct.std::pair.415" = type { ptr, ptr }
%"struct.std::pair.412" = type <{ %"struct.std::_Rb_tree_iterator.399", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator.417" = type { ptr }
%"struct.std::pair.418" = type { %"class.std::__cxx11::basic_string", ptr }
%"class.__gnu_cxx::__normal_iterator.427" = type { ptr }
%"struct.std::_Rb_tree_iterator.408" = type { ptr }
%"struct.std::pair.431" = type { i64, ptr }
%"struct.std::pair.428" = type <{ %"struct.std::_Rb_tree_iterator.408", i8, [7 x i8] }>
%"class.Assimp::FBX::FBXConverter" = type <{ i32, [4 x i8], %"class.std::vector", %"class.std::vector.0", %"class.std::vector.5", %"class.std::vector.10", %"class.std::vector.15", %"class.std::vector.20", %"class.std::map", %"class.std::map.28", %"class.std::map.34", %"class.std::map.40", %"class.std::map.40", %"class.std::map.46", double, %"class.std::vector.52", ptr, ptr, i8, [7 x i8] }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<aiMesh *, std::allocator<aiMesh *>>::_Vector_impl" }
%"struct.std::_Vector_base<aiMesh *, std::allocator<aiMesh *>>::_Vector_impl" = type { %"struct.std::_Vector_base<aiMesh *, std::allocator<aiMesh *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<aiMesh *, std::allocator<aiMesh *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<aiMaterial *, std::allocator<aiMaterial *>>::_Vector_impl" }
%"struct.std::_Vector_base<aiMaterial *, std::allocator<aiMaterial *>>::_Vector_impl" = type { %"struct.std::_Vector_base<aiMaterial *, std::allocator<aiMaterial *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<aiMaterial *, std::allocator<aiMaterial *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = type { %"struct.std::_Vector_base<aiAnimation *, std::allocator<aiAnimation *>>::_Vector_impl" }
%"struct.std::_Vector_base<aiAnimation *, std::allocator<aiAnimation *>>::_Vector_impl" = type { %"struct.std::_Vector_base<aiAnimation *, std::allocator<aiAnimation *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<aiAnimation *, std::allocator<aiAnimation *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<aiLight *, std::allocator<aiLight *>>::_Vector_impl" }
%"struct.std::_Vector_base<aiLight *, std::allocator<aiLight *>>::_Vector_impl" = type { %"struct.std::_Vector_base<aiLight *, std::allocator<aiLight *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<aiLight *, std::allocator<aiLight *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<aiCamera *, std::allocator<aiCamera *>>::_Vector_impl" }
%"struct.std::_Vector_base<aiCamera *, std::allocator<aiCamera *>>::_Vector_impl" = type { %"struct.std::_Vector_base<aiCamera *, std::allocator<aiCamera *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<aiCamera *, std::allocator<aiCamera *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<aiTexture *, std::allocator<aiTexture *>>::_Vector_impl" }
%"struct.std::_Vector_base<aiTexture *, std::allocator<aiTexture *>>::_Vector_impl" = type { %"struct.std::_Vector_base<aiTexture *, std::allocator<aiTexture *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<aiTexture *, std::allocator<aiTexture *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<const Assimp::FBX::Material *, std::pair<const Assimp::FBX::Material *const, unsigned int>, std::_Select1st<std::pair<const Assimp::FBX::Material *const, unsigned int>>, std::less<const Assimp::FBX::Material *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const Assimp::FBX::Material *, std::pair<const Assimp::FBX::Material *const, unsigned int>, std::_Select1st<std::pair<const Assimp::FBX::Material *const, unsigned int>>, std::less<const Assimp::FBX::Material *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::map.28" = type { %"class.std::_Rb_tree.29" }
%"class.std::_Rb_tree.29" = type { %"struct.std::_Rb_tree<const Assimp::FBX::Video *, std::pair<const Assimp::FBX::Video *const, unsigned int>, std::_Select1st<std::pair<const Assimp::FBX::Video *const, unsigned int>>, std::less<const Assimp::FBX::Video *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const Assimp::FBX::Video *, std::pair<const Assimp::FBX::Video *const, unsigned int>, std::_Select1st<std::pair<const Assimp::FBX::Video *const, unsigned int>>, std::less<const Assimp::FBX::Video *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.34" = type { %"class.std::_Rb_tree.35" }
%"class.std::_Rb_tree.35" = type { %"struct.std::_Rb_tree<const Assimp::FBX::Geometry *, std::pair<const Assimp::FBX::Geometry *const, std::vector<unsigned int>>, std::_Select1st<std::pair<const Assimp::FBX::Geometry *const, std::vector<unsigned int>>>, std::less<const Assimp::FBX::Geometry *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const Assimp::FBX::Geometry *, std::pair<const Assimp::FBX::Geometry *const, std::vector<unsigned int>>, std::_Select1st<std::pair<const Assimp::FBX::Geometry *const, std::vector<unsigned int>>>, std::less<const Assimp::FBX::Geometry *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.40" = type { %"class.std::_Rb_tree.41" }
%"class.std::_Rb_tree.41" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, unsigned int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, unsigned int>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, unsigned int>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, unsigned int>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.46" = type { %"class.std::_Rb_tree.47" }
%"class.std::_Rb_tree.47" = type { %"struct.std::_Rb_tree<const std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, aiBone *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, aiBone *>>, std::less<const std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<const std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, aiBone *>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, aiBone *>>, std::less<const std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.52" = type { %"struct.std::_Vector_base.53" }
%"struct.std::_Vector_base.53" = type { %"struct.std::_Vector_base<aiSkeleton *, std::allocator<aiSkeleton *>>::_Vector_impl" }
%"struct.std::_Vector_base<aiSkeleton *, std::allocator<aiSkeleton *>>::_Vector_impl" = type { %"struct.std::_Vector_base<aiSkeleton *, std::allocator<aiSkeleton *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<aiSkeleton *, std::allocator<aiSkeleton *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.400" = type { %"class.std::__cxx11::basic_string", ptr }
%"struct.std::pair.409" = type { i64, ptr }
%struct.morphKeyData = type { %"class.std::vector.190", %"class.std::vector.264" }
%"class.std::vector.190" = type { %"struct.std::_Vector_base.191" }
%"struct.std::_Vector_base.191" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.264" = type { %"struct.std::_Vector_base.265" }
%"struct.std::_Vector_base.265" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZTIN6Assimp3FBX6ObjectE = external dso_local constant { ptr, ptr }, align 8
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZTIN6Assimp3FBX5ModelE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN6Assimp3FBX8GeometryE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.197 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZTIN6Assimp3FBX10BlendShapeE = external constant ptr
@.str.198 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [16 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN6Assimp13ASSIMP_itoa10EPcji(ptr noundef, i32 noundef, i32 noundef) #8

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Assimp3FBX12FBXConverter21ProcessMorphAnimDatasEPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS2_IlP12morphKeyDataSt4lessIlESaISt4pairIKlSA_EEESB_IS8_ESaISD_IKS8_SI_EEEPKNS0_17BlendShapeChannelEPKNS0_18AnimationCurveNodeE(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) #5 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %"class.std::vector.130", align 8
  %10 = alloca ptr, align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca %"struct.std::__detail::_Node_const_iterator.262", align 8
  %19 = alloca %"struct.std::__detail::_Node_const_iterator.262", align 8
  %20 = alloca %"struct.std::__detail::_Node_const_iterator.262", align 8
  %21 = alloca %"struct.std::__detail::_Node_const_iterator.262", align 8
  %22 = alloca i32, align 4
  %23 = alloca %"struct.std::__detail::_Node_const_iterator.262", align 8
  %24 = alloca %"struct.std::__detail::_Node_const_iterator.262", align 8
  %25 = alloca %"class.std::vector.130", align 8
  %26 = alloca ptr, align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %"class.std::vector.130", align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.195", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.195", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.195", align 8
  %40 = alloca i32, align 4
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.195", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.195", align 8
  %43 = alloca %struct.aiString, align 4
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca ptr, align 8
  %47 = alloca %"struct.std::_Rb_tree_iterator.399", align 8
  %48 = alloca %"class.std::__cxx11::basic_string", align 8
  %49 = alloca %"class.std::allocator.72", align 1
  %50 = alloca %"struct.std::_Rb_tree_iterator.399", align 8
  %51 = alloca %"struct.std::pair.415", align 8
  %52 = alloca ptr, align 8
  %53 = alloca %"struct.std::pair.412", align 8
  %54 = alloca ptr, align 8
  %55 = alloca %"struct.std::_Rb_tree_const_iterator.417", align 8
  %56 = alloca %"struct.std::_Rb_tree_const_iterator.417", align 8
  %57 = alloca %"struct.std::pair.418", align 8
  %58 = alloca ptr, align 8
  %59 = alloca ptr, align 8
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.427", align 8
  %64 = alloca %"class.__gnu_cxx::__normal_iterator.427", align 8
  %65 = alloca i64, align 8
  %66 = alloca ptr, align 8
  %67 = alloca %"struct.std::_Rb_tree_iterator.408", align 8
  %68 = alloca %"struct.std::_Rb_tree_iterator.408", align 8
  %69 = alloca %"struct.std::pair.431", align 8
  %70 = alloca %"struct.std::pair.428", align 8
  %71 = alloca float, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %72 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #10
  %73 = getelementptr inbounds %"class.Assimp::FBX::FBXConverter", ptr %72, i32 0, i32 17
  %74 = load ptr, ptr %73, align 8, !tbaa !9
  %75 = load ptr, ptr %7, align 8, !tbaa !5
  %76 = call noundef i64 @_ZNK6Assimp3FBX6Object2IDEv(ptr noundef nonnull align 8 dereferenceable(56) %75)
  call void @_ZNK6Assimp3FBX8Document31GetConnectionsBySourceSequencedEmPKc(ptr dead_on_unwind writable sret(%"class.std::vector.130") align 8 %9, ptr noundef nonnull align 8 dereferenceable(336) %74, i64 noundef %76, ptr noundef @.str.197)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  store ptr %9, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  %77 = load ptr, ptr %10, align 8, !tbaa !5
  %78 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #10
  %79 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.411", ptr %11, i32 0, i32 0
  store ptr %78, ptr %79, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  %80 = load ptr, ptr %10, align 8, !tbaa !5
  %81 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %80) #10
  %82 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.411", ptr %12, i32 0, i32 0
  store ptr %81, ptr %82, align 8
  br label %83

83:                                               ; preds = %515, %4
  %84 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  br i1 %84, label %86, label %85

85:                                               ; preds = %83
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  br label %518

86:                                               ; preds = %83
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  %88 = load ptr, ptr %87, align 8, !tbaa !5
  store ptr %88, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %89 = load ptr, ptr %14, align 8, !tbaa !5
  %90 = invoke noundef ptr @_ZNK6Assimp3FBX10Connection17DestinationObjectEv(ptr noundef nonnull align 8 dereferenceable(64) %89)
          to label %91 unwind label %95

91:                                               ; preds = %86
  %92 = icmp eq ptr %90, null
  br i1 %92, label %99, label %93

93:                                               ; preds = %91
  %94 = call ptr @__dynamic_cast(ptr %90, ptr @_ZTIN6Assimp3FBX6ObjectE, ptr @_ZTIN6Assimp3FBX10BlendShapeE, i64 0) #10
  br label %100

95:                                               ; preds = %86
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %16, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %17, align 4
  br label %517

99:                                               ; preds = %91
  br label %100

100:                                              ; preds = %99, %93
  %101 = phi ptr [ %94, %93 ], [ null, %99 ]
  store ptr %101, ptr %15, align 8, !tbaa !5
  %102 = load ptr, ptr %15, align 8, !tbaa !5
  %103 = icmp ne ptr %102, null
  br i1 %103, label %104, label %514

104:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  %105 = load ptr, ptr %15, align 8, !tbaa !5
  %106 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK6Assimp3FBX10BlendShape18BlendShapeChannelsEv(ptr noundef nonnull align 8 dereferenceable(128) %105)
          to label %107 unwind label %165

107:                                              ; preds = %104
  %108 = call ptr @_ZNKSt13unordered_setIPKN6Assimp3FBX17BlendShapeChannelESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %106) #10
  %109 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.262", ptr %19, i32 0, i32 0
  %110 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.263", ptr %109, i32 0, i32 0
  store ptr %108, ptr %110, align 8
  %111 = load ptr, ptr %15, align 8, !tbaa !5
  %112 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK6Assimp3FBX10BlendShape18BlendShapeChannelsEv(ptr noundef nonnull align 8 dereferenceable(128) %111)
          to label %113 unwind label %165

113:                                              ; preds = %107
  %114 = call ptr @_ZNKSt13unordered_setIPKN6Assimp3FBX17BlendShapeChannelESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %112) #10
  %115 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.262", ptr %20, i32 0, i32 0
  %116 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.263", ptr %115, i32 0, i32 0
  store ptr %114, ptr %116, align 8
  %117 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.262", ptr %19, i32 0, i32 0
  %118 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.263", ptr %117, i32 0, i32 0
  %119 = load ptr, ptr %118, align 8
  %120 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.262", ptr %20, i32 0, i32 0
  %121 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.263", ptr %120, i32 0, i32 0
  %122 = load ptr, ptr %121, align 8
  %123 = invoke ptr @_ZSt4findINSt8__detail20_Node_const_iteratorIPKN6Assimp3FBX17BlendShapeChannelELb1ELb0EEES6_ET_S8_S8_RKT0_(ptr %119, ptr %122, ptr noundef nonnull align 8 dereferenceable(8) %7)
          to label %124 unwind label %165

124:                                              ; preds = %113
  %125 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.262", ptr %18, i32 0, i32 0
  %126 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.263", ptr %125, i32 0, i32 0
  store ptr %123, ptr %126, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %127 = load ptr, ptr %15, align 8, !tbaa !5
  %128 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK6Assimp3FBX10BlendShape18BlendShapeChannelsEv(ptr noundef nonnull align 8 dereferenceable(128) %127)
          to label %129 unwind label %169

129:                                              ; preds = %124
  %130 = call ptr @_ZNKSt13unordered_setIPKN6Assimp3FBX17BlendShapeChannelESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %128) #10
  %131 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.262", ptr %21, i32 0, i32 0
  %132 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.263", ptr %131, i32 0, i32 0
  store ptr %130, ptr %132, align 8
  %133 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIPKN6Assimp3FBX17BlendShapeChannelELb0EEES8_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br i1 %133, label %134, label %512

134:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %135 = load ptr, ptr %15, align 8, !tbaa !5
  %136 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZNK6Assimp3FBX10BlendShape18BlendShapeChannelsEv(ptr noundef nonnull align 8 dereferenceable(128) %135)
          to label %137 unwind label %173

137:                                              ; preds = %134
  %138 = call ptr @_ZNKSt13unordered_setIPKN6Assimp3FBX17BlendShapeChannelESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %136) #10
  %139 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.262", ptr %23, i32 0, i32 0
  %140 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.263", ptr %139, i32 0, i32 0
  store ptr %138, ptr %140, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %24, ptr align 8 %18, i64 8, i1 false)
  %141 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.262", ptr %23, i32 0, i32 0
  %142 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.263", ptr %141, i32 0, i32 0
  %143 = load ptr, ptr %142, align 8
  %144 = getelementptr inbounds %"struct.std::__detail::_Node_const_iterator.262", ptr %24, i32 0, i32 0
  %145 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.263", ptr %144, i32 0, i32 0
  %146 = load ptr, ptr %145, align 8
  %147 = invoke noundef i64 @_ZSt8distanceINSt8__detail20_Node_const_iteratorIPKN6Assimp3FBX17BlendShapeChannelELb1ELb0EEEENSt15iterator_traitsIT_E15difference_typeES9_S9_(ptr %143, ptr %146)
          to label %148 unwind label %173

148:                                              ; preds = %137
  %149 = trunc i64 %147 to i32
  store i32 %149, ptr %22, align 4, !tbaa !71
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #10
  %150 = getelementptr inbounds %"class.Assimp::FBX::FBXConverter", ptr %72, i32 0, i32 17
  %151 = load ptr, ptr %150, align 8, !tbaa !9
  %152 = load ptr, ptr %15, align 8, !tbaa !5
  %153 = invoke noundef i64 @_ZNK6Assimp3FBX6Object2IDEv(ptr noundef nonnull align 8 dereferenceable(56) %152)
          to label %154 unwind label %177

154:                                              ; preds = %148
  invoke void @_ZNK6Assimp3FBX8Document31GetConnectionsBySourceSequencedEmPKc(ptr dead_on_unwind writable sret(%"class.std::vector.130") align 8 %25, ptr noundef nonnull align 8 dereferenceable(336) %151, i64 noundef %153, ptr noundef @.str.198)
          to label %155 unwind label %177

155:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  store ptr %25, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  %156 = load ptr, ptr %26, align 8, !tbaa !5
  %157 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %156) #10
  %158 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.411", ptr %27, i32 0, i32 0
  store ptr %157, ptr %158, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %159 = load ptr, ptr %26, align 8, !tbaa !5
  %160 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %159) #10
  %161 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.411", ptr %28, i32 0, i32 0
  store ptr %160, ptr %161, align 8
  br label %162

162:                                              ; preds = %506, %155
  %163 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  br i1 %163, label %181, label %164

164:                                              ; preds = %162
  store i32 4, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %509

165:                                              ; preds = %113, %107, %104
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %16, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %17, align 4
  br label %513

169:                                              ; preds = %124
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %16, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %513

173:                                              ; preds = %137, %134
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %16, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %17, align 4
  br label %511

177:                                              ; preds = %154, %148
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %16, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %17, align 4
  br label %510

181:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  %183 = load ptr, ptr %182, align 8, !tbaa !5
  store ptr %183, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %184 = load ptr, ptr %29, align 8, !tbaa !5
  %185 = invoke noundef ptr @_ZNK6Assimp3FBX10Connection17DestinationObjectEv(ptr noundef nonnull align 8 dereferenceable(64) %184)
          to label %186 unwind label %190

186:                                              ; preds = %181
  %187 = icmp eq ptr %185, null
  br i1 %187, label %194, label %188

188:                                              ; preds = %186
  %189 = call ptr @__dynamic_cast(ptr %185, ptr @_ZTIN6Assimp3FBX6ObjectE, ptr @_ZTIN6Assimp3FBX8GeometryE, i64 0) #10
  br label %195

190:                                              ; preds = %181
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %16, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %17, align 4
  br label %508

194:                                              ; preds = %186
  br label %195

195:                                              ; preds = %194, %188
  %196 = phi ptr [ %189, %188 ], [ null, %194 ]
  store ptr %196, ptr %30, align 8, !tbaa !5
  %197 = load ptr, ptr %30, align 8, !tbaa !5
  %198 = icmp ne ptr %197, null
  br i1 %198, label %199, label %505

199:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #10
  %200 = getelementptr inbounds %"class.Assimp::FBX::FBXConverter", ptr %72, i32 0, i32 17
  %201 = load ptr, ptr %200, align 8, !tbaa !9
  %202 = load ptr, ptr %30, align 8, !tbaa !5
  %203 = invoke noundef i64 @_ZNK6Assimp3FBX6Object2IDEv(ptr noundef nonnull align 8 dereferenceable(56) %202)
          to label %204 unwind label %215

204:                                              ; preds = %199
  invoke void @_ZNK6Assimp3FBX8Document31GetConnectionsBySourceSequencedEmPKc(ptr dead_on_unwind writable sret(%"class.std::vector.130") align 8 %31, ptr noundef nonnull align 8 dereferenceable(336) %201, i64 noundef %203, ptr noundef @.str.1)
          to label %205 unwind label %215

205:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #10
  store ptr %31, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #10
  %206 = load ptr, ptr %32, align 8, !tbaa !5
  %207 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #10
  %208 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.411", ptr %33, i32 0, i32 0
  store ptr %207, ptr %208, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %209 = load ptr, ptr %32, align 8, !tbaa !5
  %210 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %209) #10
  %211 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.411", ptr %34, i32 0, i32 0
  store ptr %210, ptr %211, align 8
  br label %212

212:                                              ; preds = %500, %205
  %213 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #10
  br i1 %213, label %219, label %214

214:                                              ; preds = %212
  store i32 6, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  br label %503

215:                                              ; preds = %204, %199
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %16, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %17, align 4
  br label %504

219:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  %220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  %221 = load ptr, ptr %220, align 8, !tbaa !5
  store ptr %221, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  %222 = load ptr, ptr %35, align 8, !tbaa !5
  %223 = invoke noundef ptr @_ZNK6Assimp3FBX10Connection17DestinationObjectEv(ptr noundef nonnull align 8 dereferenceable(64) %222)
          to label %224 unwind label %228

224:                                              ; preds = %219
  %225 = icmp eq ptr %223, null
  br i1 %225, label %232, label %226

226:                                              ; preds = %224
  %227 = call ptr @__dynamic_cast(ptr %223, ptr @_ZTIN6Assimp3FBX6ObjectE, ptr @_ZTIN6Assimp3FBX5ModelE, i64 0) #10
  br label %233

228:                                              ; preds = %219
  %229 = landingpad { ptr, i32 }
          cleanup
  %230 = extractvalue { ptr, i32 } %229, 0
  store ptr %230, ptr %16, align 8
  %231 = extractvalue { ptr, i32 } %229, 1
  store i32 %231, ptr %17, align 4
  br label %502

232:                                              ; preds = %224
  br label %233

233:                                              ; preds = %232, %226
  %234 = phi ptr [ %227, %226 ], [ null, %232 ]
  store ptr %234, ptr %36, align 8, !tbaa !5
  %235 = load ptr, ptr %36, align 8, !tbaa !5
  %236 = icmp ne ptr %235, null
  br i1 %236, label %237, label %499

237:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  %238 = load ptr, ptr %36, align 8, !tbaa !5
  %239 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX5Model11GetGeometryEv(ptr noundef nonnull align 8 dereferenceable(208) %238)
          to label %240 unwind label %313

240:                                              ; preds = %237
  %241 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX8GeometryESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %239) #10
  %242 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.195", ptr %38, i32 0, i32 0
  store ptr %241, ptr %242, align 8
  %243 = load ptr, ptr %36, align 8, !tbaa !5
  %244 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX5Model11GetGeometryEv(ptr noundef nonnull align 8 dereferenceable(208) %243)
          to label %245 unwind label %313

245:                                              ; preds = %240
  %246 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX8GeometryESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %244) #10
  %247 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.195", ptr %39, i32 0, i32 0
  store ptr %246, ptr %247, align 8
  %248 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.195", ptr %38, i32 0, i32 0
  %249 = load ptr, ptr %248, align 8
  %250 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.195", ptr %39, i32 0, i32 0
  %251 = load ptr, ptr %250, align 8
  %252 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX8GeometryESt6vectorIS6_SaIS6_EEEES6_ET_SD_SD_RKT0_(ptr %249, ptr %251, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %253 unwind label %313

253:                                              ; preds = %245
  %254 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.195", ptr %37, i32 0, i32 0
  store ptr %252, ptr %254, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  %255 = load ptr, ptr %36, align 8, !tbaa !5
  %256 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX5Model11GetGeometryEv(ptr noundef nonnull align 8 dereferenceable(208) %255)
          to label %257 unwind label %317

257:                                              ; preds = %253
  %258 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX8GeometryESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %256) #10
  %259 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.195", ptr %41, i32 0, i32 0
  store ptr %258, ptr %259, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %42, ptr align 8 %37, i64 8, i1 false), !tbaa.struct !72
  %260 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.195", ptr %41, i32 0, i32 0
  %261 = load ptr, ptr %260, align 8
  %262 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.195", ptr %42, i32 0, i32 0
  %263 = load ptr, ptr %262, align 8
  %264 = invoke noundef i64 @_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX8GeometryESt6vectorIS6_SaIS6_EEEEENSt15iterator_traitsIT_E15difference_typeESE_SE_(ptr %261, ptr %263)
          to label %265 unwind label %317

265:                                              ; preds = %257
  %266 = trunc i64 %264 to i32
  store i32 %266, ptr %40, align 4, !tbaa !71
  call void @llvm.lifetime.start.p0(i64 1028, ptr %43) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #10
  %267 = load ptr, ptr %36, align 8, !tbaa !5
  %268 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX6Object4NameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(56) %267)
          to label %269 unwind label %321

269:                                              ; preds = %265
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %268, ptr noundef @.str.199)
          to label %270 unwind label %321

270:                                              ; preds = %269
  invoke void @_ZN6Assimp3FBX12FBXConverter11FixNodeNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(489) %72, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %271 unwind label %325

271:                                              ; preds = %270
  invoke void @_ZN8aiStringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 4 dereferenceable(1028) %43, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %272 unwind label %329

272:                                              ; preds = %271
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #10
  %273 = getelementptr inbounds %struct.aiString, ptr %43, i32 0, i32 1
  %274 = getelementptr inbounds [1024 x i8], ptr %273, i64 0, i64 0
  %275 = getelementptr inbounds %struct.aiString, ptr %43, i32 0, i32 0
  %276 = load i32, ptr %275, align 4, !tbaa !73
  %277 = zext i32 %276 to i64
  %278 = getelementptr inbounds i8, ptr %274, i64 %277
  %279 = load i32, ptr %40, align 4, !tbaa !71
  %280 = invoke noundef i32 @_ZN6Assimp13ASSIMP_itoa10EPcji(ptr noundef %278, i32 noundef 1023, i32 noundef %279)
          to label %281 unwind label %335

281:                                              ; preds = %272
  %282 = add i32 1, %280
  %283 = getelementptr inbounds %struct.aiString, ptr %43, i32 0, i32 0
  store i32 %282, ptr %283, align 4, !tbaa !73
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %284 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %48) #10
  %285 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %43)
          to label %286 unwind label %339

286:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef %285, ptr noundef nonnull align 1 dereferenceable(1) %49)
          to label %287 unwind label %343

287:                                              ; preds = %286
  %288 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS_IlP12morphKeyDataSt4lessIlESaISt4pairIKlS7_EEES8_IS5_ESaISA_IKS5_SF_EEE4findERSH_(ptr noundef nonnull align 8 dereferenceable(48) %284, ptr noundef nonnull align 8 dereferenceable(32) %48)
          to label %289 unwind label %347

289:                                              ; preds = %287
  %290 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.399", ptr %47, i32 0, i32 0
  store ptr %288, ptr %290, align 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  %291 = load ptr, ptr %6, align 8, !tbaa !5
  %292 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS_IlP12morphKeyDataSt4lessIlESaISt4pairIKlS7_EEES8_IS5_ESaISA_IKS5_SF_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %291) #10
  %293 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.399", ptr %50, i32 0, i32 0
  store ptr %292, ptr %293, align 8
  %294 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPSt3mapIlP12morphKeyDataSt4lessIlESaIS0_IKlSA_EEEEESL_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %50) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  br i1 %294, label %295, label %361

295:                                              ; preds = %289
  %296 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #11
          to label %297 unwind label %353

297:                                              ; preds = %295
  call void @llvm.memset.p0.i64(ptr align 16 %296, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %296) #10
  store ptr %296, ptr %46, align 8, !tbaa !5
  %298 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  %299 = invoke noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %43)
          to label %300 unwind label %357

300:                                              ; preds = %297
  store ptr %299, ptr %52, align 8, !tbaa !5
  %301 = invoke { ptr, ptr } @_ZSt9make_pairIPKcRPSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS4_EEEES7_INSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSE_INSF_IT0_E4typeEE6__typeEEOSG_OSL_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %302 unwind label %357

302:                                              ; preds = %300
  %303 = getelementptr inbounds { ptr, ptr }, ptr %51, i32 0, i32 0
  %304 = extractvalue { ptr, ptr } %301, 0
  store ptr %304, ptr %303, align 8
  %305 = getelementptr inbounds { ptr, ptr }, ptr %51, i32 0, i32 1
  %306 = extractvalue { ptr, ptr } %301, 1
  store ptr %306, ptr %305, align 8
  %307 = invoke { ptr, i8 } @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS_IlP12morphKeyDataSt4lessIlESaISt4pairIKlS7_EEES8_IS5_ESaISA_IKS5_SF_EEE6insertISA_IPKcSF_EEENSt9enable_ifIXsr16is_constructibleISI_T_EE5valueESA_ISt17_Rb_tree_iteratorISI_EbEE4typeEOSQ_(ptr noundef nonnull align 8 dereferenceable(48) %298, ptr noundef nonnull align 8 dereferenceable(16) %51)
          to label %308 unwind label %357

308:                                              ; preds = %302
  %309 = getelementptr inbounds { ptr, i8 }, ptr %53, i32 0, i32 0
  %310 = extractvalue { ptr, i8 } %307, 0
  store ptr %310, ptr %309, align 8
  %311 = getelementptr inbounds { ptr, i8 }, ptr %53, i32 0, i32 1
  %312 = extractvalue { ptr, i8 } %307, 1
  store i8 %312, ptr %311, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #10
  br label %365

313:                                              ; preds = %245, %240, %237
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %16, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %17, align 4
  br label %498

317:                                              ; preds = %257, %253
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %16, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %17, align 4
  br label %497

321:                                              ; preds = %269, %265
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %16, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %17, align 4
  br label %334

325:                                              ; preds = %270
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %16, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %17, align 4
  br label %333

329:                                              ; preds = %271
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %16, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  br label %333

333:                                              ; preds = %329, %325
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #10
  br label %334

334:                                              ; preds = %333, %321
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #10
  br label %496

335:                                              ; preds = %272
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %16, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %17, align 4
  br label %496

339:                                              ; preds = %281
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %16, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %17, align 4
  br label %352

343:                                              ; preds = %286
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %16, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %17, align 4
  br label %351

347:                                              ; preds = %287
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %16, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  br label %351

351:                                              ; preds = %347, %343
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %49) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #10
  br label %352

352:                                              ; preds = %351, %339
  call void @llvm.lifetime.end.p0(i64 32, ptr %48) #10
  br label %495

353:                                              ; preds = %295
  %354 = landingpad { ptr, i32 }
          cleanup
  %355 = extractvalue { ptr, i32 } %354, 0
  store ptr %355, ptr %16, align 8
  %356 = extractvalue { ptr, i32 } %354, 1
  store i32 %356, ptr %17, align 4
  br label %495

357:                                              ; preds = %302, %300, %297
  %358 = landingpad { ptr, i32 }
          cleanup
  %359 = extractvalue { ptr, i32 } %358, 0
  store ptr %359, ptr %16, align 8
  %360 = extractvalue { ptr, i32 } %358, 1
  store i32 %360, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #10
  br label %495

361:                                              ; preds = %289
  %362 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPSt3mapIlP12morphKeyDataSt4lessIlESaIS0_IKlSA_EEEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  %363 = getelementptr inbounds %"struct.std::pair.400", ptr %362, i32 0, i32 1
  %364 = load ptr, ptr %363, align 8, !tbaa !75
  store ptr %364, ptr %46, align 8, !tbaa !5
  br label %365

365:                                              ; preds = %361, %308
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  %366 = load ptr, ptr %8, align 8, !tbaa !5
  %367 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK6Assimp3FBX18AnimationCurveNode6CurvesB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168) %366)
          to label %368 unwind label %378

368:                                              ; preds = %365
  store ptr %367, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  %369 = load ptr, ptr %54, align 8, !tbaa !5
  %370 = call ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveESt4lessIS5_ESaISt4pairIKS5_SA_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %369) #10
  %371 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.417", ptr %55, i32 0, i32 0
  store ptr %370, ptr %371, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  %372 = load ptr, ptr %54, align 8, !tbaa !5
  %373 = call ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveESt4lessIS5_ESaISt4pairIKS5_SA_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %372) #10
  %374 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.417", ptr %56, i32 0, i32 0
  store ptr %373, ptr %374, align 8
  br label %375

375:                                              ; preds = %489, %368
  %376 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEEESG_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #10
  br i1 %376, label %382, label %377

377:                                              ; preds = %375
  store i32 8, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  br label %494

378:                                              ; preds = %365
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %16, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %17, align 4
  br label %493

382:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 40, ptr %57) #10
  %383 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEEC2IKS5_SA_TnNSt9enable_ifIXaaclsr6_PCCFPIT_T0_EE18_ConstructiblePairISF_SG_EEclsr6_PCCFPISF_SG_EE26_ImplicitlyConvertiblePairISF_SG_EEEbE4typeELb1EEERKS_ISF_SG_E(ptr noundef nonnull align 8 dereferenceable(40) %57, ptr noundef nonnull align 8 dereferenceable(40) %383)
          to label %384 unwind label %407

384:                                              ; preds = %382
  %385 = getelementptr inbounds %"struct.std::pair.418", ptr %57, i32 0, i32 0
  %386 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %385, ptr noundef @.str.200)
          to label %387 unwind label %411

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

388:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #10
  %389 = getelementptr inbounds %"struct.std::pair.418", ptr %57, i32 0, i32 1
  %390 = load ptr, ptr %389, align 8, !tbaa !79
  store ptr %390, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %391 = load ptr, ptr %58, align 8, !tbaa !5
  %392 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX14AnimationCurve7GetKeysEv(ptr noundef nonnull align 8 dereferenceable(152) %391)
          to label %393 unwind label %415

393:                                              ; preds = %388
  store ptr %392, ptr %59, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %394 = load ptr, ptr %58, align 8, !tbaa !5
  %395 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX14AnimationCurve9GetValuesEv(ptr noundef nonnull align 8 dereferenceable(152) %394)
          to label %396 unwind label %419

396:                                              ; preds = %393
  store ptr %395, ptr %60, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  store i32 0, ptr %61, align 4, !tbaa !71
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  %397 = load ptr, ptr %59, align 8, !tbaa !5
  store ptr %397, ptr %62, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #10
  %398 = load ptr, ptr %62, align 8, !tbaa !5
  %399 = call ptr @_ZNKSt6vectorIlSaIlEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %398) #10
  %400 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.427", ptr %63, i32 0, i32 0
  store ptr %399, ptr %400, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %401 = load ptr, ptr %62, align 8, !tbaa !5
  %402 = call ptr @_ZNKSt6vectorIlSaIlEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %401) #10
  %403 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.427", ptr %64, i32 0, i32 0
  store ptr %402, ptr %403, align 8
  br label %404

404:                                              ; preds = %478, %396
  %405 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKlSt6vectorIlSaIlEEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  br i1 %405, label %423, label %406

406:                                              ; preds = %404
  store i32 10, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  br label %485

407:                                              ; preds = %382
  %408 = landingpad { ptr, i32 }
          cleanup
  %409 = extractvalue { ptr, i32 } %408, 0
  store ptr %409, ptr %16, align 8
  %410 = extractvalue { ptr, i32 } %408, 1
  store i32 %410, ptr %17, align 4
  br label %492

411:                                              ; preds = %384
  %412 = landingpad { ptr, i32 }
          cleanup
  %413 = extractvalue { ptr, i32 } %412, 0
  store ptr %413, ptr %16, align 8
  %414 = extractvalue { ptr, i32 } %412, 1
  store i32 %414, ptr %17, align 4
  br label %491

415:                                              ; preds = %388
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %16, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %17, align 4
  br label %487

419:                                              ; preds = %393
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %16, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %17, align 4
  br label %486

423:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %424 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKlSt6vectorIlSaIlEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  %425 = load i64, ptr %424, align 8, !tbaa !81
  store i64 %425, ptr %65, align 8, !tbaa !81
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #10
  %426 = load ptr, ptr %46, align 8, !tbaa !5
  %427 = invoke ptr @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEE4findERS5_(ptr noundef nonnull align 8 dereferenceable(48) %426, ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %428 unwind label %450

428:                                              ; preds = %423
  %429 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.408", ptr %67, i32 0, i32 0
  store ptr %427, ptr %429, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  %430 = load ptr, ptr %46, align 8, !tbaa !5
  %431 = call ptr @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %430) #10
  %432 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.408", ptr %68, i32 0, i32 0
  store ptr %431, ptr %432, align 8
  %433 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKlP12morphKeyDataEES7_(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br i1 %433, label %434, label %458

434:                                              ; preds = %428
  %435 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 48) #11
          to label %436 unwind label %450

436:                                              ; preds = %434
  call void @llvm.memset.p0.i64(ptr align 16 %435, i8 0, i64 48, i1 false)
  call void @_ZN12morphKeyDataC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %435) #10
  store ptr %435, ptr %66, align 8, !tbaa !5
  %437 = load ptr, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #10
  %438 = invoke { i64, ptr } @_ZSt9make_pairIRlRP12morphKeyDataESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %439 unwind label %454

439:                                              ; preds = %436
  %440 = getelementptr inbounds { i64, ptr }, ptr %69, i32 0, i32 0
  %441 = extractvalue { i64, ptr } %438, 0
  store i64 %441, ptr %440, align 8
  %442 = getelementptr inbounds { i64, ptr }, ptr %69, i32 0, i32 1
  %443 = extractvalue { i64, ptr } %438, 1
  store ptr %443, ptr %442, align 8
  %444 = invoke { ptr, i8 } @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEE6insertIS4_IlS1_EEENSt9enable_ifIXsr16is_constructibleIS6_T_EE5valueES4_ISt17_Rb_tree_iteratorIS6_EbEE4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(48) %437, ptr noundef nonnull align 8 dereferenceable(16) %69)
          to label %445 unwind label %454

445:                                              ; preds = %439
  %446 = getelementptr inbounds { ptr, i8 }, ptr %70, i32 0, i32 0
  %447 = extractvalue { ptr, i8 } %444, 0
  store ptr %447, ptr %446, align 8
  %448 = getelementptr inbounds { ptr, i8 }, ptr %70, i32 0, i32 1
  %449 = extractvalue { ptr, i8 } %444, 1
  store i8 %449, ptr %448, align 8
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #10
  br label %462

450:                                              ; preds = %462, %434, %423
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %16, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %17, align 4
  br label %484

454:                                              ; preds = %439, %436
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %16, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #10
  br label %484

458:                                              ; preds = %428
  %459 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKlP12morphKeyDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %67) #10
  %460 = getelementptr inbounds %"struct.std::pair.409", ptr %459, i32 0, i32 1
  %461 = load ptr, ptr %460, align 8, !tbaa !82
  store ptr %461, ptr %66, align 8, !tbaa !5
  br label %462

462:                                              ; preds = %458, %445
  %463 = load ptr, ptr %66, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.morphKeyData, ptr %463, i32 0, i32 0
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %464, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %465 unwind label %450

465:                                              ; preds = %462
  %466 = load ptr, ptr %66, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.morphKeyData, ptr %466, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %468 = load ptr, ptr %60, align 8, !tbaa !5
  %469 = load i32, ptr %61, align 4, !tbaa !71
  %470 = zext i32 %469 to i64
  %471 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIfSaIfEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef %470)
          to label %472 unwind label %480

472:                                              ; preds = %465
  %473 = load float, ptr %471, align 4, !tbaa !84
  %474 = fdiv float %473, 1.000000e+02
  store float %474, ptr %71, align 4, !tbaa !84
  invoke void @_ZNSt6vectorIfSaIfEE9push_backEOf(ptr noundef nonnull align 8 dereferenceable(24) %467, ptr noundef nonnull align 4 dereferenceable(4) %71)
          to label %475 unwind label %480

475:                                              ; preds = %472
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  %476 = load i32, ptr %61, align 4, !tbaa !71
  %477 = add i32 %476, 1
  store i32 %477, ptr %61, align 4, !tbaa !71
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  br label %478

478:                                              ; preds = %475
  %479 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKlSt6vectorIlSaIlEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %63) #10
  br label %404

480:                                              ; preds = %472, %465
  %481 = landingpad { ptr, i32 }
          cleanup
  %482 = extractvalue { ptr, i32 } %481, 0
  store ptr %482, ptr %16, align 8
  %483 = extractvalue { ptr, i32 } %481, 1
  store i32 %483, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %484

484:                                              ; preds = %480, %454, %450
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %486

485:                                              ; preds = %406
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #10
  br label %488

486:                                              ; preds = %484, %419
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  br label %487

487:                                              ; preds = %486, %415
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #10
  br label %491

488:                                              ; preds = %485, %387
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %57) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %57) #10
  br label %489

489:                                              ; preds = %488
  %490 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #10
  br label %375

491:                                              ; preds = %487, %411
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %57) #10
  br label %492

492:                                              ; preds = %491, %407
  call void @llvm.lifetime.end.p0(i64 40, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  br label %493

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

494:                                              ; preds = %377
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 1028, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %499

495:                                              ; preds = %493, %357, %353, %352
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  br label %496

496:                                              ; preds = %495, %335, %334
  call void @llvm.lifetime.end.p0(i64 1028, ptr %43) #10
  br label %497

497:                                              ; preds = %496, %317
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %498

498:                                              ; preds = %497, %313
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %502

499:                                              ; preds = %494, %233
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  br label %500

500:                                              ; preds = %499
  %501 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #10
  br label %212

502:                                              ; preds = %498, %228
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #10
  br label %504

503:                                              ; preds = %214
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #10
  br label %505

504:                                              ; preds = %502, %215
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #10
  br label %508

505:                                              ; preds = %503, %195
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %506

506:                                              ; preds = %505
  %507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  br label %162

508:                                              ; preds = %504, %190
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  br label %510

509:                                              ; preds = %164
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %512

510:                                              ; preds = %508, %177
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #10
  br label %511

511:                                              ; preds = %510, %173
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %513

512:                                              ; preds = %509, %129
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  br label %514

513:                                              ; preds = %511, %169, %165
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  br label %517

514:                                              ; preds = %512, %100
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  br label %515

515:                                              ; preds = %514
  %516 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #10
  br label %83

517:                                              ; preds = %513, %95
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #10
  br label %519

518:                                              ; preds = %85
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #10
  ret void

519:                                              ; preds = %517
  %520 = load ptr, ptr %16, align 8
  %521 = load i32, ptr %17, align 4
  %522 = insertvalue { ptr, i32 } poison, ptr %520, 0
  %523 = insertvalue { ptr, i32 } %522, i32 %521, 1
  resume { ptr, i32 } %523
}

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

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

declare void @_ZNK6Assimp3FBX8Document31GetConnectionsBySourceSequencedEmPKc(ptr dead_on_unwind writable sret(%"class.std::vector.130") align 8, ptr noundef nonnull align 8 dereferenceable(336), i64 noundef, ptr noundef) #9

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

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

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

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

declare noundef ptr @_ZNK6Assimp3FBX10Connection17DestinationObjectEv(ptr noundef nonnull align 8 dereferenceable(64)) #9

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZSt8distanceINSt8__detail20_Node_const_iteratorIPKN6Assimp3FBX17BlendShapeChannelELb1ELb0EEEENSt15iterator_traitsIT_E15difference_typeES9_S9_(ptr, ptr) #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX8GeometryESt6vectorIS6_SaIS6_EEEEENSt15iterator_traitsIT_E15difference_typeESE_SE_(ptr, ptr) #8

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS_IlP12morphKeyDataSt4lessIlESaISt4pairIKlS7_EEES8_IS5_ESaISA_IKS5_SF_EEE6insertISA_IPKcSF_EEENSt9enable_ifIXsr16is_constructibleISI_T_EE5valueESA_ISt17_Rb_tree_iteratorISI_EbEE4typeEOSQ_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, ptr } @_ZSt9make_pairIPKcRPSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS4_EEEES7_INSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSE_INSF_IT0_E4typeEE6__typeEEOSG_OSL_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

declare noundef nonnull align 8 dereferenceable(48) ptr @_ZNK6Assimp3FBX18AnimationCurveNode6CurvesB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168)) #9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEE6insertIS4_IlS1_EEENSt9enable_ifIXsr16is_constructibleIS6_T_EE5valueES4_ISt17_Rb_tree_iteratorIS6_EbEE4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i64, ptr } @_ZSt9make_pairIRlRP12morphKeyDataESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #5

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 480}
!10 = !{!"_ZTSN6Assimp3FBX12FBXConverterE", !11, i64 0, !12, i64 8, !16, i64 32, !20, i64 56, !24, i64 80, !28, i64 104, !32, i64 128, !36, i64 152, !45, i64 200, !50, i64 248, !55, i64 296, !55, i64 344, !60, i64 392, !65, i64 440, !66, i64 448, !6, i64 472, !6, i64 480, !70, i64 488}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIP6aiMeshSaIS1_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIP6aiMeshSaIS1_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIP6aiMeshSaIS1_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIP6aiMeshSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!"_ZTSSt6vectorIP10aiMaterialSaIS1_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIP10aiMaterialSaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIP10aiMaterialSaIS1_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIP10aiMaterialSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"_ZTSSt6vectorIP11aiAnimationSaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIP11aiAnimationSaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIP11aiAnimationSaIS1_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIP11aiAnimationSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"_ZTSSt6vectorIP7aiLightSaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIP7aiLightSaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIP7aiLightSaIS1_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIP7aiLightSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTSSt6vectorIP8aiCameraSaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIP8aiCameraSaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIP8aiCameraSaIS1_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIP8aiCameraSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorIP9aiTextureSaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIP9aiTextureSaIS1_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIP9aiTextureSaIS1_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIP9aiTextureSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSSt3mapIPKN6Assimp3FBX8MaterialEjSt4lessIS4_ESaISt4pairIKS4_jEEE", !37, i64 0}
!37 = !{!"_ZTSSt8_Rb_treeIPKN6Assimp3FBX8MaterialESt4pairIKS4_jESt10_Select1stIS7_ESt4lessIS4_ESaIS7_EE", !38, i64 0}
!38 = !{!"_ZTSNSt8_Rb_treeIPKN6Assimp3FBX8MaterialESt4pairIKS4_jESt10_Select1stIS7_ESt4lessIS4_ESaIS7_EE13_Rb_tree_implISB_Lb1EEE", !39, i64 0, !41, i64 8}
!39 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPKN6Assimp3FBX8MaterialEEE", !40, i64 0}
!40 = !{!"_ZTSSt4lessIPKN6Assimp3FBX8MaterialEE"}
!41 = !{!"_ZTSSt15_Rb_tree_header", !42, i64 0, !44, i64 32}
!42 = !{!"_ZTSSt18_Rb_tree_node_base", !43, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!43 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!44 = !{!"long", !7, i64 0}
!45 = !{!"_ZTSSt3mapIPKN6Assimp3FBX5VideoEjSt4lessIS4_ESaISt4pairIKS4_jEEE", !46, i64 0}
!46 = !{!"_ZTSSt8_Rb_treeIPKN6Assimp3FBX5VideoESt4pairIKS4_jESt10_Select1stIS7_ESt4lessIS4_ESaIS7_EE", !47, i64 0}
!47 = !{!"_ZTSNSt8_Rb_treeIPKN6Assimp3FBX5VideoESt4pairIKS4_jESt10_Select1stIS7_ESt4lessIS4_ESaIS7_EE13_Rb_tree_implISB_Lb1EEE", !48, i64 0, !41, i64 8}
!48 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPKN6Assimp3FBX5VideoEEE", !49, i64 0}
!49 = !{!"_ZTSSt4lessIPKN6Assimp3FBX5VideoEE"}
!50 = !{!"_ZTSSt3mapIPKN6Assimp3FBX8GeometryESt6vectorIjSaIjEESt4lessIS4_ESaISt4pairIKS4_S7_EEE", !51, i64 0}
!51 = !{!"_ZTSSt8_Rb_treeIPKN6Assimp3FBX8GeometryESt4pairIKS4_St6vectorIjSaIjEEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE", !52, i64 0}
!52 = !{!"_ZTSNSt8_Rb_treeIPKN6Assimp3FBX8GeometryESt4pairIKS4_St6vectorIjSaIjEEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !53, i64 0, !41, i64 8}
!53 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPKN6Assimp3FBX8GeometryEEE", !54, i64 0}
!54 = !{!"_ZTSSt4lessIPKN6Assimp3FBX8GeometryEE"}
!55 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjSt4lessIS5_ESaISt4pairIKS5_jEEE", !56, i64 0}
!56 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_jESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !57, i64 0}
!57 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_jESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !58, i64 0, !41, i64 8}
!58 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !59, i64 0}
!59 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!60 = !{!"_ZTSSt3mapIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiBoneSt4lessIS6_ESaISt4pairIS6_S8_EEE", !61, i64 0}
!61 = !{!"_ZTSSt8_Rb_treeIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIS6_P6aiBoneESt10_Select1stISA_ESt4lessIS6_ESaISA_EE", !62, i64 0}
!62 = !{!"_ZTSNSt8_Rb_treeIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIS6_P6aiBoneESt10_Select1stISA_ESt4lessIS6_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !63, i64 0, !41, i64 8}
!63 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !64, i64 0}
!64 = !{!"_ZTSSt4lessIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!65 = !{!"double", !7, i64 0}
!66 = !{!"_ZTSSt6vectorIP10aiSkeletonSaIS1_EE", !67, i64 0}
!67 = !{!"_ZTSSt12_Vector_baseIP10aiSkeletonSaIS1_EE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseIP10aiSkeletonSaIS1_EE12_Vector_implE", !69, i64 0}
!69 = !{!"_ZTSNSt12_Vector_baseIP10aiSkeletonSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!70 = !{!"bool", !7, i64 0}
!71 = !{!11, !11, i64 0}
!72 = !{i64 0, i64 8, !5}
!73 = !{!74, !11, i64 0}
!74 = !{!"_ZTS8aiString", !11, i64 0, !7, i64 4}
!75 = !{!76, !6, i64 32}
!76 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPSt3mapIlP12morphKeyDataSt4lessIlESaIS_IKlS9_EEEE", !77, i64 0, !6, i64 32}
!77 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !78, i64 0, !44, i64 8, !7, i64 16}
!78 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!79 = !{!80, !6, i64 32}
!80 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEE", !77, i64 0, !6, i64 32}
!81 = !{!44, !44, i64 0}
!82 = !{!83, !6, i64 8}
!83 = !{!"_ZTSSt4pairIKlP12morphKeyDataE", !44, i64 0, !6, i64 8}
!84 = !{!85, !85, i64 0}
!85 = !{!"float", !7, i64 0}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.130" = type { %"struct.std::_Vector_base.131" }
%"struct.std::_Vector_base.131" = type { %"struct.std::_Vector_base<const Assimp::FBX::Connection *, std::allocator<const Assimp::FBX::Connection *>>::_Vector_impl" }
%"struct.std::_Vector_base<const Assimp::FBX::Connection *, std::allocator<const Assimp::FBX::Connection *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const Assimp::FBX::Connection *, std::allocator<const Assimp::FBX::Connection *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const Assimp::FBX::Connection *, std::allocator<const Assimp::FBX::Connection *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.411" = type { ptr }
%"struct.std::__detail::_Node_const_iterator.262" = type { %"struct.std::__detail::_Node_iterator_base.263" }
%"struct.std::__detail::_Node_iterator_base.263" = type { ptr }
%struct.aiString = type { i32, [1024 x i8] }
%"struct.std::_Rb_tree_iterator.399" = type { ptr }
%"class.std::allocator.72" = type { i8 }
%"struct.std::pair.415" = type { ptr, ptr }
%"struct.std::_Rb_tree_const_iterator.417" = type { ptr }
%"struct.std::pair.418" = type { %"class.std::__cxx11::basic_string", ptr }
%"class.__gnu_cxx::__normal_iterator.427" = type { ptr }
%"struct.std::_Rb_tree_iterator.408" = type { ptr }
%"struct.std::pair.431" = type { i64, ptr }

@_ZTIN6Assimp3FBX6ObjectE = external dso_local constant { ptr, ptr }, align 8
@.str.1 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZTIN6Assimp3FBX5ModelE = external dso_local constant { ptr, ptr, ptr }, align 8
@_ZTIN6Assimp3FBX8GeometryE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.197 = external hidden unnamed_addr constant [9 x i8], align 1
@_ZTIN6Assimp3FBX10BlendShapeE = external constant ptr
@.str.198 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.199 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.200 = external hidden unnamed_addr constant [16 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

; 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 nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZN6Assimp13ASSIMP_itoa10EPcji(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Assimp3FBX12FBXConverter21ProcessMorphAnimDatasEPSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS2_IlP12morphKeyDataSt4lessIlESaISt4pairIKlSA_EEESB_IS8_ESaISD_IKS8_SI_EEEPKNS0_17BlendShapeChannelEPKNS0_18AnimationCurveNodeE(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef %1, ptr noundef nonnull %2, ptr noundef %3) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca %"class.std::vector.130", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %9 = alloca %"struct.std::__detail::_Node_const_iterator.262", align 8
  %10 = alloca %"struct.std::__detail::_Node_const_iterator.262", align 8
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::vector.130", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %15 = alloca ptr, align 8
  %16 = alloca %"class.std::vector.130", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.411", align 8
  %19 = alloca %struct.aiString, align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"struct.std::_Rb_tree_iterator.399", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator.72", align 1
  %26 = alloca %"struct.std::_Rb_tree_iterator.399", align 8
  %27 = alloca %"struct.std::pair.415", align 8
  %28 = alloca ptr, align 8
  %29 = alloca %"struct.std::_Rb_tree_const_iterator.417", align 8
  %30 = alloca %"struct.std::_Rb_tree_const_iterator.417", align 8
  %31 = alloca %"struct.std::pair.418", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator.427", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.427", align 8
  %34 = alloca i64, align 8
  %35 = alloca ptr, align 8
  %36 = alloca %"struct.std::_Rb_tree_iterator.408", align 8
  %37 = alloca %"struct.std::_Rb_tree_iterator.408", align 8
  %38 = alloca %"struct.std::pair.431", align 8
  %39 = alloca float, align 4
  store ptr %2, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #9
  %40 = getelementptr inbounds i8, ptr %0, i64 480
  %41 = load ptr, ptr %40, align 8, !tbaa !9
  %42 = tail call noundef i64 @_ZNK6Assimp3FBX6Object2IDEv(ptr noundef nonnull align 8 dereferenceable(56) %2)
  call void @_ZNK6Assimp3FBX8Document31GetConnectionsBySourceSequencedEmPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.130") align 8 %6, ptr noundef nonnull align 8 dereferenceable(336) %41, i64 noundef %42, ptr noundef nonnull @.str.197)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %43 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  store ptr %43, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  %44 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  store ptr %44, ptr %8, align 8
  %45 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  br i1 %45, label %.lr.ph106, label %._crit_edge107

.lr.ph106:                                        ; preds = %4
  %46 = getelementptr inbounds i8, ptr %19, i64 4
  %47 = getelementptr inbounds i8, ptr %27, i64 8
  %48 = getelementptr inbounds i8, ptr %31, i64 32
  %49 = getelementptr inbounds i8, ptr %38, i64 8
  br label %50

._crit_edge107:                                   ; preds = %.thread, %4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #9
  ret void

50:                                               ; preds = %.lr.ph106, %.thread
  %51 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  %52 = load ptr, ptr %51, align 8, !tbaa !5
  %53 = invoke noundef ptr @_ZNK6Assimp3FBX10Connection17DestinationObjectEv(ptr noundef nonnull align 8 dereferenceable(64) %52)
          to label %54 unwind label %56

54:                                               ; preds = %50
  %55 = icmp eq ptr %53, null
  br i1 %55, label %.thread, label %58

56:                                               ; preds = %50
  %57 = landingpad { ptr, i32 }
          cleanup
  br label %258

58:                                               ; preds = %54
  %59 = call ptr @__dynamic_cast(ptr nonnull %53, ptr nonnull @_ZTIN6Assimp3FBX6ObjectE, ptr nonnull @_ZTIN6Assimp3FBX10BlendShapeE, i64 0) #9
  %.not = icmp eq ptr %59, null
  br i1 %.not, label %.thread, label %60

60:                                               ; preds = %58
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  %61 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK6Assimp3FBX10BlendShape18BlendShapeChannelsEv(ptr noundef nonnull align 8 dereferenceable(128) %59)
  %62 = call ptr @_ZNKSt13unordered_setIPKN6Assimp3FBX17BlendShapeChannelESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %61) #9
  %63 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK6Assimp3FBX10BlendShape18BlendShapeChannelsEv(ptr noundef nonnull align 8 dereferenceable(128) %59)
  %64 = call ptr @_ZNKSt13unordered_setIPKN6Assimp3FBX17BlendShapeChannelESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %63) #9
  %65 = invoke ptr @_ZSt4findINSt8__detail20_Node_const_iteratorIPKN6Assimp3FBX17BlendShapeChannelELb1ELb0EEES6_ET_S8_S8_RKT0_(ptr %62, ptr %64, ptr noundef nonnull align 8 dereferenceable(8) %5)
          to label %66 unwind label %82

66:                                               ; preds = %60
  store ptr %65, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #9
  %67 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK6Assimp3FBX10BlendShape18BlendShapeChannelsEv(ptr noundef nonnull align 8 dereferenceable(128) %59)
  %68 = call ptr @_ZNKSt13unordered_setIPKN6Assimp3FBX17BlendShapeChannelESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %67) #9
  store ptr %68, ptr %10, align 8
  %69 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIPKN6Assimp3FBX17BlendShapeChannelELb0EEES8_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  br i1 %69, label %70, label %254

70:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #9
  %71 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK6Assimp3FBX10BlendShape18BlendShapeChannelsEv(ptr noundef nonnull align 8 dereferenceable(128) %59)
  %72 = call ptr @_ZNKSt13unordered_setIPKN6Assimp3FBX17BlendShapeChannelESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(56) %71) #9
  %.sroa.028.0.copyload = load ptr, ptr %9, align 8
  %73 = invoke noundef i64 @_ZSt8distanceINSt8__detail20_Node_const_iteratorIPKN6Assimp3FBX17BlendShapeChannelELb1ELb0EEEENSt15iterator_traitsIT_E15difference_typeES9_S9_(ptr %72, ptr %.sroa.028.0.copyload)
          to label %74 unwind label %84

74:                                               ; preds = %70
  %75 = trunc i64 %73 to i32
  store i32 %75, ptr %11, align 4, !tbaa !71
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #9
  %76 = load ptr, ptr %40, align 8, !tbaa !9
  %77 = call noundef i64 @_ZNK6Assimp3FBX6Object2IDEv(ptr noundef nonnull align 8 dereferenceable(56) %59)
  invoke void @_ZNK6Assimp3FBX8Document31GetConnectionsBySourceSequencedEmPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.130") align 8 %12, ptr noundef nonnull align 8 dereferenceable(336) %76, i64 noundef %77, ptr noundef nonnull @.str.198)
          to label %78 unwind label %86

78:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %79 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #9
  store ptr %79, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #9
  %80 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #9
  store ptr %80, ptr %14, align 8
  %81 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #9
  br i1 %81, label %.lr.ph103, label %._crit_edge104

._crit_edge104:                                   ; preds = %.thread91, %78
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #9
  br label %254

82:                                               ; preds = %60
  %83 = landingpad { ptr, i32 }
          cleanup
  br label %255

84:                                               ; preds = %70
  %85 = landingpad { ptr, i32 }
          cleanup
  br label %253

86:                                               ; preds = %74
  %87 = landingpad { ptr, i32 }
          cleanup
  br label %252

.lr.ph103:                                        ; preds = %78, %.thread91
  %88 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  %89 = load ptr, ptr %88, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  %90 = invoke noundef ptr @_ZNK6Assimp3FBX10Connection17DestinationObjectEv(ptr noundef nonnull align 8 dereferenceable(64) %89)
          to label %91 unwind label %93

91:                                               ; preds = %.lr.ph103
  %92 = icmp eq ptr %90, null
  br i1 %92, label %.thread91, label %95

93:                                               ; preds = %.lr.ph103
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %251

95:                                               ; preds = %91
  %96 = call ptr @__dynamic_cast(ptr nonnull %90, ptr nonnull @_ZTIN6Assimp3FBX6ObjectE, ptr nonnull @_ZTIN6Assimp3FBX8GeometryE, i64 0) #9
  store ptr %96, ptr %15, align 8, !tbaa !5
  %.not70 = icmp eq ptr %96, null
  br i1 %.not70, label %.thread91, label %97

97:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #9
  %98 = load ptr, ptr %40, align 8, !tbaa !9
  %99 = call noundef i64 @_ZNK6Assimp3FBX6Object2IDEv(ptr noundef nonnull align 8 dereferenceable(56) %96)
  invoke void @_ZNK6Assimp3FBX8Document31GetConnectionsBySourceSequencedEmPKc(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.130") align 8 %16, ptr noundef nonnull align 8 dereferenceable(336) %98, i64 noundef %99, ptr noundef nonnull @.str.1)
          to label %100 unwind label %104

100:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #9
  %101 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #9
  store ptr %101, ptr %17, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  %102 = call ptr @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #9
  store ptr %102, ptr %18, align 8
  %103 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  br i1 %103, label %.lr.ph100, label %._crit_edge101

._crit_edge101:                                   ; preds = %.thread93, %100
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #9
  br label %.thread91

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

.lr.ph100:                                        ; preds = %100, %.thread93
  %106 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  %107 = load ptr, ptr %106, align 8, !tbaa !5
  %108 = invoke noundef ptr @_ZNK6Assimp3FBX10Connection17DestinationObjectEv(ptr noundef nonnull align 8 dereferenceable(64) %107)
          to label %109 unwind label %111

109:                                              ; preds = %.lr.ph100
  %110 = icmp eq ptr %108, null
  br i1 %110, label %.thread93, label %113

111:                                              ; preds = %.lr.ph100
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %247

113:                                              ; preds = %109
  %114 = call ptr @__dynamic_cast(ptr nonnull %108, ptr nonnull @_ZTIN6Assimp3FBX6ObjectE, ptr nonnull @_ZTIN6Assimp3FBX5ModelE, i64 0) #9
  %.not71 = icmp eq ptr %114, null
  br i1 %.not71, label %.thread93, label %115

115:                                              ; preds = %113
  %116 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX5Model11GetGeometryEv(ptr noundef nonnull align 8 dereferenceable(208) %114)
  %117 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX8GeometryESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %116) #9
  %118 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX5Model11GetGeometryEv(ptr noundef nonnull align 8 dereferenceable(208) %114)
  %119 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX8GeometryESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %118) #9
  %120 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX8GeometryESt6vectorIS6_SaIS6_EEEES6_ET_SD_SD_RKT0_(ptr %117, ptr %119, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %121 unwind label %152

121:                                              ; preds = %115
  %122 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX5Model11GetGeometryEv(ptr noundef nonnull align 8 dereferenceable(208) %114)
  %123 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX8GeometryESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %122) #9
  %124 = invoke noundef i64 @_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX8GeometryESt6vectorIS6_SaIS6_EEEEENSt15iterator_traitsIT_E15difference_typeESE_SE_(ptr %123, ptr %120)
          to label %125 unwind label %154

125:                                              ; preds = %121
  %126 = trunc i64 %124 to i32
  call void @llvm.lifetime.start.p0(i64 1028, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #9
  %127 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX6Object4NameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(56) %114)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull @.str.199)
          to label %128 unwind label %156

128:                                              ; preds = %125
  invoke void @_ZN6Assimp3FBX12FBXConverter11FixNodeNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %129 unwind label %158

129:                                              ; preds = %128
  call void @_ZN8aiStringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 4 dereferenceable(1028) %19, ptr noundef nonnull align 8 dereferenceable(32) %20)
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  %130 = load i32, ptr %19, align 4, !tbaa !72
  %131 = zext i32 %130 to i64
  %132 = getelementptr inbounds i8, ptr %46, i64 %131
  %133 = invoke noundef i32 @_ZN6Assimp13ASSIMP_itoa10EPcji(ptr noundef nonnull %132, i32 noundef 1023, i32 noundef %126)
          to label %134 unwind label %161

134:                                              ; preds = %129
  %135 = add i32 %133, 1
  store i32 %135, ptr %19, align 4, !tbaa !72
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #9
  %136 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %19)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef %136, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %137 unwind label %163

137:                                              ; preds = %134
  %138 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS_IlP12morphKeyDataSt4lessIlESaISt4pairIKlS7_EEES8_IS5_ESaISA_IKS5_SF_EEE4findERSH_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %139 unwind label %165

139:                                              ; preds = %137
  store ptr %138, ptr %23, align 8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  %140 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS_IlP12morphKeyDataSt4lessIlESaISt4pairIKlS7_EEES8_IS5_ESaISA_IKS5_SF_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %1) #9
  store ptr %140, ptr %26, align 8
  %141 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPSt3mapIlP12morphKeyDataSt4lessIlESaIS0_IKlSA_EEEEESL_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  br i1 %141, label %142, label %172

142:                                              ; preds = %139
  %143 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #10
          to label %144 unwind label %168

144:                                              ; preds = %142
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %143, i8 0, i64 48, i1 false)
  call void @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %143) #9
  store ptr %143, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #9
  %145 = call noundef ptr @_ZNK8aiString5C_StrEv(ptr noundef nonnull align 4 dereferenceable(1028) %19)
  store ptr %145, ptr %28, align 8, !tbaa !5
  %146 = invoke { ptr, ptr } @_ZSt9make_pairIPKcRPSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS4_EEEES7_INSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSE_INSF_IT0_E4typeEE6__typeEEOSG_OSL_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %147 unwind label %170

147:                                              ; preds = %144
  %148 = extractvalue { ptr, ptr } %146, 0
  store ptr %148, ptr %27, align 8
  %149 = extractvalue { ptr, ptr } %146, 1
  store ptr %149, ptr %47, align 8
  %150 = invoke { ptr, i8 } @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS_IlP12morphKeyDataSt4lessIlESaISt4pairIKlS7_EEES8_IS5_ESaISA_IKS5_SF_EEE6insertISA_IPKcSF_EEENSt9enable_ifIXsr16is_constructibleISI_T_EE5valueESA_ISt17_Rb_tree_iteratorISI_EbEE4typeEOSQ_(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %151 unwind label %170

151:                                              ; preds = %147
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #9
  br label %176

152:                                              ; preds = %115
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %247

154:                                              ; preds = %121
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %247

156:                                              ; preds = %125
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %160

158:                                              ; preds = %128
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #9
  br label %160

160:                                              ; preds = %158, %156
  %.pn = phi { ptr, i32 } [ %159, %158 ], [ %157, %156 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  br label %244

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

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

165:                                              ; preds = %137
  %166 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  br label %167

167:                                              ; preds = %165, %163
  %.pn73 = phi { ptr, i32 } [ %166, %165 ], [ %164, %163 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #9
  br label %243

168:                                              ; preds = %142
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %243

170:                                              ; preds = %147, %144
  %171 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #9
  br label %243

172:                                              ; preds = %139
  %173 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPSt3mapIlP12morphKeyDataSt4lessIlESaIS0_IKlSA_EEEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #9
  %174 = getelementptr inbounds i8, ptr %173, i64 32
  %175 = load ptr, ptr %174, align 8, !tbaa !74
  store ptr %175, ptr %22, align 8, !tbaa !5
  br label %176

176:                                              ; preds = %172, %151
  %177 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK6Assimp3FBX18AnimationCurveNode6CurvesB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168) %3)
          to label %178 unwind label %182

178:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #9
  %179 = call ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveESt4lessIS5_ESaISt4pairIKS5_SA_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %177) #9
  store ptr %179, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #9
  %180 = call ptr @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveESt4lessIS5_ESaISt4pairIKS5_SA_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %177) #9
  store ptr %180, ptr %30, align 8
  %181 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEEESG_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  br i1 %181, label %.lr.ph97, label %._crit_edge98

._crit_edge98:                                    ; preds = %239, %178
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %19) #9
  br label %.thread93

182:                                              ; preds = %176
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %243

.lr.ph97:                                         ; preds = %178, %239
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %31) #9
  %184 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  invoke void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEEC2IKS5_SA_TnNSt9enable_ifIXaaclsr6_PCCFPIT_T0_EE18_ConstructiblePairISF_SG_EEclsr6_PCCFPISF_SG_EE26_ImplicitlyConvertiblePairISF_SG_EEEbE4typeELb1EEERKS_ISF_SG_E(ptr noundef nonnull align 8 dereferenceable(40) %31, ptr noundef nonnull align 8 dereferenceable(40) %184)
          to label %185 unwind label %194

185:                                              ; preds = %.lr.ph97
  %186 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.200)
  br i1 %186, label %187, label %239

187:                                              ; preds = %185
  %188 = load ptr, ptr %48, align 8, !tbaa !78
  %189 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX14AnimationCurve7GetKeysEv(ptr noundef nonnull align 8 dereferenceable(152) %188)
  %190 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK6Assimp3FBX14AnimationCurve9GetValuesEv(ptr noundef nonnull align 8 dereferenceable(152) %188)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #9
  %191 = call ptr @_ZNKSt6vectorIlSaIlEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %189) #9
  store ptr %191, ptr %32, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #9
  %192 = call ptr @_ZNKSt6vectorIlSaIlEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %189) #9
  store ptr %192, ptr %33, align 8
  %193 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKlSt6vectorIlSaIlEEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  br i1 %193, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %232, %187
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  br label %239

194:                                              ; preds = %.lr.ph97
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %242

.lr.ph:                                           ; preds = %187, %232
  %.06495 = phi i32 [ %233, %232 ], [ 0, %187 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #9
  %196 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKlSt6vectorIlSaIlEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  %197 = load i64, ptr %196, align 8, !tbaa !80
  store i64 %197, ptr %34, align 8, !tbaa !80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #9
  %198 = load ptr, ptr %22, align 8, !tbaa !5
  %199 = invoke ptr @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEE4findERS5_(ptr noundef nonnull align 8 dereferenceable(48) %198, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %200 unwind label %214

200:                                              ; preds = %.lr.ph
  store ptr %199, ptr %36, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #9
  %201 = load ptr, ptr %22, align 8, !tbaa !5
  %202 = call ptr @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %201) #9
  store ptr %202, ptr %37, align 8
  %203 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIKlP12morphKeyDataEES7_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #9
  br i1 %203, label %204, label %218

204:                                              ; preds = %200
  %205 = invoke noalias noundef nonnull dereferenceable(48) ptr @_Znwm(i64 noundef 48) #10
          to label %206 unwind label %214

206:                                              ; preds = %204
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %205, i8 0, i64 48, i1 false)
  call void @_ZN12morphKeyDataC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %205) #9
  store ptr %205, ptr %35, align 8, !tbaa !5
  %207 = load ptr, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #9
  %208 = invoke { i64, ptr } @_ZSt9make_pairIRlRP12morphKeyDataESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %209 unwind label %216

209:                                              ; preds = %206
  %210 = extractvalue { i64, ptr } %208, 0
  store i64 %210, ptr %38, align 8
  %211 = extractvalue { i64, ptr } %208, 1
  store ptr %211, ptr %49, align 8
  %212 = invoke { ptr, i8 } @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEE6insertIS4_IlS1_EEENSt9enable_ifIXsr16is_constructibleIS6_T_EE5valueES4_ISt17_Rb_tree_iteratorIS6_EbEE4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(48) %207, ptr noundef nonnull align 8 dereferenceable(16) %38)
          to label %213 unwind label %216

213:                                              ; preds = %209
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #9
  %.pre = load ptr, ptr %35, align 8, !tbaa !5
  br label %222

214:                                              ; preds = %222, %204, %.lr.ph
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %238

216:                                              ; preds = %209, %206
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #9
  br label %238

218:                                              ; preds = %200
  %219 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKlP12morphKeyDataEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #9
  %220 = getelementptr inbounds i8, ptr %219, i64 8
  %221 = load ptr, ptr %220, align 8, !tbaa !81
  store ptr %221, ptr %35, align 8, !tbaa !5
  br label %222

222:                                              ; preds = %218, %213
  %223 = phi ptr [ %221, %218 ], [ %.pre, %213 ]
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %223, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %224 unwind label %214

224:                                              ; preds = %222
  %225 = load ptr, ptr %35, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #9
  %226 = zext i32 %.06495 to i64
  %227 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt6vectorIfSaIfEE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %190, i64 noundef %226)
          to label %228 unwind label %236

228:                                              ; preds = %224
  %229 = getelementptr inbounds i8, ptr %225, i64 24
  %230 = load float, ptr %227, align 4, !tbaa !83
  %231 = fdiv float %230, 1.000000e+02
  store float %231, ptr %39, align 4, !tbaa !83
  invoke void @_ZNSt6vectorIfSaIfEE9push_backEOf(ptr noundef nonnull align 8 dereferenceable(24) %229, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %232 unwind label %236

232:                                              ; preds = %228
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #9
  %233 = add i32 %.06495, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #9
  %234 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKlSt6vectorIlSaIlEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  %235 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKlSt6vectorIlSaIlEEEEbRKNS_17__normal_iteratorIT_T0_EESB_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  br i1 %235, label %.lr.ph, label %._crit_edge

236:                                              ; preds = %228, %224
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #9
  br label %238

238:                                              ; preds = %236, %216, %214
  %.pn75 = phi { ptr, i32 } [ %237, %236 ], [ %215, %214 ], [ %217, %216 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #9
  br label %242

239:                                              ; preds = %._crit_edge, %185
  call void @_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #9
  %240 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  %241 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEEESG_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  br i1 %241, label %.lr.ph97, label %._crit_edge98

242:                                              ; preds = %238, %194
  %.pn75.pn = phi { ptr, i32 } [ %.pn75, %238 ], [ %195, %194 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  br label %243

243:                                              ; preds = %182, %242, %170, %168, %167
  %.pn75.pn.pn.pn = phi { ptr, i32 } [ %171, %170 ], [ %169, %168 ], [ %.pn73, %167 ], [ %.pn75.pn, %242 ], [ %183, %182 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #9
  br label %244

244:                                              ; preds = %243, %161, %160
  %.pn75.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn, %243 ], [ %162, %161 ], [ %.pn, %160 ]
  call void @llvm.lifetime.end.p0(i64 1028, ptr nonnull %19) #9
  br label %247

.thread93:                                        ; preds = %109, %._crit_edge98, %113
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  %246 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  br i1 %246, label %.lr.ph100, label %._crit_edge101

247:                                              ; preds = %152, %244, %154, %111
  %.pn75.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %112, %111 ], [ %153, %152 ], [ %.pn75.pn.pn.pn.pn, %244 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #9
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #9
  br label %248

248:                                              ; preds = %247, %104
  %.pn75.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn.pn.pn, %247 ], [ %105, %104 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #9
  br label %251

.thread91:                                        ; preds = %91, %._crit_edge101, %95
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  %250 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #9
  br i1 %250, label %.lr.ph103, label %._crit_edge104

251:                                              ; preds = %248, %93
  %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn.pn.pn.pn, %248 ], [ %94, %93 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #9
  br label %252

252:                                              ; preds = %251, %86
  %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn, %251 ], [ %87, %86 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #9
  br label %253

253:                                              ; preds = %252, %84
  %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %252 ], [ %85, %84 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #9
  br label %255

254:                                              ; preds = %._crit_edge104, %66
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  br label %.thread

255:                                              ; preds = %253, %82
  %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %253 ], [ %83, %82 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  br label %258

.thread:                                          ; preds = %54, %254, %58
  %256 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  %257 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPPKN6Assimp3FBX10ConnectionESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  br i1 %257, label %50, label %._crit_edge107

258:                                              ; preds = %255, %56
  %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %255 ], [ %57, %56 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @_ZNSt6vectorIPKN6Assimp3FBX10ConnectionESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #9
  resume { ptr, i32 } %.pn75.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

declare void @_ZNK6Assimp3FBX8Document31GetConnectionsBySourceSequencedEmPKc(ptr dead_on_unwind writable sret(%"class.std::vector.130") align 8, ptr noundef nonnull align 8 dereferenceable(336), i64 noundef, ptr noundef) local_unnamed_addr #8

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

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

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

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

declare noundef ptr @_ZNK6Assimp3FBX10Connection17DestinationObjectEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZSt8distanceINSt8__detail20_Node_const_iteratorIPKN6Assimp3FBX17BlendShapeChannelELb1ELb0EEEENSt15iterator_traitsIT_E15difference_typeES9_S9_(ptr, ptr) local_unnamed_addr #7

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i64 @_ZSt8distanceIN9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX8GeometryESt6vectorIS6_SaIS6_EEEEENSt15iterator_traitsIT_E15difference_typeESE_SE_(ptr, ptr) local_unnamed_addr #7

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS_IlP12morphKeyDataSt4lessIlESaISt4pairIKlS7_EEES8_IS5_ESaISA_IKS5_SF_EEE6insertISA_IPKcSF_EEENSt9enable_ifIXsr16is_constructibleISI_T_EE5valueESA_ISt17_Rb_tree_iteratorISI_EbEE4typeEOSQ_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, ptr } @_ZSt9make_pairIPKcRPSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS4_EEEES7_INSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENSE_INSF_IT0_E4typeEE6__typeEEOSG_OSL_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

declare noundef nonnull align 8 dereferenceable(48) ptr @_ZNK6Assimp3FBX18AnimationCurveNode6CurvesB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168)) local_unnamed_addr #8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIlP12morphKeyDataSt4lessIlESaISt4pairIKlS1_EEE6insertIS4_IlS1_EEENSt9enable_ifIXsr16is_constructibleIS6_T_EE5valueES4_ISt17_Rb_tree_iteratorIS6_EbEE4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i64, ptr } @_ZSt9make_pairIRlRP12morphKeyDataESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS5_INS6_IT0_E4typeEE6__typeEEOS7_OSC_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 480}
!10 = !{!"_ZTSN6Assimp3FBX12FBXConverterE", !11, i64 0, !12, i64 8, !16, i64 32, !20, i64 56, !24, i64 80, !28, i64 104, !32, i64 128, !36, i64 152, !45, i64 200, !50, i64 248, !55, i64 296, !55, i64 344, !60, i64 392, !65, i64 440, !66, i64 448, !6, i64 472, !6, i64 480, !70, i64 488}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIP6aiMeshSaIS1_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIP6aiMeshSaIS1_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIP6aiMeshSaIS1_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIP6aiMeshSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!"_ZTSSt6vectorIP10aiMaterialSaIS1_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIP10aiMaterialSaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIP10aiMaterialSaIS1_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIP10aiMaterialSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = !{!"_ZTSSt6vectorIP11aiAnimationSaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIP11aiAnimationSaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIP11aiAnimationSaIS1_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIP11aiAnimationSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"_ZTSSt6vectorIP7aiLightSaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIP7aiLightSaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIP7aiLightSaIS1_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIP7aiLightSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"_ZTSSt6vectorIP8aiCameraSaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIP8aiCameraSaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIP8aiCameraSaIS1_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIP8aiCameraSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorIP9aiTextureSaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseIP9aiTextureSaIS1_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIP9aiTextureSaIS1_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIP9aiTextureSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSSt3mapIPKN6Assimp3FBX8MaterialEjSt4lessIS4_ESaISt4pairIKS4_jEEE", !37, i64 0}
!37 = !{!"_ZTSSt8_Rb_treeIPKN6Assimp3FBX8MaterialESt4pairIKS4_jESt10_Select1stIS7_ESt4lessIS4_ESaIS7_EE", !38, i64 0}
!38 = !{!"_ZTSNSt8_Rb_treeIPKN6Assimp3FBX8MaterialESt4pairIKS4_jESt10_Select1stIS7_ESt4lessIS4_ESaIS7_EE13_Rb_tree_implISB_Lb1EEE", !39, i64 0, !41, i64 8}
!39 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPKN6Assimp3FBX8MaterialEEE", !40, i64 0}
!40 = !{!"_ZTSSt4lessIPKN6Assimp3FBX8MaterialEE"}
!41 = !{!"_ZTSSt15_Rb_tree_header", !42, i64 0, !44, i64 32}
!42 = !{!"_ZTSSt18_Rb_tree_node_base", !43, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!43 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!44 = !{!"long", !7, i64 0}
!45 = !{!"_ZTSSt3mapIPKN6Assimp3FBX5VideoEjSt4lessIS4_ESaISt4pairIKS4_jEEE", !46, i64 0}
!46 = !{!"_ZTSSt8_Rb_treeIPKN6Assimp3FBX5VideoESt4pairIKS4_jESt10_Select1stIS7_ESt4lessIS4_ESaIS7_EE", !47, i64 0}
!47 = !{!"_ZTSNSt8_Rb_treeIPKN6Assimp3FBX5VideoESt4pairIKS4_jESt10_Select1stIS7_ESt4lessIS4_ESaIS7_EE13_Rb_tree_implISB_Lb1EEE", !48, i64 0, !41, i64 8}
!48 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPKN6Assimp3FBX5VideoEEE", !49, i64 0}
!49 = !{!"_ZTSSt4lessIPKN6Assimp3FBX5VideoEE"}
!50 = !{!"_ZTSSt3mapIPKN6Assimp3FBX8GeometryESt6vectorIjSaIjEESt4lessIS4_ESaISt4pairIKS4_S7_EEE", !51, i64 0}
!51 = !{!"_ZTSSt8_Rb_treeIPKN6Assimp3FBX8GeometryESt4pairIKS4_St6vectorIjSaIjEEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE", !52, i64 0}
!52 = !{!"_ZTSNSt8_Rb_treeIPKN6Assimp3FBX8GeometryESt4pairIKS4_St6vectorIjSaIjEEESt10_Select1stISA_ESt4lessIS4_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !53, i64 0, !41, i64 8}
!53 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPKN6Assimp3FBX8GeometryEEE", !54, i64 0}
!54 = !{!"_ZTSSt4lessIPKN6Assimp3FBX8GeometryEE"}
!55 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjSt4lessIS5_ESaISt4pairIKS5_jEEE", !56, i64 0}
!56 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_jESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !57, i64 0}
!57 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_jESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !58, i64 0, !41, i64 8}
!58 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !59, i64 0}
!59 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!60 = !{!"_ZTSSt3mapIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP6aiBoneSt4lessIS6_ESaISt4pairIS6_S8_EEE", !61, i64 0}
!61 = !{!"_ZTSSt8_Rb_treeIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIS6_P6aiBoneESt10_Select1stISA_ESt4lessIS6_ESaISA_EE", !62, i64 0}
!62 = !{!"_ZTSNSt8_Rb_treeIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIS6_P6aiBoneESt10_Select1stISA_ESt4lessIS6_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !63, i64 0, !41, i64 8}
!63 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !64, i64 0}
!64 = !{!"_ZTSSt4lessIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!65 = !{!"double", !7, i64 0}
!66 = !{!"_ZTSSt6vectorIP10aiSkeletonSaIS1_EE", !67, i64 0}
!67 = !{!"_ZTSSt12_Vector_baseIP10aiSkeletonSaIS1_EE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseIP10aiSkeletonSaIS1_EE12_Vector_implE", !69, i64 0}
!69 = !{!"_ZTSNSt12_Vector_baseIP10aiSkeletonSaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!70 = !{!"bool", !7, i64 0}
!71 = !{!11, !11, i64 0}
!72 = !{!73, !11, i64 0}
!73 = !{!"_ZTS8aiString", !11, i64 0, !7, i64 4}
!74 = !{!75, !6, i64 32}
!75 = !{!"_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPSt3mapIlP12morphKeyDataSt4lessIlESaIS_IKlS9_EEEE", !76, i64 0, !6, i64 32}
!76 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !77, i64 0, !44, i64 8, !7, i64 16}
!77 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!78 = !{!79, !6, i64 32}
!79 = !{!"_ZTSSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveEE", !76, i64 0, !6, i64 32}
!80 = !{!44, !44, i64 0}
!81 = !{!82, !6, i64 8}
!82 = !{!"_ZTSSt4pairIKlP12morphKeyDataE", !44, i64 0, !6, i64 8}
!83 = !{!84, !84, i64 0}
!84 = !{!"float", !7, i64 0}


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass