; 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::map.361" = type { %"class.std::_Rb_tree.362" }
%"class.std::_Rb_tree.362" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::vector<const Assimp::FBX::AnimationCurveNode *>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::vector<const Assimp::FBX::AnimationCurveNode *>>>, 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>, std::vector<const Assimp::FBX::AnimationCurveNode *>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::vector<const Assimp::FBX::AnimationCurveNode *>>>, std::less<std::__cxx11::basic_string<char>>>::_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.__gnu_cxx::__normal_iterator.383" = type { ptr }
%"struct.std::_Rb_tree_const_iterator.433" = type { ptr }
%"struct.std::_Rb_tree_iterator.394" = type { ptr }
%"class.std::allocator.72" = type { 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" }
%"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.Assimp::FBX::ImportSettings" = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
%"struct.std::pair.395" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.378" }
%"class.std::vector.378" = type { %"struct.std::_Vector_base.379" }
%"struct.std::_Vector_base.379" = type { %"struct.std::_Vector_base<const Assimp::FBX::AnimationCurveNode *, std::allocator<const Assimp::FBX::AnimationCurveNode *>>::_Vector_impl" }
%"struct.std::_Vector_base<const Assimp::FBX::AnimationCurveNode *, std::allocator<const Assimp::FBX::AnimationCurveNode *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const Assimp::FBX::AnimationCurveNode *, std::allocator<const Assimp::FBX::AnimationCurveNode *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const Assimp::FBX::AnimationCurveNode *, std::allocator<const Assimp::FBX::AnimationCurveNode *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.aiNodeAnim = type { %struct.aiString, i32, ptr, i32, ptr, i32, ptr, i32, i32 }
%struct.aiString = type { i32, [1024 x i8] }

@.str.5 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [3 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

; Function Attrs: 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) #4

declare void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef, ptr noundef, i32 noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter30NameTransformationCompPropertyENS1_18TransformationCompE(ptr noundef nonnull align 8 dereferenceable(489), i32 noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6Assimp3FBX12FBXConverter31NeedsComplexTransformationChainERKNS0_5ModelE(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(208)) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX12FBXConverter27NameTransformationChainNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_18TransformationCompE(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), i32 noundef) #3 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(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_iteratorIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Assimp3FBX12FBXConverter22GenerateNodeAnimationsERSt6vectorIP10aiNodeAnimSaIS4_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS2_IPKNS0_18AnimationCurveNodeESaISI_EERKSt3mapISI_PKNS0_14AnimationLayerESt4lessISI_ESaISt4pairIKSI_SQ_EEEllRdS10_(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %5, i64 noundef %6, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #3 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca %"class.std::map.361", align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.383", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.383", align 8
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca [17 x %"struct.std::_Rb_tree_const_iterator.433"], align 16
  %30 = alloca i8, align 1
  %31 = alloca i8, align 1
  %32 = alloca i64, align 8
  %33 = alloca i32, align 4
  %34 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %35 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %36 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %37 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator.72", align 1
  %40 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %41 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %44 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i64, align 8
  %48 = alloca i32, align 4
  %49 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %50 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %51 = alloca ptr, align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca ptr, align 8
  store ptr %0, ptr %10, align 8, !tbaa !5
  store ptr %1, ptr %11, align 8, !tbaa !5
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  store ptr %4, ptr %14, align 8, !tbaa !5
  store i64 %5, ptr %15, align 8, !tbaa !9
  store i64 %6, ptr %16, align 8, !tbaa !9
  store ptr %7, ptr %17, align 8, !tbaa !5
  store ptr %8, ptr %18, align 8, !tbaa !5
  %60 = load ptr, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 48, ptr %19) #8
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %19) #8
  %61 = load ptr, ptr %13, align 8, !tbaa !5
  %62 = call noundef i64 @_ZNKSt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %61) #8
  %63 = icmp ne i64 %62, 0
  br i1 %63, label %66, label %64

64:                                               ; preds = %9
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.201, ptr noundef @.str.5, i32 noundef 2883)
          to label %65 unwind label %87

65:                                               ; preds = %64
  br label %66

66:                                               ; preds = %65, %9
  %67 = phi i1 [ true, %9 ], [ false, %65 ]
  %68 = load ptr, ptr %13, align 8, !tbaa !5
  %69 = getelementptr inbounds %"class.Assimp::FBX::FBXConverter", ptr %60, i32 0, i32 17
  %70 = load ptr, ptr %69, align 8, !tbaa !11
  %71 = invoke noundef nonnull align 1 dereferenceable(15) ptr @_ZNK6Assimp3FBX8Document8SettingsEv(ptr noundef nonnull align 8 dereferenceable(336) %70)
          to label %72 unwind label %87

72:                                               ; preds = %66
  %73 = getelementptr inbounds %"struct.Assimp::FBX::ImportSettings", ptr %71, i32 0, i32 0
  %74 = load i8, ptr %73, align 1, !tbaa !72, !range !74, !noundef !75
  %75 = trunc i8 %74 to i1
  invoke void @_ZN6Assimp3FBXL22validateAnimCurveNodesERKSt6vectorIPKNS0_18AnimationCurveNodeESaIS4_EEb(ptr noundef nonnull align 8 dereferenceable(24) %68, i1 noundef zeroext %75)
          to label %76 unwind label %87

76:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  store ptr null, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %77 = load ptr, ptr %13, align 8, !tbaa !5
  store ptr %77, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %78 = load ptr, ptr %23, align 8, !tbaa !5
  %79 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %78) #8
  %80 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.383", ptr %24, i32 0, i32 0
  store ptr %79, ptr %80, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %81 = load ptr, ptr %23, align 8, !tbaa !5
  %82 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %81) #8
  %83 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.383", ptr %25, i32 0, i32 0
  store ptr %82, ptr %83, align 8
  br label %84

84:                                               ; preds = %134, %76
  %85 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br i1 %85, label %91, label %86

86:                                               ; preds = %84
  store i32 2, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %136

87:                                               ; preds = %72, %66, %64
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %20, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %21, align 4
  br label %617

91:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %92 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  %93 = load ptr, ptr %92, align 8, !tbaa !5
  store ptr %93, ptr %27, align 8, !tbaa !5
  %94 = load ptr, ptr %27, align 8, !tbaa !5
  %95 = icmp ne ptr %94, null
  br i1 %95, label %98, label %96

96:                                               ; preds = %91
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.195, ptr noundef @.str.5, i32 noundef 2890)
          to label %97 unwind label %109

97:                                               ; preds = %96
  br label %98

98:                                               ; preds = %97, %91
  %99 = phi i1 [ true, %91 ], [ false, %97 ]
  %100 = load ptr, ptr %27, align 8, !tbaa !5
  %101 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX18AnimationCurveNode14TargetPropertyB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168) %100)
          to label %102 unwind label %109

102:                                              ; preds = %98
  %103 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %101) #8
  br i1 %103, label %104, label %113

104:                                              ; preds = %102
  %105 = load ptr, ptr %27, align 8, !tbaa !5
  %106 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX6Object4NameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(56) %105)
          to label %107 unwind label %109

107:                                              ; preds = %104
  invoke void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE7LogWarnIJRA46_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(46) @.str.202, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %108 unwind label %109

108:                                              ; preds = %107
  store i32 3, ptr %26, align 4
  br label %131

109:                                              ; preds = %129, %127, %124, %122, %119, %113, %107, %104, %98, %96
  %110 = landingpad { ptr, i32 }
          cleanup
  %111 = extractvalue { ptr, i32 } %110, 0
  store ptr %111, ptr %20, align 8
  %112 = extractvalue { ptr, i32 } %110, 1
  store i32 %112, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %616

113:                                              ; preds = %102
  %114 = load ptr, ptr %27, align 8, !tbaa !5
  store ptr %114, ptr %22, align 8, !tbaa !5
  %115 = load ptr, ptr %27, align 8, !tbaa !5
  %116 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK6Assimp3FBX18AnimationCurveNode6CurvesB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168) %115)
          to label %117 unwind label %109

117:                                              ; preds = %113
  %118 = call noundef zeroext i1 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveESt4lessIS5_ESaISt4pairIKS5_SA_EEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(48) %116) #8
  br i1 %118, label %119, label %124

119:                                              ; preds = %117
  %120 = load ptr, ptr %27, align 8, !tbaa !5
  %121 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX6Object4NameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(56) %120)
          to label %122 unwind label %109

122:                                              ; preds = %119
  invoke void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE7LogWarnIJRA53_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(53) @.str.203, ptr noundef nonnull align 8 dereferenceable(32) %121)
          to label %123 unwind label %109

123:                                              ; preds = %122
  store i32 3, ptr %26, align 4
  br label %131

124:                                              ; preds = %117
  %125 = load ptr, ptr %27, align 8, !tbaa !5
  %126 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX18AnimationCurveNode14TargetPropertyB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168) %125)
          to label %127 unwind label %109

127:                                              ; preds = %124
  %128 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEEixERSH_(ptr noundef nonnull align 8 dereferenceable(48) %19, ptr noundef nonnull align 8 dereferenceable(32) %126)
          to label %129 unwind label %109

129:                                              ; preds = %127
  invoke void @_ZNSt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaIS4_EE9push_backERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %130 unwind label %109

130:                                              ; preds = %129
  store i32 0, ptr %26, align 4
  br label %131

131:                                              ; preds = %130, %123, %108
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  %132 = load i32, ptr %26, align 4
  switch i32 %132, label %623 [
    i32 0, label %133
    i32 3, label %134
  ]

133:                                              ; preds = %131
  br label %134

134:                                              ; preds = %133, %131
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  br label %84

136:                                              ; preds = %86
  %137 = load ptr, ptr %22, align 8, !tbaa !5
  %138 = icmp ne ptr %137, null
  br i1 %138, label %141, label %139

139:                                              ; preds = %136
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.204, ptr noundef @.str.5, i32 noundef 2906)
          to label %140 unwind label %165

140:                                              ; preds = %139
  br label %141

141:                                              ; preds = %140, %136
  %142 = phi i1 [ true, %136 ], [ false, %140 ]
  %143 = load ptr, ptr %22, align 8, !tbaa !5
  %144 = invoke noundef ptr @_ZNK6Assimp3FBX18AnimationCurveNode13TargetAsModelEv(ptr noundef nonnull align 8 dereferenceable(168) %143)
          to label %145 unwind label %165

145:                                              ; preds = %141
  %146 = icmp ne ptr %144, null
  br i1 %146, label %149, label %147

147:                                              ; preds = %145
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.205, ptr noundef @.str.5, i32 noundef 2907)
          to label %148 unwind label %165

148:                                              ; preds = %147
  br label %149

149:                                              ; preds = %148, %145
  %150 = phi i1 [ true, %145 ], [ false, %148 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %151 = load ptr, ptr %22, align 8, !tbaa !5
  %152 = invoke noundef ptr @_ZNK6Assimp3FBX18AnimationCurveNode13TargetAsModelEv(ptr noundef nonnull align 8 dereferenceable(168) %151)
          to label %153 unwind label %169

153:                                              ; preds = %149
  store ptr %152, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 136, ptr %29) #8
  %154 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i32 0, i32 0
  %155 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.433", ptr %154, i64 17
  br label %156

156:                                              ; preds = %156, %153
  %157 = phi ptr [ %154, %153 ], [ %158, %156 ]
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %157) #8
  %158 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.433", ptr %157, i64 1
  %159 = icmp eq ptr %158, %155
  br i1 %159, label %160, label %156

160:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #8
  store i8 0, ptr %30, align 1, !tbaa !76
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #8
  store i8 0, ptr %31, align 1, !tbaa !76
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  store i64 0, ptr %32, align 8, !tbaa !9
  br label %161

161:                                              ; preds = %256, %160
  %162 = load i64, ptr %32, align 8, !tbaa !9
  %163 = icmp ult i64 %162, 17
  br i1 %163, label %173, label %164

164:                                              ; preds = %161
  store i32 4, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %260

165:                                              ; preds = %147, %141, %139
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %20, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %21, align 4
  br label %616

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

173:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %174 = load i64, ptr %32, align 8, !tbaa !9
  %175 = trunc i64 %174 to i32
  store i32 %175, ptr %33, align 4, !tbaa !77
  %176 = load i32, ptr %33, align 4, !tbaa !77
  %177 = icmp eq i32 %176, 9
  br i1 %177, label %181, label %178

178:                                              ; preds = %173
  %179 = load i32, ptr %33, align 4, !tbaa !77
  %180 = icmp eq i32 %179, 13
  br i1 %180, label %181, label %186

181:                                              ; preds = %178, %173
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %182 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %19) #8
  %183 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.394", ptr %35, i32 0, i32 0
  store ptr %182, ptr %183, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  %184 = load i64, ptr %32, align 8, !tbaa !9
  %185 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %184
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %185, ptr align 8 %34, i64 8, i1 false), !tbaa.struct !79
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  store i32 6, ptr %26, align 4
  br label %253

186:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %38) #8
  %187 = load i32, ptr %33, align 4, !tbaa !77
  %188 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter30NameTransformationCompPropertyENS1_18TransformationCompE(ptr noundef nonnull align 8 dereferenceable(489) %60, i32 noundef %187)
          to label %189 unwind label %223

189:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef %188, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %190 unwind label %227

190:                                              ; preds = %189
  %191 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE4findERSH_(ptr noundef nonnull align 8 dereferenceable(48) %19, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %192 unwind label %231

192:                                              ; preds = %190
  %193 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.394", ptr %37, i32 0, i32 0
  store ptr %191, ptr %193, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  %194 = load i64, ptr %32, align 8, !tbaa !9
  %195 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %194
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %195, ptr align 8 %36, i64 8, i1 false), !tbaa.struct !79
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  %196 = load i64, ptr %32, align 8, !tbaa !9
  %197 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %196
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %198 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %19) #8
  %199 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.394", ptr %41, i32 0, i32 0
  store ptr %198, ptr %199, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  %200 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEESJ_(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br i1 %200, label %201, label %252

201:                                              ; preds = %192
  %202 = getelementptr inbounds %"class.Assimp::FBX::FBXConverter", ptr %60, i32 0, i32 17
  %203 = load ptr, ptr %202, align 8, !tbaa !11
  %204 = invoke noundef nonnull align 1 dereferenceable(15) ptr @_ZNK6Assimp3FBX8Document8SettingsEv(ptr noundef nonnull align 8 dereferenceable(336) %203)
          to label %205 unwind label %237

205:                                              ; preds = %201
  %206 = getelementptr inbounds %"struct.Assimp::FBX::ImportSettings", ptr %204, i32 0, i32 11
  %207 = load i8, ptr %206, align 1, !tbaa !80, !range !74, !noundef !75
  %208 = trunc i8 %207 to i1
  br i1 %208, label %209, label %241

209:                                              ; preds = %205
  %210 = load ptr, ptr %28, align 8, !tbaa !5
  %211 = load i32, ptr %33, align 4, !tbaa !77
  %212 = load i64, ptr %32, align 8, !tbaa !9
  %213 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %212
  %214 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %213) #8
  %215 = getelementptr inbounds %"struct.std::pair.395", ptr %214, i32 0, i32 1
  %216 = invoke noundef zeroext i1 @_ZN6Assimp3FBX12FBXConverter24IsRedundantAnimationDataERKNS0_5ModelENS1_18TransformationCompERKSt6vectorIPKNS0_18AnimationCurveNodeESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(208) %210, i32 noundef %211, ptr noundef nonnull align 8 dereferenceable(24) %215)
          to label %217 unwind label %237

217:                                              ; preds = %209
  br i1 %216, label %218, label %241

218:                                              ; preds = %217
  %219 = load ptr, ptr %28, align 8, !tbaa !5
  %220 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX6Object4NameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(56) %219)
          to label %221 unwind label %237

221:                                              ; preds = %218
  invoke void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE15LogVerboseDebugIJRA47_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(47) @.str.206, ptr noundef nonnull align 8 dereferenceable(32) %220)
          to label %222 unwind label %237

222:                                              ; preds = %221
  store i32 6, ptr %26, align 4
  br label %253

223:                                              ; preds = %186
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %20, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %21, align 4
  br label %236

227:                                              ; preds = %189
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %20, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %21, align 4
  br label %235

231:                                              ; preds = %190
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %20, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %21, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #8
  br label %235

235:                                              ; preds = %231, %227
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  br label %236

236:                                              ; preds = %235, %223
  call void @llvm.lifetime.end.p0(i64 32, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  br label %259

237:                                              ; preds = %221, %218, %209, %201
  %238 = landingpad { ptr, i32 }
          cleanup
  %239 = extractvalue { ptr, i32 } %238, 0
  store ptr %239, ptr %20, align 8
  %240 = extractvalue { ptr, i32 } %238, 1
  store i32 %240, ptr %21, align 4
  br label %259

241:                                              ; preds = %217, %205
  store i8 1, ptr %30, align 1, !tbaa !76
  %242 = load i32, ptr %33, align 4, !tbaa !77
  %243 = icmp ne i32 %242, 7
  br i1 %243, label %244, label %251

244:                                              ; preds = %241
  %245 = load i32, ptr %33, align 4, !tbaa !77
  %246 = icmp ne i32 %245, 12
  br i1 %246, label %247, label %251

247:                                              ; preds = %244
  %248 = load i32, ptr %33, align 4, !tbaa !77
  %249 = icmp ne i32 %248, 3
  br i1 %249, label %250, label %251

250:                                              ; preds = %247
  store i8 1, ptr %31, align 1, !tbaa !76
  br label %251

251:                                              ; preds = %250, %247, %244, %241
  br label %252

252:                                              ; preds = %251, %192
  store i32 0, ptr %26, align 4
  br label %253

253:                                              ; preds = %252, %222, %181
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  %254 = load i32, ptr %26, align 4
  switch i32 %254, label %623 [
    i32 0, label %255
    i32 6, label %256
  ]

255:                                              ; preds = %253
  br label %256

256:                                              ; preds = %255, %253
  %257 = load i64, ptr %32, align 8, !tbaa !9
  %258 = add i64 %257, 1
  store i64 %258, ptr %32, align 8, !tbaa !9
  br label %161, !llvm.loop !81

259:                                              ; preds = %237, %236
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %614

260:                                              ; preds = %164
  %261 = load i8, ptr %30, align 1, !tbaa !76, !range !74, !noundef !75
  %262 = trunc i8 %261 to i1
  br i1 %262, label %269, label %263

263:                                              ; preds = %260
  invoke void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE7LogWarnIJRA68_KcEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(68) @.str.207)
          to label %264 unwind label %265

264:                                              ; preds = %263
  store i32 1, ptr %26, align 4
  br label %606

265:                                              ; preds = %272, %263
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %20, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %21, align 4
  br label %614

269:                                              ; preds = %260
  %270 = load i8, ptr %31, align 1, !tbaa !76, !range !74, !noundef !75
  %271 = trunc i8 %270 to i1
  br i1 %271, label %328, label %272

272:                                              ; preds = %269
  %273 = load ptr, ptr %28, align 8, !tbaa !5
  %274 = invoke noundef zeroext i1 @_ZN6Assimp3FBX12FBXConverter31NeedsComplexTransformationChainERKNS0_5ModelE(ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(208) %273)
          to label %275 unwind label %265

275:                                              ; preds = %272
  br i1 %274, label %328, label %276

276:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %277 = load ptr, ptr %12, align 8, !tbaa !5
  %278 = load ptr, ptr %28, align 8, !tbaa !5
  %279 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 0
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %280 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %19) #8
  %281 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.394", ptr %44, i32 0, i32 0
  store ptr %280, ptr %281, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  %282 = load i64, ptr %15, align 8, !tbaa !9
  %283 = load i64, ptr %16, align 8, !tbaa !9
  %284 = load ptr, ptr %17, align 8, !tbaa !5
  %285 = load ptr, ptr %18, align 8, !tbaa !5
  %286 = getelementptr inbounds %"struct.std::_Rb_tree_const_iterator.433", ptr %43, i32 0, i32 0
  %287 = load ptr, ptr %286, align 8
  %288 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter22GenerateSimpleNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelEPSt23_Rb_tree_const_iteratorISt4pairIS8_St6vectorIPKNS0_18AnimationCurveNodeESaISI_EEEESM_llRdSO_(ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull align 8 dereferenceable(208) %278, ptr noundef %279, ptr %287, i64 noundef %282, i64 noundef %283, ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull align 8 dereferenceable(8) %285)
          to label %289 unwind label %315

289:                                              ; preds = %276
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  store ptr %288, ptr %42, align 8, !tbaa !5
  %290 = load ptr, ptr %42, align 8, !tbaa !5
  %291 = icmp ne ptr %290, null
  br i1 %291, label %294, label %292

292:                                              ; preds = %289
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.208, ptr noundef @.str.5, i32 noundef 2963)
          to label %293 unwind label %319

293:                                              ; preds = %292
  br label %294

294:                                              ; preds = %293, %289
  %295 = phi i1 [ true, %289 ], [ false, %293 ]
  %296 = load ptr, ptr %42, align 8, !tbaa !5
  %297 = getelementptr inbounds %struct.aiNodeAnim, ptr %296, i32 0, i32 1
  %298 = load i32, ptr %297, align 4, !tbaa !83
  %299 = icmp eq i32 %298, 0
  br i1 %299, label %300, label %323

300:                                              ; preds = %294
  %301 = load ptr, ptr %42, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.aiNodeAnim, ptr %301, i32 0, i32 3
  %303 = load i32, ptr %302, align 8, !tbaa !87
  %304 = icmp eq i32 %303, 0
  br i1 %304, label %305, label %323

305:                                              ; preds = %300
  %306 = load ptr, ptr %42, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.aiNodeAnim, ptr %306, i32 0, i32 5
  %308 = load i32, ptr %307, align 8, !tbaa !88
  %309 = icmp eq i32 %308, 0
  br i1 %309, label %310, label %323

310:                                              ; preds = %305
  %311 = load ptr, ptr %42, align 8, !tbaa !5
  %312 = icmp eq ptr %311, null
  br i1 %312, label %314, label %313

313:                                              ; preds = %310
  call void @_ZN10aiNodeAnimD2Ev(ptr noundef nonnull align 8 dereferenceable(1080) %311) #8
  call void @_ZdlPvm(ptr noundef %311, i64 noundef 1080) #9
  br label %314

314:                                              ; preds = %313, %310
  br label %326

315:                                              ; preds = %276
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %20, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %327

319:                                              ; preds = %323, %292
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %20, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %21, align 4
  br label %327

323:                                              ; preds = %305, %300, %294
  %324 = load ptr, ptr %11, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP10aiNodeAnimSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %324, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %325 unwind label %319

325:                                              ; preds = %323
  br label %326

326:                                              ; preds = %325, %314
  store i32 1, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %606

327:                                              ; preds = %319, %315
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %614

328:                                              ; preds = %275, %269
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  store i32 0, ptr %45, align 4, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  store i32 1, ptr %46, align 4, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  store i64 0, ptr %47, align 8, !tbaa !9
  br label %329

329:                                              ; preds = %594, %328
  %330 = load i64, ptr %47, align 8, !tbaa !9
  %331 = icmp ult i64 %330, 17
  br i1 %331, label %333, label %332

332:                                              ; preds = %329
  store i32 7, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %600

333:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %334 = load i64, ptr %47, align 8, !tbaa !9
  %335 = trunc i64 %334 to i32
  store i32 %335, ptr %48, align 4, !tbaa !77
  %336 = load i64, ptr %47, align 8, !tbaa !9
  %337 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %336
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %338 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %19) #8
  %339 = getelementptr inbounds %"struct.std::_Rb_tree_iterator.394", ptr %50, i32 0, i32 0
  store ptr %338, ptr %339, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50) #8
  %340 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEESJ_(ptr noundef nonnull align 8 dereferenceable(8) %337, ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br i1 %340, label %341, label %590

341:                                              ; preds = %333
  %342 = load i32, ptr %46, align 4, !tbaa !89
  %343 = load i32, ptr %45, align 4, !tbaa !89
  %344 = or i32 %343, %342
  store i32 %344, ptr %45, align 4, !tbaa !89
  %345 = load i32, ptr %48, align 4, !tbaa !77
  %346 = icmp ne i32 %345, 9
  br i1 %346, label %349, label %347

347:                                              ; preds = %341
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.209, ptr noundef @.str.5, i32 noundef 2984)
          to label %348 unwind label %361

348:                                              ; preds = %347
  br label %349

349:                                              ; preds = %348, %341
  %350 = phi i1 [ true, %341 ], [ false, %348 ]
  %351 = load i32, ptr %48, align 4, !tbaa !77
  %352 = icmp ne i32 %351, 13
  br i1 %352, label %355, label %353

353:                                              ; preds = %349
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.210, ptr noundef @.str.5, i32 noundef 2985)
          to label %354 unwind label %361

354:                                              ; preds = %353
  br label %355

355:                                              ; preds = %354, %349
  %356 = phi i1 [ true, %349 ], [ false, %354 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #8
  %357 = load ptr, ptr %12, align 8, !tbaa !5
  %358 = load i32, ptr %48, align 4, !tbaa !77
  invoke void @_ZN6Assimp3FBX12FBXConverter27NameTransformationChainNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_18TransformationCompE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(32) %357, i32 noundef %358)
          to label %359 unwind label %365

359:                                              ; preds = %355
  store ptr %52, ptr %51, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  store ptr null, ptr %53, align 8, !tbaa !5
  %360 = load i32, ptr %48, align 4, !tbaa !77
  switch i32 %360, label %556 [
    i32 7, label %369
    i32 6, label %369
    i32 8, label %369
    i32 15, label %369
    i32 4, label %387
    i32 5, label %387
    i32 10, label %387
    i32 11, label %387
    i32 3, label %387
    i32 14, label %387
    i32 12, label %542
    i32 16, label %542
  ]

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

365:                                              ; preds = %355
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %20, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %21, align 4
  br label %589

369:                                              ; preds = %359, %359, %359, %359
  %370 = load ptr, ptr %51, align 8, !tbaa !5
  %371 = load ptr, ptr %28, align 8, !tbaa !5
  %372 = load i64, ptr %47, align 8, !tbaa !9
  %373 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %372
  %374 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %373) #8
  %375 = getelementptr inbounds %"struct.std::pair.395", ptr %374, i32 0, i32 1
  %376 = load ptr, ptr %14, align 8, !tbaa !5
  %377 = load i64, ptr %15, align 8, !tbaa !9
  %378 = load i64, ptr %16, align 8, !tbaa !9
  %379 = load ptr, ptr %17, align 8, !tbaa !5
  %380 = load ptr, ptr %18, align 8, !tbaa !5
  %381 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter24GenerateRotationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_(ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(32) %370, ptr noundef nonnull align 8 dereferenceable(208) %371, ptr noundef nonnull align 8 dereferenceable(24) %375, ptr noundef nonnull align 8 dereferenceable(48) %376, i64 noundef %377, i64 noundef %378, ptr noundef nonnull align 8 dereferenceable(8) %379, ptr noundef nonnull align 8 dereferenceable(8) %380)
          to label %382 unwind label %383

382:                                              ; preds = %369
  store ptr %381, ptr %53, align 8, !tbaa !5
  br label %558

383:                                              ; preds = %584, %561, %556, %542, %387, %369
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %20, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %21, align 4
  br label %588

387:                                              ; preds = %359, %359, %359, %359, %359, %359
  %388 = load ptr, ptr %51, align 8, !tbaa !5
  %389 = load ptr, ptr %28, align 8, !tbaa !5
  %390 = load i64, ptr %47, align 8, !tbaa !9
  %391 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %390
  %392 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %391) #8
  %393 = getelementptr inbounds %"struct.std::pair.395", ptr %392, i32 0, i32 1
  %394 = load ptr, ptr %14, align 8, !tbaa !5
  %395 = load i64, ptr %15, align 8, !tbaa !9
  %396 = load i64, ptr %16, align 8, !tbaa !9
  %397 = load ptr, ptr %17, align 8, !tbaa !5
  %398 = load ptr, ptr %18, align 8, !tbaa !5
  %399 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter27GenerateTranslationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_b(ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef nonnull align 8 dereferenceable(208) %389, ptr noundef nonnull align 8 dereferenceable(24) %393, ptr noundef nonnull align 8 dereferenceable(48) %394, i64 noundef %395, i64 noundef %396, ptr noundef nonnull align 8 dereferenceable(8) %397, ptr noundef nonnull align 8 dereferenceable(8) %398, i1 noundef zeroext false)
          to label %400 unwind label %383

400:                                              ; preds = %387
  store ptr %399, ptr %53, align 8, !tbaa !5
  %401 = load i32, ptr %48, align 4, !tbaa !77
  %402 = icmp eq i32 %401, 5
  br i1 %402, label %403, label %470

403:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #8
  %404 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZN6Assimp3FBX12FBXConverter27NameTransformationChainNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_18TransformationCompE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(32) %404, i32 noundef 9)
          to label %405 unwind label %444

405:                                              ; preds = %403
  store ptr %55, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  %406 = load ptr, ptr %54, align 8, !tbaa !5
  %407 = load ptr, ptr %28, align 8, !tbaa !5
  %408 = load i64, ptr %47, align 8, !tbaa !9
  %409 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %408
  %410 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %409) #8
  %411 = getelementptr inbounds %"struct.std::pair.395", ptr %410, i32 0, i32 1
  %412 = load ptr, ptr %14, align 8, !tbaa !5
  %413 = load i64, ptr %15, align 8, !tbaa !9
  %414 = load i64, ptr %16, align 8, !tbaa !9
  %415 = load ptr, ptr %17, align 8, !tbaa !5
  %416 = load ptr, ptr %18, align 8, !tbaa !5
  %417 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter27GenerateTranslationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_b(ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(32) %406, ptr noundef nonnull align 8 dereferenceable(208) %407, ptr noundef nonnull align 8 dereferenceable(24) %411, ptr noundef nonnull align 8 dereferenceable(48) %412, i64 noundef %413, i64 noundef %414, ptr noundef nonnull align 8 dereferenceable(8) %415, ptr noundef nonnull align 8 dereferenceable(8) %416, i1 noundef zeroext true)
          to label %418 unwind label %448

418:                                              ; preds = %405
  store ptr %417, ptr %56, align 8, !tbaa !5
  %419 = load ptr, ptr %56, align 8, !tbaa !5
  %420 = icmp ne ptr %419, null
  br i1 %420, label %423, label %421

421:                                              ; preds = %418
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.211, ptr noundef @.str.5, i32 noundef 3033)
          to label %422 unwind label %448

422:                                              ; preds = %421
  br label %423

423:                                              ; preds = %422, %418
  %424 = phi i1 [ true, %418 ], [ false, %422 ]
  %425 = load ptr, ptr %56, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.aiNodeAnim, ptr %425, i32 0, i32 1
  %427 = load i32, ptr %426, align 4, !tbaa !83
  %428 = icmp eq i32 %427, 0
  br i1 %428, label %429, label %452

429:                                              ; preds = %423
  %430 = load ptr, ptr %56, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.aiNodeAnim, ptr %430, i32 0, i32 3
  %432 = load i32, ptr %431, align 8, !tbaa !87
  %433 = icmp eq i32 %432, 0
  br i1 %433, label %434, label %452

434:                                              ; preds = %429
  %435 = load ptr, ptr %56, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.aiNodeAnim, ptr %435, i32 0, i32 5
  %437 = load i32, ptr %436, align 8, !tbaa !88
  %438 = icmp eq i32 %437, 0
  br i1 %438, label %439, label %452

439:                                              ; preds = %434
  %440 = load ptr, ptr %56, align 8, !tbaa !5
  %441 = icmp eq ptr %440, null
  br i1 %441, label %443, label %442

442:                                              ; preds = %439
  call void @_ZN10aiNodeAnimD2Ev(ptr noundef nonnull align 8 dereferenceable(1080) %440) #8
  call void @_ZdlPvm(ptr noundef %440, i64 noundef 1080) #9
  br label %443

443:                                              ; preds = %442, %439
  br label %455

444:                                              ; preds = %403
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %20, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %21, align 4
  br label %469

448:                                              ; preds = %458, %452, %421, %405
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %20, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  br label %469

452:                                              ; preds = %434, %429, %423
  %453 = load ptr, ptr %11, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP10aiNodeAnimSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %453, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %454 unwind label %448

454:                                              ; preds = %452
  br label %455

455:                                              ; preds = %454, %443
  %456 = load i64, ptr %47, align 8, !tbaa !9
  %457 = icmp ugt i64 9, %456
  br i1 %457, label %460, label %458

458:                                              ; preds = %455
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.212, ptr noundef @.str.5, i32 noundef 3040)
          to label %459 unwind label %448

459:                                              ; preds = %458
  br label %460

460:                                              ; preds = %459, %455
  %461 = phi i1 [ true, %455 ], [ false, %459 ]
  %462 = load i32, ptr %46, align 4, !tbaa !89
  %463 = load i64, ptr %47, align 8, !tbaa !9
  %464 = sub i64 9, %463
  %465 = trunc i64 %464 to i32
  %466 = shl i32 %462, %465
  %467 = load i32, ptr %45, align 4, !tbaa !89
  %468 = or i32 %467, %466
  store i32 %468, ptr %45, align 4, !tbaa !89
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %541

469:                                              ; preds = %448, %444
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %588

470:                                              ; preds = %400
  %471 = load i32, ptr %48, align 4, !tbaa !77
  %472 = icmp eq i32 %471, 11
  br i1 %472, label %473, label %540

473:                                              ; preds = %470
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #8
  %474 = load ptr, ptr %12, align 8, !tbaa !5
  invoke void @_ZN6Assimp3FBX12FBXConverter27NameTransformationChainNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_18TransformationCompE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(32) %474, i32 noundef 13)
          to label %475 unwind label %514

475:                                              ; preds = %473
  store ptr %58, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  %476 = load ptr, ptr %57, align 8, !tbaa !5
  %477 = load ptr, ptr %28, align 8, !tbaa !5
  %478 = load i64, ptr %47, align 8, !tbaa !9
  %479 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %478
  %480 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %479) #8
  %481 = getelementptr inbounds %"struct.std::pair.395", ptr %480, i32 0, i32 1
  %482 = load ptr, ptr %14, align 8, !tbaa !5
  %483 = load i64, ptr %15, align 8, !tbaa !9
  %484 = load i64, ptr %16, align 8, !tbaa !9
  %485 = load ptr, ptr %17, align 8, !tbaa !5
  %486 = load ptr, ptr %18, align 8, !tbaa !5
  %487 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter27GenerateTranslationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_b(ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(32) %476, ptr noundef nonnull align 8 dereferenceable(208) %477, ptr noundef nonnull align 8 dereferenceable(24) %481, ptr noundef nonnull align 8 dereferenceable(48) %482, i64 noundef %483, i64 noundef %484, ptr noundef nonnull align 8 dereferenceable(8) %485, ptr noundef nonnull align 8 dereferenceable(8) %486, i1 noundef zeroext true)
          to label %488 unwind label %518

488:                                              ; preds = %475
  store ptr %487, ptr %59, align 8, !tbaa !5
  %489 = load ptr, ptr %59, align 8, !tbaa !5
  %490 = icmp ne ptr %489, null
  br i1 %490, label %493, label %491

491:                                              ; preds = %488
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.211, ptr noundef @.str.5, i32 noundef 3055)
          to label %492 unwind label %518

492:                                              ; preds = %491
  br label %493

493:                                              ; preds = %492, %488
  %494 = phi i1 [ true, %488 ], [ false, %492 ]
  %495 = load ptr, ptr %59, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.aiNodeAnim, ptr %495, i32 0, i32 1
  %497 = load i32, ptr %496, align 4, !tbaa !83
  %498 = icmp eq i32 %497, 0
  br i1 %498, label %499, label %522

499:                                              ; preds = %493
  %500 = load ptr, ptr %59, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.aiNodeAnim, ptr %500, i32 0, i32 3
  %502 = load i32, ptr %501, align 8, !tbaa !87
  %503 = icmp eq i32 %502, 0
  br i1 %503, label %504, label %522

504:                                              ; preds = %499
  %505 = load ptr, ptr %59, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.aiNodeAnim, ptr %505, i32 0, i32 5
  %507 = load i32, ptr %506, align 8, !tbaa !88
  %508 = icmp eq i32 %507, 0
  br i1 %508, label %509, label %522

509:                                              ; preds = %504
  %510 = load ptr, ptr %59, align 8, !tbaa !5
  %511 = icmp eq ptr %510, null
  br i1 %511, label %513, label %512

512:                                              ; preds = %509
  call void @_ZN10aiNodeAnimD2Ev(ptr noundef nonnull align 8 dereferenceable(1080) %510) #8
  call void @_ZdlPvm(ptr noundef %510, i64 noundef 1080) #9
  br label %513

513:                                              ; preds = %512, %509
  br label %525

514:                                              ; preds = %473
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %20, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %21, align 4
  br label %539

518:                                              ; preds = %528, %522, %491, %475
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %20, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  br label %539

522:                                              ; preds = %504, %499, %493
  %523 = load ptr, ptr %11, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP10aiNodeAnimSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %523, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %524 unwind label %518

524:                                              ; preds = %522
  br label %525

525:                                              ; preds = %524, %513
  %526 = load i64, ptr %47, align 8, !tbaa !9
  %527 = icmp ugt i64 9, %526
  br i1 %527, label %530, label %528

528:                                              ; preds = %525
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.212, ptr noundef @.str.5, i32 noundef 3062)
          to label %529 unwind label %518

529:                                              ; preds = %528
  br label %530

530:                                              ; preds = %529, %525
  %531 = phi i1 [ true, %525 ], [ false, %529 ]
  %532 = load i32, ptr %46, align 4, !tbaa !89
  %533 = load i64, ptr %47, align 8, !tbaa !9
  %534 = sub i64 9, %533
  %535 = trunc i64 %534 to i32
  %536 = shl i32 %532, %535
  %537 = load i32, ptr %45, align 4, !tbaa !89
  %538 = or i32 %537, %536
  store i32 %538, ptr %45, align 4, !tbaa !89
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %540

539:                                              ; preds = %518, %514
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %588

540:                                              ; preds = %530, %470
  br label %541

541:                                              ; preds = %540, %460
  br label %558

542:                                              ; preds = %359, %359
  %543 = load ptr, ptr %51, align 8, !tbaa !5
  %544 = load ptr, ptr %28, align 8, !tbaa !5
  %545 = load i64, ptr %47, align 8, !tbaa !9
  %546 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %29, i64 0, i64 %545
  %547 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %546) #8
  %548 = getelementptr inbounds %"struct.std::pair.395", ptr %547, i32 0, i32 1
  %549 = load ptr, ptr %14, align 8, !tbaa !5
  %550 = load i64, ptr %15, align 8, !tbaa !9
  %551 = load i64, ptr %16, align 8, !tbaa !9
  %552 = load ptr, ptr %17, align 8, !tbaa !5
  %553 = load ptr, ptr %18, align 8, !tbaa !5
  %554 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter23GenerateScalingNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_(ptr noundef nonnull align 8 dereferenceable(489) %60, ptr noundef nonnull align 8 dereferenceable(32) %543, ptr noundef nonnull align 8 dereferenceable(208) %544, ptr noundef nonnull align 8 dereferenceable(24) %548, ptr noundef nonnull align 8 dereferenceable(48) %549, i64 noundef %550, i64 noundef %551, ptr noundef nonnull align 8 dereferenceable(8) %552, ptr noundef nonnull align 8 dereferenceable(8) %553)
          to label %555 unwind label %383

555:                                              ; preds = %542
  store ptr %554, ptr %53, align 8, !tbaa !5
  br label %558

556:                                              ; preds = %359
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.10, ptr noundef @.str.5, i32 noundef 3081)
          to label %557 unwind label %383

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557, %555, %541, %382
  %559 = load ptr, ptr %53, align 8, !tbaa !5
  %560 = icmp ne ptr %559, null
  br i1 %560, label %563, label %561

561:                                              ; preds = %558
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef @.str.213, ptr noundef @.str.5, i32 noundef 3084)
          to label %562 unwind label %383

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562, %558
  %564 = phi i1 [ true, %558 ], [ false, %562 ]
  %565 = load ptr, ptr %53, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.aiNodeAnim, ptr %565, i32 0, i32 1
  %567 = load i32, ptr %566, align 4, !tbaa !83
  %568 = icmp eq i32 %567, 0
  br i1 %568, label %569, label %584

569:                                              ; preds = %563
  %570 = load ptr, ptr %53, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.aiNodeAnim, ptr %570, i32 0, i32 3
  %572 = load i32, ptr %571, align 8, !tbaa !87
  %573 = icmp eq i32 %572, 0
  br i1 %573, label %574, label %584

574:                                              ; preds = %569
  %575 = load ptr, ptr %53, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.aiNodeAnim, ptr %575, i32 0, i32 5
  %577 = load i32, ptr %576, align 8, !tbaa !88
  %578 = icmp eq i32 %577, 0
  br i1 %578, label %579, label %584

579:                                              ; preds = %574
  %580 = load ptr, ptr %53, align 8, !tbaa !5
  %581 = icmp eq ptr %580, null
  br i1 %581, label %583, label %582

582:                                              ; preds = %579
  call void @_ZN10aiNodeAnimD2Ev(ptr noundef nonnull align 8 dereferenceable(1080) %580) #8
  call void @_ZdlPvm(ptr noundef %580, i64 noundef 1080) #9
  br label %583

583:                                              ; preds = %582, %579
  br label %587

584:                                              ; preds = %574, %569, %563
  %585 = load ptr, ptr %11, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIP10aiNodeAnimSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %585, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %586 unwind label %383

586:                                              ; preds = %584
  br label %587

587:                                              ; preds = %586, %583
  store i32 9, ptr %26, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %591

588:                                              ; preds = %539, %469, %383
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #8
  br label %589

589:                                              ; preds = %588, %365
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %599

590:                                              ; preds = %333
  store i32 0, ptr %26, align 4
  br label %591

591:                                              ; preds = %590, %587
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  %592 = load i32, ptr %26, align 4
  switch i32 %592, label %623 [
    i32 0, label %593
    i32 9, label %594
  ]

593:                                              ; preds = %591
  br label %594

594:                                              ; preds = %593, %591
  %595 = load i64, ptr %47, align 8, !tbaa !9
  %596 = add i64 %595, 1
  store i64 %596, ptr %47, align 8, !tbaa !9
  %597 = load i32, ptr %46, align 4, !tbaa !89
  %598 = shl i32 %597, 1
  store i32 %598, ptr %46, align 4, !tbaa !89
  br label %329, !llvm.loop !90

599:                                              ; preds = %589, %361
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %613

600:                                              ; preds = %332
  %601 = load i32, ptr %45, align 4, !tbaa !89
  %602 = getelementptr inbounds %"class.Assimp::FBX::FBXConverter", ptr %60, i32 0, i32 11
  %603 = load ptr, ptr %12, align 8, !tbaa !5
  %604 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjSt4lessIS5_ESaISt4pairIKS5_jEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %602, ptr noundef nonnull align 8 dereferenceable(32) %603)
          to label %605 unwind label %609

605:                                              ; preds = %600
  store i32 %601, ptr %604, align 4, !tbaa !89
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  store i32 0, ptr %26, align 4
  br label %606

606:                                              ; preds = %605, %326, %264
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 136, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %19) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %19) #8
  %607 = load i32, ptr %26, align 4
  switch i32 %607, label %623 [
    i32 0, label %608
    i32 1, label %608
  ]

608:                                              ; preds = %606, %606
  ret void

609:                                              ; preds = %600
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %20, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %21, align 4
  br label %613

613:                                              ; preds = %609, %599
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %614

614:                                              ; preds = %613, %327, %265, %259
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 136, ptr %29) #8
  br label %615

615:                                              ; preds = %614, %169
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %616

616:                                              ; preds = %615, %165, %109
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %617

617:                                              ; preds = %616, %87
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %19) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %19) #8
  br label %618

618:                                              ; preds = %617
  %619 = load ptr, ptr %20, align 8
  %620 = load i32, ptr %21, align 4
  %621 = insertvalue { ptr, i32 } poison, ptr %619, 0
  %622 = insertvalue { ptr, i32 } %621, i32 %620, 1
  resume { ptr, i32 } %622

623:                                              ; preds = %606, %591, %253, %131
  unreachable
}

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6Assimp3FBXL22validateAnimCurveNodesERKSt6vectorIPKNS0_18AnimationCurveNodeESaIS4_EEb(ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) #3

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6Assimp3FBX12FBXConverter24IsRedundantAnimationDataERKNS0_5ModelENS1_18TransformationCompERKSt6vectorIPKNS0_18AnimationCurveNodeESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(208), i32 noundef, ptr noundef nonnull align 8 dereferenceable(24)) #6 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter22GenerateSimpleNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelEPSt23_Rb_tree_const_iteratorISt4pairIS8_St6vectorIPKNS0_18AnimationCurveNodeESaISI_EEEESM_llRdSO_(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(208), ptr noundef, ptr, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter24GenerateRotationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(208), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter27GenerateTranslationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_b(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(208), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter23GenerateScalingNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(208), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

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

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

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


; 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::map.361" = type { %"class.std::_Rb_tree.362" }
%"class.std::_Rb_tree.362" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::vector<const Assimp::FBX::AnimationCurveNode *>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::vector<const Assimp::FBX::AnimationCurveNode *>>>, 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>, std::vector<const Assimp::FBX::AnimationCurveNode *>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::vector<const Assimp::FBX::AnimationCurveNode *>>>, std::less<std::__cxx11::basic_string<char>>>::_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.__gnu_cxx::__normal_iterator.383" = type { ptr }
%"struct.std::_Rb_tree_const_iterator.433" = type { ptr }
%"struct.std::_Rb_tree_iterator.394" = type { ptr }
%"class.std::allocator.72" = type { i8 }

@.str.5 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.195 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.201 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.202 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.203 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.204 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [3 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

declare void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter30NameTransformationCompPropertyENS1_18TransformationCompE(ptr noundef nonnull align 8 dereferenceable(489), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6Assimp3FBX12FBXConverter31NeedsComplexTransformationChainERKNS0_5ModelE(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(208)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp3FBX12FBXConverter27NameTransformationChainNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_18TransformationCompE(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), i32 noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(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_iteratorIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN6Assimp3FBX12FBXConverter22GenerateNodeAnimationsERSt6vectorIP10aiNodeAnimSaIS4_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKS2_IPKNS0_18AnimationCurveNodeESaISI_EERKSt3mapISI_PKNS0_14AnimationLayerESt4lessISI_ESaISt4pairIKSI_SQ_EEEllRdS10_(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %5, i64 noundef %6, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %10 = alloca %"class.std::map.361", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.383", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.383", align 8
  %13 = alloca ptr, align 8
  %14 = alloca [17 x %"struct.std::_Rb_tree_const_iterator.433"], align 16
  %15 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %16 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %17 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %18 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.72", align 1
  %21 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %22 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %25 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %26 = alloca %"struct.std::_Rb_tree_const_iterator.433", align 8
  %27 = alloca %"struct.std::_Rb_tree_iterator.394", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca ptr, align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca ptr, align 8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %10) #7
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  %34 = call noundef i64 @_ZNKSt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaIS4_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  %.not = icmp eq i64 %34, 0
  br i1 %.not, label %35, label %36

35:                                               ; preds = %9
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.201, ptr noundef nonnull @.str.5, i32 noundef 2883)
          to label %36 unwind label %46

36:                                               ; preds = %35, %9
  %37 = getelementptr inbounds i8, ptr %0, i64 480
  %38 = load ptr, ptr %37, align 8, !tbaa !5
  %39 = call noundef nonnull align 1 dereferenceable(15) ptr @_ZNK6Assimp3FBX8Document8SettingsEv(ptr noundef nonnull align 8 dereferenceable(336) %38)
  %40 = load i8, ptr %39, align 1, !tbaa !70, !range !72, !noundef !73
  %41 = trunc nuw i8 %40 to i1
  invoke void @_ZN6Assimp3FBXL22validateAnimCurveNodesERKSt6vectorIPKNS0_18AnimationCurveNodeESaIS4_EEb(ptr noundef nonnull align 8 dereferenceable(24) %3, i1 noundef zeroext %41)
          to label %42 unwind label %46

42:                                               ; preds = %36
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  %43 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  store ptr %43, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %44 = call ptr @_ZNKSt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  store ptr %44, ptr %12, align 8
  %45 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  br i1 %45, label %.lr.ph, label %._crit_edge.thread

._crit_edge.thread:                               ; preds = %42
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  br label %74

._crit_edge:                                      ; preds = %71
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  %.not143 = icmp eq ptr %.1124, null
  br i1 %.not143, label %74, label %75

46:                                               ; preds = %36, %35
  %47 = landingpad { ptr, i32 }
          cleanup
  br label %280

.lr.ph:                                           ; preds = %42, %71
  %.0123188 = phi ptr [ %.1124, %71 ], [ null, %42 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %48 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  %49 = load ptr, ptr %48, align 8, !tbaa !74
  store ptr %49, ptr %13, align 8, !tbaa !74
  %.not168 = icmp eq ptr %49, null
  br i1 %.not168, label %50, label %51

50:                                               ; preds = %.lr.ph
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.195, ptr noundef nonnull @.str.5, i32 noundef 2890)
          to label %._crit_edge198 unwind label %58

._crit_edge198:                                   ; preds = %50
  %.pre = load ptr, ptr %13, align 8, !tbaa !74
  br label %51

51:                                               ; preds = %._crit_edge198, %.lr.ph
  %52 = phi ptr [ %.pre, %._crit_edge198 ], [ %49, %.lr.ph ]
  %53 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX18AnimationCurveNode14TargetPropertyB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168) %52)
  %54 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  %55 = load ptr, ptr %13, align 8, !tbaa !74
  br i1 %54, label %56, label %60

56:                                               ; preds = %51
  %57 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX6Object4NameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(56) %55)
  invoke void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE7LogWarnIJRA46_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(46) @.str.202, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %71 unwind label %58

58:                                               ; preds = %70, %67, %65, %60, %56, %50
  %59 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  br label %280

60:                                               ; preds = %51
  %61 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK6Assimp3FBX18AnimationCurveNode6CurvesB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168) %55)
          to label %62 unwind label %58

62:                                               ; preds = %60
  %63 = call noundef zeroext i1 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKN6Assimp3FBX14AnimationCurveESt4lessIS5_ESaISt4pairIKS5_SA_EEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(48) %61) #7
  %64 = load ptr, ptr %13, align 8, !tbaa !74
  br i1 %63, label %65, label %67

65:                                               ; preds = %62
  %66 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX6Object4NameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(56) %64)
  invoke void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE7LogWarnIJRA53_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(53) @.str.203, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %71 unwind label %58

67:                                               ; preds = %62
  %68 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX18AnimationCurveNode14TargetPropertyB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(168) %64)
  %69 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEEixERSH_(ptr noundef nonnull align 8 dereferenceable(48) %10, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %70 unwind label %58

70:                                               ; preds = %67
  invoke void @_ZNSt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaIS4_EE9push_backERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %71 unwind label %58

71:                                               ; preds = %70, %65, %56
  %.1124 = phi ptr [ %.0123188, %56 ], [ %55, %65 ], [ %55, %70 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #7
  %73 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKPKN6Assimp3FBX18AnimationCurveNodeESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  br i1 %73, label %.lr.ph, label %._crit_edge

74:                                               ; preds = %._crit_edge.thread, %._crit_edge
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.204, ptr noundef nonnull @.str.5, i32 noundef 2906)
          to label %75 unwind label %80

75:                                               ; preds = %74, %._crit_edge
  %.0123.lcssa207 = phi ptr [ null, %74 ], [ %.1124, %._crit_edge ]
  %76 = call noundef ptr @_ZNK6Assimp3FBX18AnimationCurveNode13TargetAsModelEv(ptr noundef nonnull align 8 dereferenceable(168) %.0123.lcssa207)
  %.not144 = icmp eq ptr %76, null
  br i1 %.not144, label %77, label %.preheader.preheader

77:                                               ; preds = %75
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.205, ptr noundef nonnull @.str.5, i32 noundef 2907)
          to label %.preheader.preheader unwind label %80

.preheader.preheader:                             ; preds = %77, %75
  %78 = call noundef ptr @_ZNK6Assimp3FBX18AnimationCurveNode13TargetAsModelEv(ptr noundef nonnull align 8 dereferenceable(168) %.0123.lcssa207)
  call void @llvm.lifetime.start.p0(i64 136, ptr nonnull %14) #7
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  %.ptr.1 = getelementptr inbounds i8, ptr %14, i64 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.1) #7
  %.ptr.2 = getelementptr inbounds i8, ptr %14, i64 16
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.2) #7
  %.ptr.3 = getelementptr inbounds i8, ptr %14, i64 24
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.3) #7
  %.ptr.4 = getelementptr inbounds i8, ptr %14, i64 32
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.4) #7
  %.ptr.5 = getelementptr inbounds i8, ptr %14, i64 40
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.5) #7
  %.ptr.6 = getelementptr inbounds i8, ptr %14, i64 48
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.6) #7
  %.ptr.7 = getelementptr inbounds i8, ptr %14, i64 56
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.7) #7
  %.ptr.8 = getelementptr inbounds i8, ptr %14, i64 64
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.8) #7
  %.ptr.9 = getelementptr inbounds i8, ptr %14, i64 72
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.9) #7
  %.ptr.10 = getelementptr inbounds i8, ptr %14, i64 80
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.10) #7
  %.ptr.11 = getelementptr inbounds i8, ptr %14, i64 88
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.11) #7
  %.ptr.12 = getelementptr inbounds i8, ptr %14, i64 96
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.12) #7
  %.ptr.13 = getelementptr inbounds i8, ptr %14, i64 104
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.13) #7
  %.ptr.14 = getelementptr inbounds i8, ptr %14, i64 112
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.14) #7
  %.ptr.15 = getelementptr inbounds i8, ptr %14, i64 120
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.15) #7
  %.ptr.16 = getelementptr inbounds i8, ptr %14, i64 128
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.ptr.16) #7
  br label %.preheader.outer

.preheader.outer:                                 ; preds = %.thread, %.preheader.preheader
  %.0130191.ph = phi i1 [ true, %.thread ], [ false, %.preheader.preheader ]
  %.0133190.ph = phi i64 [ %125, %.thread ], [ 0, %.preheader.preheader ]
  %.0134189.ph = phi i1 [ %spec.select, %.thread ], [ false, %.preheader.preheader ]
  br label %.preheader

79:                                               ; preds = %121
  br i1 %.0130191.ph, label %.thread214, label %126

80:                                               ; preds = %77, %74
  %81 = landingpad { ptr, i32 }
          cleanup
  br label %280

.preheader:                                       ; preds = %.preheader.outer, %121
  %.0133190 = phi i64 [ %122, %121 ], [ %.0133190.ph, %.preheader.outer ]
  %82 = trunc nuw nsw i64 %.0133190 to i32
  %83 = and i64 %.0133190, 27
  %or.cond = icmp eq i64 %83, 9
  br i1 %or.cond, label %84, label %88

84:                                               ; preds = %.preheader
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %85 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  store ptr %85, ptr %16, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  %86 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %14, i64 0, i64 %.0133190
  %87 = load i64, ptr %15, align 8, !tbaa !74
  store i64 %87, ptr %86, align 8, !tbaa !74
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %121

88:                                               ; preds = %.preheader
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  %89 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter30NameTransformationCompPropertyENS1_18TransformationCompE(ptr noundef nonnull align 8 dereferenceable(489) %0, i32 noundef %82)
          to label %90 unwind label %111

90:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %89, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %91 unwind label %113

91:                                               ; preds = %90
  %92 = invoke ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE4findERSH_(ptr noundef nonnull align 8 dereferenceable(48) %10, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %93 unwind label %115

93:                                               ; preds = %91
  store ptr %92, ptr %18, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  %94 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %14, i64 0, i64 %.0133190
  %95 = load i64, ptr %17, align 8, !tbaa !74
  store i64 %95, ptr %94, align 8, !tbaa !74
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #7
  %96 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  store ptr %96, ptr %22, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  %97 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEESJ_(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  br i1 %97, label %98, label %121

98:                                               ; preds = %93
  %99 = load ptr, ptr %37, align 8, !tbaa !5
  %100 = call noundef nonnull align 1 dereferenceable(15) ptr @_ZNK6Assimp3FBX8Document8SettingsEv(ptr noundef nonnull align 8 dereferenceable(336) %99)
  %101 = getelementptr inbounds i8, ptr %100, i64 11
  %102 = load i8, ptr %101, align 1, !tbaa !75, !range !72, !noundef !73
  %103 = trunc nuw i8 %102 to i1
  br i1 %103, label %104, label %.thread

104:                                              ; preds = %98
  %105 = call noundef ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %94) #7
  %106 = getelementptr inbounds i8, ptr %105, i64 32
  %107 = invoke noundef zeroext i1 @_ZN6Assimp3FBX12FBXConverter24IsRedundantAnimationDataERKNS0_5ModelENS1_18TransformationCompERKSt6vectorIPKNS0_18AnimationCurveNodeESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(208) %78, i32 noundef %82, ptr noundef nonnull align 8 dereferenceable(24) %106)
          to label %108 unwind label %119

108:                                              ; preds = %104
  br i1 %107, label %109, label %.thread

109:                                              ; preds = %108
  %110 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK6Assimp3FBX6Object4NameB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(56) %78)
  invoke void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE15LogVerboseDebugIJRA47_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(47) @.str.206, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %121 unwind label %119

111:                                              ; preds = %88
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %118

113:                                              ; preds = %90
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %117

115:                                              ; preds = %91
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %117

117:                                              ; preds = %115, %113
  %.pn162 = phi { ptr, i32 } [ %116, %115 ], [ %114, %113 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  br label %118

118:                                              ; preds = %117, %111
  %.pn162.pn = phi { ptr, i32 } [ %.pn162, %117 ], [ %112, %111 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  br label %279

119:                                              ; preds = %109, %104
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %279

121:                                              ; preds = %93, %109, %84
  %122 = add nuw nsw i64 %.0133190, 1
  %exitcond.not = icmp eq i64 %122, 17
  br i1 %exitcond.not, label %79, label %.preheader, !llvm.loop !76

.thread:                                          ; preds = %98, %108
  %123 = icmp ne i64 %.0133190, 12
  %124 = icmp ne i64 %83, 3
  %or.cond5 = and i1 %123, %124
  %spec.select = select i1 %or.cond5, i1 true, i1 %.0134189.ph
  %125 = add nuw nsw i64 %.0133190, 1
  %exitcond.not211 = icmp eq i64 %125, 17
  br i1 %exitcond.not211, label %.thread214, label %.preheader.outer, !llvm.loop !76

126:                                              ; preds = %79
  invoke void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE7LogWarnIJRA68_KcEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(68) @.str.207)
          to label %276 unwind label %127

127:                                              ; preds = %129, %126
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %279

.thread214:                                       ; preds = %.thread, %79
  %.2136212217 = phi i1 [ %.0134189.ph, %79 ], [ %spec.select, %.thread ]
  br i1 %.2136212217, label %.preheader258, label %129

.preheader258:                                    ; preds = %131, %.thread214
  br label %161

129:                                              ; preds = %.thread214
  %130 = invoke noundef zeroext i1 @_ZN6Assimp3FBX12FBXConverter31NeedsComplexTransformationChainERKNS0_5ModelE(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(208) %78)
          to label %131 unwind label %127

131:                                              ; preds = %129
  br i1 %130, label %.preheader258, label %132

132:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  %133 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  store ptr %133, ptr %25, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  %134 = load ptr, ptr %24, align 8
  %135 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter22GenerateSimpleNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelEPSt23_Rb_tree_const_iteratorISt4pairIS8_St6vectorIPKNS0_18AnimationCurveNodeESaISI_EEEESM_llRdSO_(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(208) %78, ptr noundef nonnull %14, ptr %134, i64 noundef %5, i64 noundef %6, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %136 unwind label %151

136:                                              ; preds = %132
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  store ptr %135, ptr %23, align 8, !tbaa !74
  %.not146 = icmp eq ptr %135, null
  br i1 %.not146, label %137, label %138

137:                                              ; preds = %136
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.208, ptr noundef nonnull @.str.5, i32 noundef 2963)
          to label %138 unwind label %153

138:                                              ; preds = %137, %136
  %139 = getelementptr inbounds i8, ptr %135, i64 1028
  %140 = load i32, ptr %139, align 4, !tbaa !78
  %141 = icmp eq i32 %140, 0
  br i1 %141, label %142, label %155

142:                                              ; preds = %138
  %143 = getelementptr inbounds i8, ptr %135, i64 1040
  %144 = load i32, ptr %143, align 8, !tbaa !82
  %145 = icmp eq i32 %144, 0
  br i1 %145, label %146, label %155

146:                                              ; preds = %142
  %147 = getelementptr inbounds i8, ptr %135, i64 1056
  %148 = load i32, ptr %147, align 8, !tbaa !83
  %149 = icmp eq i32 %148, 0
  br i1 %149, label %150, label %155

150:                                              ; preds = %146
  call void @_ZN10aiNodeAnimD2Ev(ptr noundef nonnull align 8 dereferenceable(1080) %135) #7
  call void @_ZdlPvm(ptr noundef nonnull %135, i64 noundef 1080) #8
  br label %156

151:                                              ; preds = %132
  %152 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  br label %157

153:                                              ; preds = %155, %137
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %157

155:                                              ; preds = %146, %142, %138
  invoke void @_ZNSt6vectorIP10aiNodeAnimSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %156 unwind label %153

156:                                              ; preds = %155, %150
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  br label %276

157:                                              ; preds = %153, %151
  %.pn = phi { ptr, i32 } [ %154, %153 ], [ %152, %151 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #7
  br label %279

158:                                              ; preds = %272
  %159 = getelementptr inbounds i8, ptr %0, i64 296
  %160 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjSt4lessIS5_ESaISt4pairIKS5_jEEEixERS9_(ptr noundef nonnull align 8 dereferenceable(48) %159, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %275 unwind label %277

161:                                              ; preds = %.preheader258, %272
  %.0125195 = phi i64 [ %273, %272 ], [ 0, %.preheader258 ]
  %.0126193 = phi i32 [ %274, %272 ], [ 1, %.preheader258 ]
  %.0127192 = phi i32 [ %.2129, %272 ], [ 0, %.preheader258 ]
  %162 = trunc nuw nsw i64 %.0125195 to i32
  %163 = getelementptr inbounds [17 x %"struct.std::_Rb_tree_const_iterator.433"], ptr %14, i64 0, i64 %.0125195
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  %164 = call ptr @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  store ptr %164, ptr %27, align 8
  call void @_ZNSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEC2ERKSt17_Rb_tree_iteratorISG_E(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  %165 = call noundef zeroext i1 @_ZStneRKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEESJ_(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  br i1 %165, label %166, label %272

166:                                              ; preds = %161
  %167 = or i32 %.0126193, %.0127192
  switch i64 %.0125195, label %171 [
    i64 9, label %.invoke
    i64 13, label %168
  ]

168:                                              ; preds = %166
  br label %.invoke

.invoke:                                          ; preds = %166, %168
  %169 = phi ptr [ @.str.210, %168 ], [ @.str.209, %166 ]
  %170 = phi i32 [ 2985, %168 ], [ 2984, %166 ]
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull %169, ptr noundef nonnull @.str.5, i32 noundef %170)
          to label %171 unwind label %173

171:                                              ; preds = %.invoke, %166
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #7
  invoke void @_ZN6Assimp3FBX12FBXConverter27NameTransformationChainNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_18TransformationCompE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %2, i32 noundef %162)
          to label %172 unwind label %175

172:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  store ptr null, ptr %29, align 8, !tbaa !74
  switch i32 %162, label %251 [
    i32 7, label %177
    i32 6, label %177
    i32 8, label %177
    i32 15, label %177
    i32 4, label %184
    i32 5, label %184
    i32 10, label %184
    i32 11, label %184
    i32 3, label %184
    i32 14, label %184
    i32 12, label %246
    i32 16, label %246
  ]

173:                                              ; preds = %.invoke
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %279

175:                                              ; preds = %171
  %176 = landingpad { ptr, i32 }
          cleanup
  br label %279

177:                                              ; preds = %172, %172, %172, %172
  %178 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #7
  %179 = getelementptr inbounds i8, ptr %178, i64 32
  %180 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter24GenerateRotationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(208) %78, ptr noundef nonnull align 8 dereferenceable(24) %179, ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %5, i64 noundef %6, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %181 unwind label %182

181:                                              ; preds = %177
  store ptr %180, ptr %29, align 8, !tbaa !74
  br label %252

182:                                              ; preds = %269, %254, %251, %246, %184, %177
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %271

184:                                              ; preds = %172, %172, %172, %172, %172, %172
  %185 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #7
  %186 = getelementptr inbounds i8, ptr %185, i64 32
  %187 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter27GenerateTranslationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_b(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(208) %78, ptr noundef nonnull align 8 dereferenceable(24) %186, ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %5, i64 noundef %6, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8, i1 noundef zeroext false)
          to label %188 unwind label %182

188:                                              ; preds = %184
  store ptr %187, ptr %29, align 8, !tbaa !74
  switch i64 %.0125195, label %252 [
    i64 5, label %189
    i64 11, label %218
  ]

189:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  invoke void @_ZN6Assimp3FBX12FBXConverter27NameTransformationChainNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_18TransformationCompE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %2, i32 noundef 9)
          to label %190 unwind label %210

190:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #7
  %191 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #7
  %192 = getelementptr inbounds i8, ptr %191, i64 32
  %193 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter27GenerateTranslationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_b(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(208) %78, ptr noundef nonnull align 8 dereferenceable(24) %192, ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %5, i64 noundef %6, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8, i1 noundef zeroext true)
          to label %194 unwind label %212

194:                                              ; preds = %190
  store ptr %193, ptr %31, align 8, !tbaa !74
  %.not153 = icmp eq ptr %193, null
  br i1 %.not153, label %195, label %196

195:                                              ; preds = %194
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.211, ptr noundef nonnull @.str.5, i32 noundef 3033)
          to label %._crit_edge201 unwind label %212

._crit_edge201:                                   ; preds = %195
  %.pre202 = load ptr, ptr %31, align 8, !tbaa !74
  br label %196

196:                                              ; preds = %._crit_edge201, %194
  %197 = phi ptr [ %.pre202, %._crit_edge201 ], [ %193, %194 ]
  %198 = getelementptr inbounds i8, ptr %197, i64 1028
  %199 = load i32, ptr %198, align 4, !tbaa !78
  %200 = icmp eq i32 %199, 0
  br i1 %200, label %201, label %214

201:                                              ; preds = %196
  %202 = getelementptr inbounds i8, ptr %197, i64 1040
  %203 = load i32, ptr %202, align 8, !tbaa !82
  %204 = icmp eq i32 %203, 0
  br i1 %204, label %205, label %214

205:                                              ; preds = %201
  %206 = getelementptr inbounds i8, ptr %197, i64 1056
  %207 = load i32, ptr %206, align 8, !tbaa !83
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %214

209:                                              ; preds = %205
  call void @_ZN10aiNodeAnimD2Ev(ptr noundef nonnull align 8 dereferenceable(1080) %197) #7
  call void @_ZdlPvm(ptr noundef nonnull %197, i64 noundef 1080) #8
  br label %215

210:                                              ; preds = %189
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %271

212:                                              ; preds = %214, %195, %190
  %213 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %271

214:                                              ; preds = %205, %201, %196
  invoke void @_ZNSt6vectorIP10aiNodeAnimSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %215 unwind label %212

215:                                              ; preds = %209, %214
  %216 = shl i32 %.0126193, 4
  %217 = or i32 %167, %216
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %thread-pre-split

218:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #7
  invoke void @_ZN6Assimp3FBX12FBXConverter27NameTransformationChainNodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS1_18TransformationCompE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %2, i32 noundef 13)
          to label %219 unwind label %239

219:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #7
  %220 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #7
  %221 = getelementptr inbounds i8, ptr %220, i64 32
  %222 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter27GenerateTranslationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_b(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(208) %78, ptr noundef nonnull align 8 dereferenceable(24) %221, ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %5, i64 noundef %6, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8, i1 noundef zeroext true)
          to label %223 unwind label %241

223:                                              ; preds = %219
  store ptr %222, ptr %33, align 8, !tbaa !74
  %.not150 = icmp eq ptr %222, null
  br i1 %.not150, label %224, label %225

224:                                              ; preds = %223
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.211, ptr noundef nonnull @.str.5, i32 noundef 3055)
          to label %._crit_edge199 unwind label %241

._crit_edge199:                                   ; preds = %224
  %.pre200 = load ptr, ptr %33, align 8, !tbaa !74
  br label %225

225:                                              ; preds = %._crit_edge199, %223
  %226 = phi ptr [ %.pre200, %._crit_edge199 ], [ %222, %223 ]
  %227 = getelementptr inbounds i8, ptr %226, i64 1028
  %228 = load i32, ptr %227, align 4, !tbaa !78
  %229 = icmp eq i32 %228, 0
  br i1 %229, label %230, label %243

230:                                              ; preds = %225
  %231 = getelementptr inbounds i8, ptr %226, i64 1040
  %232 = load i32, ptr %231, align 8, !tbaa !82
  %233 = icmp eq i32 %232, 0
  br i1 %233, label %234, label %243

234:                                              ; preds = %230
  %235 = getelementptr inbounds i8, ptr %226, i64 1056
  %236 = load i32, ptr %235, align 8, !tbaa !83
  %237 = icmp eq i32 %236, 0
  br i1 %237, label %238, label %243

238:                                              ; preds = %234
  call void @_ZN10aiNodeAnimD2Ev(ptr noundef nonnull align 8 dereferenceable(1080) %226) #7
  call void @_ZdlPvm(ptr noundef nonnull %226, i64 noundef 1080) #8
  br label %244

239:                                              ; preds = %218
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %271

241:                                              ; preds = %244, %243, %224, %219
  %242 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  br label %271

243:                                              ; preds = %234, %230, %225
  invoke void @_ZNSt6vectorIP10aiNodeAnimSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %244 unwind label %241

244:                                              ; preds = %238, %243
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.212, ptr noundef nonnull @.str.5, i32 noundef 3062)
          to label %245 unwind label %241

245:                                              ; preds = %244
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  br label %thread-pre-split

246:                                              ; preds = %172, %172
  %247 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNKSt23_Rb_tree_const_iteratorISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISD_EEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %163) #7
  %248 = getelementptr inbounds i8, ptr %247, i64 32
  %249 = invoke noundef ptr @_ZN6Assimp3FBX12FBXConverter23GenerateScalingNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_(ptr noundef nonnull align 8 dereferenceable(489) %0, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 8 dereferenceable(208) %78, ptr noundef nonnull align 8 dereferenceable(24) %248, ptr noundef nonnull align 8 dereferenceable(48) %4, i64 noundef %5, i64 noundef %6, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %250 unwind label %182

250:                                              ; preds = %246
  store ptr %249, ptr %29, align 8, !tbaa !74
  br label %252

251:                                              ; preds = %172
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.5, i32 noundef 3081)
          to label %thread-pre-split unwind label %182

thread-pre-split:                                 ; preds = %245, %215, %251
  %.1128.ph = phi i32 [ poison, %245 ], [ %217, %215 ], [ %167, %251 ]
  %.pr = load ptr, ptr %29, align 8, !tbaa !74
  br label %252

252:                                              ; preds = %thread-pre-split, %188, %250, %181
  %253 = phi ptr [ %.pr, %thread-pre-split ], [ %187, %188 ], [ %249, %250 ], [ %180, %181 ]
  %.1128 = phi i32 [ %.1128.ph, %thread-pre-split ], [ %167, %188 ], [ %167, %250 ], [ %167, %181 ]
  %.not156 = icmp eq ptr %253, null
  br i1 %.not156, label %254, label %255

254:                                              ; preds = %252
  invoke void @_ZN6Assimp17aiAssertViolationEPKcS1_i(ptr noundef nonnull @.str.213, ptr noundef nonnull @.str.5, i32 noundef 3084)
          to label %._crit_edge203 unwind label %182

._crit_edge203:                                   ; preds = %254
  %.pre204 = load ptr, ptr %29, align 8, !tbaa !74
  br label %255

255:                                              ; preds = %._crit_edge203, %252
  %256 = phi ptr [ %.pre204, %._crit_edge203 ], [ %253, %252 ]
  %257 = getelementptr inbounds i8, ptr %256, i64 1028
  %258 = load i32, ptr %257, align 4, !tbaa !78
  %259 = icmp eq i32 %258, 0
  br i1 %259, label %260, label %269

260:                                              ; preds = %255
  %261 = getelementptr inbounds i8, ptr %256, i64 1040
  %262 = load i32, ptr %261, align 8, !tbaa !82
  %263 = icmp eq i32 %262, 0
  br i1 %263, label %264, label %269

264:                                              ; preds = %260
  %265 = getelementptr inbounds i8, ptr %256, i64 1056
  %266 = load i32, ptr %265, align 8, !tbaa !83
  %267 = icmp eq i32 %266, 0
  br i1 %267, label %268, label %269

268:                                              ; preds = %264
  call void @_ZN10aiNodeAnimD2Ev(ptr noundef nonnull align 8 dereferenceable(1080) %256) #7
  call void @_ZdlPvm(ptr noundef nonnull %256, i64 noundef 1080) #8
  br label %270

269:                                              ; preds = %264, %260, %255
  invoke void @_ZNSt6vectorIP10aiNodeAnimSaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %270 unwind label %182

270:                                              ; preds = %269, %268
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  br label %272

271:                                              ; preds = %239, %241, %210, %212, %182
  %.pn157 = phi { ptr, i32 } [ %183, %182 ], [ %213, %212 ], [ %211, %210 ], [ %242, %241 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #7
  br label %279

272:                                              ; preds = %161, %270
  %.2129 = phi i32 [ %.1128, %270 ], [ %.0127192, %161 ]
  %273 = add nuw nsw i64 %.0125195, 1
  %274 = shl i32 %.0126193, 1
  %exitcond197.not = icmp eq i64 %273, 17
  br i1 %exitcond197.not, label %158, label %161, !llvm.loop !84

275:                                              ; preds = %158
  store i32 %.2129, ptr %160, align 4, !tbaa !85
  br label %276

276:                                              ; preds = %126, %275, %156
  call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %14) #7
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #7
  ret void

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

279:                                              ; preds = %277, %175, %271, %173, %118, %119, %157, %127
  %.pn165.pn = phi { ptr, i32 } [ %.pn, %157 ], [ %128, %127 ], [ %120, %119 ], [ %.pn162.pn, %118 ], [ %278, %277 ], [ %174, %173 ], [ %.pn157, %271 ], [ %176, %175 ]
  call void @llvm.lifetime.end.p0(i64 136, ptr nonnull %14) #7
  br label %280

280:                                              ; preds = %58, %80, %279, %46
  %.pn169.pn = phi { ptr, i32 } [ %47, %46 ], [ %59, %58 ], [ %.pn165.pn, %279 ], [ %81, %80 ]
  call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIPKN6Assimp3FBX18AnimationCurveNodeESaISB_EESt4lessIS5_ESaISt4pairIKS5_SD_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %10) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %10) #7
  resume { ptr, i32 } %.pn169.pn
}

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN6Assimp3FBXL22validateAnimCurveNodesERKSt6vectorIPKNS0_18AnimationCurveNodeESaIS4_EEb(ptr noundef nonnull align 8 dereferenceable(24), i1 noundef zeroext) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE7LogWarnIJRA46_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(46), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE7LogWarnIJRA53_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(53), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6Assimp3FBX12FBXConverter24IsRedundantAnimationDataERKNS0_5ModelENS1_18TransformationCompERKSt6vectorIPKNS0_18AnimationCurveNodeESaIS9_EE(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(208), i32 noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6Assimp12LogFunctionsINS_11FBXImporterEE15LogVerboseDebugIJRA47_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpOT_(ptr noundef nonnull align 1 dereferenceable(47), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter22GenerateSimpleNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelEPSt23_Rb_tree_const_iteratorISt4pairIS8_St6vectorIPKNS0_18AnimationCurveNodeESaISI_EEEESM_llRdSO_(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(208), ptr noundef, ptr, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter24GenerateRotationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(208), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter27GenerateTranslationNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_b(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(208), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN6Assimp3FBX12FBXConverter23GenerateScalingNodeAnimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_5ModelERKSt6vectorIPKNS0_18AnimationCurveNodeESaISG_EERKSt3mapISG_PKNS0_14AnimationLayerESt4lessISG_ESaISt4pairIKSG_SO_EEEllRdSY_(ptr noundef nonnull align 8 dereferenceable(489), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(208), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(48), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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


; Effective O3 passes: AggressiveInstCombinePass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass